Releases: pingequalab/rf-lab
Releases · pingequalab/rf-lab
v0.5.2 — Readable exports + About screen
Minor release — readable export filenames + meaningful jammer log fields + new About screen with drive-traffic QR codes.
Added
- About screen (main-menu → About). Three pages, Up/Down to navigate,
Back to return. Right-edge progress-bar indicator shows current page.- Page 1 — Brand + Shop QR: title, version, hardware identifier,
slogan "Precision Gear for Hackers", and a scannable QR encoding
HTTPS://PINGEQUA.COM(offline-generated bit array, no QR library at
runtime). Scan with any modern phone to open the shop. - Page 2 — GitHub QR: a separate QR encoding
HTTPS://GITHUB.COM/PINGEQUALAB/RF-LABso you can land on the
source repo from a single scan. - Page 3 — Legal: concise authorized-testing notice + MIT license.
- Page 1 — Brand + Shop QR: title, version, hardware identifier,
Changed
- Scanner CSV filenames now use wall-clock + peak channel:
scan_<YYYY-MM-DD>_<HHMMSS>_ch<peak>.csv. Sorting by name in qFlipper
= sorting by time; filename itself summarizes the export.- Falls back to
scan_boot<tick>_ch<peak>.csvwhen RTC is not set
(avoids 1970 garbage names). - Same-second collisions get
_1.._99suffix.
- Falls back to
- Jammer session log filenames now:
jam_<YYYY-MM-DD>_<HHMMSS>_<mode>_<dur>s.csv.
Mode short-name and scene duration in seconds embedded in the filename. - Jammer session log fields rebuilt for actual analysis value
(was: 100% redundant#header section +key,valuesection duplicating
every field; uselessstart_boot_ms/end_boot_ms/mode_index;
misleadingcw_channelwritten for non-CW modes).- Single
key,valueCSV section, no duplication. - New fields:
datetime,engine(CW or Reactive),target_freq_mhz
(e.g.2405/2410/2414/2419 (WiFi ch1 pilots)derived from profile),
scene_duration_s(one decimal, explicitly named so it isn't mistaken
for TX-active time). - Conditional output:
cw_channel+cw_freq_mhzonly for CW Custom;
reactive_jamsonly for BLE React. - Removed: redundant header block,
mode_index,start/end_boot_ms,
duration_ms,chunks(which reset per OK cycle, misleading).
- Single
- Scanner CSV header: added
# Datetimeline; dropped# Boot ms
(boot-relative ms is meaningless once wall-clock is present).
Notes for users
- This release is purely additive on top of v0.5.1 — every existing
feature is preserved (7-mode jammer, Scanner CSV export, settings
persistence, OFW/Momentum/Unleashed/RogueMaster compatibility). - If you parsed the old jammer log format programmatically, the column
names changed. The new schema is documented in
core/pq_jammer_log.h.
v0.5.1 — OFW compatibility + UI polish
Patch release. Broader firmware compatibility + small UI polish.
Fixed
- OFW compatibility: chip arbiter rewritten to single-handle SPI design.
v0.5.0 referencedfuri_hal_spi_bus_handle_external_extrawhich is a
Momentum-only symbol — causedSymbols not resolvedlink error on OFW
SDK so the FAP wouldn't launch. Now uses only the standardexternal
handle and manually toggles PA4/PC3 CS lines. SPI timing, command
framing, W_TX_PAYLOAD latch all preserved. Real-device regression
passed: BLE/WiFi jamming + Scanner + Sub-GHz clean exit all work. - Jammer view spacing:
2402/26/80MHzand@080 2480MHz N358rows
had only 1px gap. Bumped TAG_BASELINE 48→50 and BTM_DIV_Y 51→52 for 3px
breathing room (@character no longer cramped). - Scanner CSV cosmetic:
# Peak channel: 14 (2414 MHz, 32 hits)
comment line was split into two columns by Excel CSV importer.
Replaced inline comma with semicolon.
Changed
- CI:
actions/checkoutv4→v5,actions/setup-pythonv5→v6 (Node.js
24 — Node 20 deprecated, full removal Sep 2026). - Internal: removed stray
module.elf.cartifact from repo root.
Who should upgrade
- OFW / Unleashed / RogueMaster users on v0.5.0 → ★ upgrade required
(v0.5.0 won't launch on these firmwares; v0.5.1 does). - Momentum users on v0.5.0 → optional (v0.5.0 already works; v0.5.1
has the same behavior + UI polish).
Install
- Download
pingequa_rf_toolkit.fapfrom this release - qFlipper file manager → drag to
/ext/apps/GPIO/ - On Flipper:
Apps → GPIO → PINGEQUA RF Lab
Compatibility
| Firmware | v0.5.0 | v0.5.1 |
|---|---|---|
| Momentum (mntm-dev) | ✅ | ✅ |
| Official Flipper firmware | ❌ won't launch | ✅ |
| Unleashed | ❌ won't launch | ✅ |
| RogueMaster | ❌ won't launch | ✅ |
| Xtreme | ❌ won't launch | ✅ |
PINGEQUA RF Lab v0.5.0 — initial release
A 2.4 GHz spectrum analyzer + 7-mode NRF24 jammer for Flipper Zero.
Designed exclusively for the PINGEQUA 2-in-1 RF Devboard (nRF24L01P + integrated PA, +20 dBm).
📦 Install
Download pingequa_rf_toolkit.fap (40 KB) below and copy to /ext/apps/GPIO/ on your Flipper SD card. Or use qFlipper's file manager. Then launch from Apps → GPIO → PINGEQUA RF Lab.
📡 Channel Scanner
- 126-channel real-time RPD spectrum (2400–2525 MHz, ~17 sweeps/sec)
- Adjustable dwell 130–2000 µs
- Max-hold mode with auto-pause on saturation
- WiFi 1/6/11 + BLE adv 37/38/39 band markers
- Long-press OK exports current scan to CSV at
/ext/apps_data/pingequa/scans/
🚫 NRF24 Jammer (7 modes)
| Mode | What it does |
|---|---|
| CW Custom | Single user-selected channel CW |
| BLE Adv | Blind CW hop {37, 38, 39} |
| BLE React ⚡ | RPD reactive jamming — listens for carrier, jams 2.5 ms CW on detection. First on Flipper Zero NRF24 platform. Concept from Brauer et al. IEEE 7785169 (2016). |
| WiFi 1 / 6 / 11 | Pilot-aware OFDM jamming — targets the 4 OFDM pilot subcarriers per channel. +7.5 dB equivalent efficiency per Clancy 2011 (IEEE 5962467). |
| ALL 2.4G | Full-band CW sweep 0–125 |
- Real-device verified: BLE devices and 2.4G WiFi can be disconnected within room range
- Settings persistence (mode + channel)
- Auto session log to
/ext/apps_data/pingequa/jammer/
⚙️ Architecture
- Three-layer:
core/(HW) +scenes/(SceneManager) +views/(custom) - Custom chip arbiter — atomic NRF24/CC1101 SPI handoff, no leakage to other Flipper apps
- Worker thread (FuriThreadPriorityLow) for scanning/jamming, GUI thread never blocked
- All SPI access via callback-style
pq_chip_with_nrf24/pq_chip_with_cc1101
⚖️ Legal note
Active 2.4 GHz transmission is regulated (FCC §15 in US, ETSI EN 300 328 in EU, equivalent elsewhere). Use only for research / lab testing on your own devices and with appropriate authorization.