-
-
Notifications
You must be signed in to change notification settings - Fork 914
Bluetooth Low Energy Transmitter
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.
Open file: Select a .TXT packet file from the SD card. Files are stored in the BLETX/ 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 channel selection:
- Ch.37, Ch.38, Ch.39 — individual BLE advertising channels
- Ch.00–Ch.36 — individual BLE data channels
- Auto — cycles through the three advertising channels (Ch.37, Ch.38, Ch.39)
- All — cycles through all 40 BLE channels (Ch.00–Ch.39)
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, use ADV_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/ named BLETX_XXXX.TXT.
Switch to Rx: Switches directly to the BLE RX app.
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 are saved to tx_ble.ini.
How to collaborate
Contributing Guidelines
Trusted contributors
How to ask questions correctly
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
-
Description of the hardware
- Enclosure/cases
- Repairs
- Mods
- 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
- 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
- 📥 Receivers
- 2-Tone-RX
- ACARS
- ADS-B
- AFSK
- AIS Boats
- Analog TV
- APRS RX
- Audio
- BLE RX
- Detector
- EPIRB RX
- ERT Meter
- Flex RX
- Radio
- Fox-Hunt
- FPV-Detect
- gfxEQ
- Level
- Meteor
- Morse RX
- NOAA
- NRF
- POCSAG
- ProtoView
- Radiosonde
- RTTY RX
- Scanner
- Search
- Signal Hunter
- SSTV RX
- SubCar
- SubGhzD
- Tetra RX
- Time Sink
- TPMS RX
- Weather
- WeFax
- VOR RX
- 📤 Transmitters
- 2-Tone-TX
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB TX
- Flex TX
- 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
- Security+ TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- VOR TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
▶️ Replay- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
-
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