While Mayhem firmware is running, a short press of the DFU button cycles through two diagnostic overlays and then hides them again:
| DFU press | Result |
|---|---|
| 1st | Show Performance overlay |
| 2nd | Show Radio Settings overlay |
| 3rd | Hide overlay |
The overlay is drawn on top of the current screen without leaving the active app. Values update approximately once per second.
Note
The fields shown in both overlays are defined directly in the firmware source (
ui_dfu_menu.hpp) and depend on the shared memory structure between the two processors (portapack_shared_memory.hpp). They may change between firmware versions if either file is modified. The table below reflects the current source code.
Overlay 1 — Performance
Displays CPU and memory diagnostics for both processors.
| Field | Description |
|---|---|
| M0 core | M0 free core memory (bytes) |
| M0 heap | M0 free heap memory (bytes) |
| M0 frags | M0 heap fragment count |
| M0 stack | M0 free stack space (bytes) |
| M0 cpu % | M0 CPU utilisation (%) |
| M4 heap | M4 heap usage (bytes) |
| M4 stack | M4 stack usage (bytes) |
| M4 cpu % | M4 CPU utilisation (%) |
| M4 miss | M4 baseband buffer miss count |
| Uptime | Device uptime (seconds) |
Overlay 2 — Radio Settings
Displays the current live radio configuration for both receiver and transmitter models.
| Field | Description |
|---|---|
| RX Freq | Receiver target frequency (Hz) |
| RX BW | Receiver baseband bandwidth (Hz) |
| RX SampR | Receiver sampling rate (Hz) |
| RX Satu% | M4 saturation percentage |
| Modulatn | Modulation index |
| AM cfg | AM configuration index |
| NBFM cfg | Narrowband FM configuration index |
| WFM cfg | Wideband FM configuration index |
| TX Freq | Transmitter target frequency (Hz) |
| TX BW | Transmitter baseband bandwidth (Hz) |
| TX SampR | Transmitter sampling rate (Hz) |
Using the DFU button to flash firmware
The DFU button serves a second, separate purpose: entering DFU (Device Firmware Upgrade) mode for flashing the HackRF base firmware from a PC. This only works before the Mayhem firmware has fully loaded — pressing DFU while the firmware is already running will only toggle the overlay described above.
To enter DFU mode for flashing, try one of these methods while the device is not yet booted into Mayhem:
- Hold DFU, plug in the USB cable, then release DFU.
- Hold DFU and RESET simultaneously, release RESET first, then release DFU.
- Hold DFU, power on the device (press the knob on H1/H2, or use the power switch on H4M), release DFU, then plug in USB.
When in DFU mode, the LEDs will be on and the screen will remain blank.
See Full-reset and Update-firmware-troubleshooting for full flashing instructions.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Start here
Contributors
How to collaborate
Contributing Guidelines
How to ask questions correctly
Hardware
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
- Description of the hardware
- Enclosure/cases
- Repairs
- Mods
User manual
Intended use and Legality
- Usage cautions
- First steps
- Firmware update procedure
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- What if I don't like some of the apps
Applications
- 📥 Receivers
- 📤 Transmitters
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
- ▶️ Replay
- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
Misc
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi), or other weird distros
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.