Table of Contents
BLE TX transmits Bluetooth Low Energy advertisement packets loaded from a .TXT file. It supports two modes: single transmit (sends each packet once) and loop mode (repeats continuously for the number of repeats specified in the file). A file must be loaded before transmitting — unless arriving directly from the BLE RX app, which transfers the captured packet automatically.
Settings
- Open file: Select a
.TXTpacket file from the SD card. Files are stored in theBLETX/directory by default. - ?? Mac: When checked, a randomised MAC address is used instead of the one defined in the file.
- Loop: When checked, the app transmits the full packet file repeatedly until stopped. The progress bar and Packets Left indicator show how many packets remain in the current pass.
- Speed: Controls the transmit interval between packets, based on display frame timer ticks (≈16 ms each):
- 1 — 2 ticks (~32 ms per packet)
- 2 — 4 ticks (~64 ms per packet)
- 3 — 6 ticks (~96 ms per packet)
- 4 — 8 ticks (~128 ms per packet)
- 5 — 12 ticks (~192 ms per packet)
- Channel: BLE advertising channel — Ch.37, Ch.38, Ch.39, or Auto (cycles through all three).
- Advertisement PDU Type: The BLE packet type to transmit — set in the UI, not read from the file:
DISCOVERY,ADV_IND,ADV_DIRECT,ADV_NONCONN,ADV_SCAN_IND,SCAN_REQ,SCAN_RSP,CONNECT_REQ. To make a packet visible on a BLE scanner app, useADV_NONCONN. - Marked Data sequence: When bytes are marked in the data editor, controls how they change between transmissions — Ascend, Descend, or Random.
- Long-press on packet data: Hold a value in the data packet display to edit it in real time using the encoder knob and buttons.
- Clear Marked: Removes all marked bytes from the data editor.
- Save Packet: Saves the current packet list to a new file in
BLETX/namedBLETX_XXXX.TXT. - Switch to Rx: Switches directly to the BLE RX app.
File Format
Each line in the .TXT file defines one packet with three space-separated fields. All fields must be separated by a single space.
- MAC: Exactly 12 hex characters, no separators (e.g.
010203040506) - AdvertisementData: Up to 62 hex characters of raw advertisement payload (max 31 bytes per BLE spec)
- RepeatCount: Number of times to transmit this packet (integer)
Up to 32 packets per file are supported. Each packet goes on its own line.
Example — two packets, 500 repeats each:
010203040506 190953445220426c7565746f6f7468204c6f7720456e65726779 500
010203040507 190953445220426c7565746f6f7468204c6f7720456e65726779 500
The advertisement data in this example decodes to the ASCII string SDR Bluetooth Low Energy.
Files captured by the BLE RX app are already in this format and can be loaded directly.
Settings Persistence
Settings are saved to tx_ble.ini.
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.