_ _
.k$$$$$g, ,g$$$$$k.
.k$$$$$$$$$$$a. .a$$$$$$$$$$$k.
.J$$$$$?' `?$?^?, ,?^?$?` `?$$$$$L.
JS$$SI!a, _.JS$ ?, ,? $SL._ ,a$!IS$$SL
k$$$SI!:?$$$$$$$$$xu$$j j$$ux$$$$$$$$$?:!IS$$$k
:I$$SI:J$$?*"$$$$4^?*?: :?*?^4$$$$"*?$$L:iIS$$I:
:IS$$SiJ?` _.'$?`/' ': :' '/'?$'._ `?LiS$$SI:
?ISSik? _ ', ` . ,' _ ?kiSSI?
?i$?` _ k$ . :. $k _ `?$i?
'?I:-?z$$I _._.' ._._ I$$z?-:I?'
'*?- '?$$a louSxuS? ?xuSxuol a$$?' -?*'
i$$$$$$$$$$$S S$$$$$$$$$$$i
?$$$?- -?$$$?
██░ ██ ▄▄▄ ██▓ ▓█████ ██░ ██ ▒█████ █ ██ ███▄ █ ▓█████▄
▓██░ ██▒▒████▄ ▓██▒ ▓█ ▀ ▓██░ ██▒▒██▒ ██▒ ██ ▓██▒ ██ ▀█ █ ▒██▀ ██▌
▒██▀▀██░▒██ ▀█▄ ▒██░ ▒███ ▒██▀▀██░▒██░ ██▒▓██ ▒██░▓██ ▀█ ██▒░██ █▌
░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒▓█ ▄ ░▓█ ░██ ▒██ ██░▓▓█ ░██░▓██▒ ▐▌██▒░▓█▄ ▌
░▓█▒░██▓ ▓█ ▓██▒░██████▒░▒████▒░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██░ ▓██░░▒████▓
▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ░ ▒░ ▒ ▒ ▒▒▓ ▒
▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░ ░ ░ ░ ▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░░ ░ ▒░ ░ ▒ ▒
░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
HaleHound-CYD v3.9.1
A big one — a full NRF24 tuning cockpit, real names across BLE recon, and SkeletonKey learns to mix colors.
Huge thanks to BKBroiler — the NRF Tuning panel exists because of their idea to make the NRF24 radios fully tunable.
What's New
NRF Tuning panel. A dedicated control screen for the 2.4 GHz jammers — pick a jammer, pick a sub-mode, and dial it in with gradient drag-sliders and ON/OFF toggles: SPI speed, power (real dBm), data rate, dwell, channel step, and per-band channel selection. Every knob is explained in an on-SD guide you can read on the device or edit on a PC, and your settings persist on the SD card.
| Pick a jammer | Dial it in |
|---|---|
|
|
Stronger 2.4 GHz jamming. The NRF24 jammers now put out denser, gap-free coverage on the Ebyte E01 radio.
KeeLoq rolling-code decode. Capture a KeeLoq remote in the SubGHz tools and HaleHound now decodes the frame — serial, button, and counter — against a built-in manufacturer-key table. First cut of our rolling-code work; more coming.
BLE recon speaks English. Services, characteristics, and device manufacturers now resolve to real names from an on-board database instead of raw hex — across both Predator and SkeletonKey. Predator also connects to its targets far more reliably.
SkeletonKey — deeper dumps + a color mixer. The GATT tree now shows real characteristic names and full UUIDs, flags every property (including Indicate), and a detail line shows the highlighted characteristic's full UUID and value. When it finds an RGB light (ELK-BLEDOM / Triones), a new COLOR MIX screen lets you blend any color live with R/G/B sliders — not just the four presets.
Fixes
Scanner & Analyzer shrug off the jammers. Running ProtoKill (or any 2.4 GHz jammer) used to leave the Scanner and Spectrum Analyzer silent until a reboot — they now fully reset the radio on entry, so they come back to life every time.
Boards
E32R35T (3.5"), CYD (2.8"), E32R28T (2.8"), and the NM-RF Hat.
⣀⡀⣀⢀⡀⢀⡀⣀ ⣀⢀⡀ ⡀⢀ ⣀⢀⡀⢀⡀
⢀⡀⣛⠘⠿⢦⠤⣽⢟⣿⢻⡟⣾⡏⣹⣿⣿⢻⡟⣿⣾⣿⣿⡿⣿⢿⣿⣌⣿⢸⡷⢤⡄⢚⢀⡀
⣀⢀⣀⣀⣀⢀⣀⣈⣁⣉⣀⣀⣀⣀⣉⣈⣁⣀⣀⣀⣀⣉⣀⣁⣀⣁⣉⣉⣀⣈⣀⣀⣀⣉⣈⣉⣀⣀⣀⣀⣈⣈⣁⣀⣀⣀ ⣀
⣤⠐⢶⢻⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢠⡇
⢀⣀⣠⣄⣤⣀⣤⣤⣤⣤⣤⣤⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣍⣭⣭⣭⣭⣥⣭⣭⣭⣭⣥⣭⣭⣭⣬⣭⣭⣥⣤⣤⣤⣤⣤⣤⣄⣤⣀⣄⣀⡀
⣴⠸⠟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⠿⠿⠉⠉
⢀⡀⣶⣦⣶⣴⣶⣴⣤⣴⣶⣶⣼⣦⣿⣶⣾⣶⣶⣾⣧⣿⣾⣷⣾⣷⣿⣶⣶⣶⣶⣶⣦⣶⣶⣶⣶⣷⣿⣶⣶⣶⣶⣶⣶⣿⣾⣷⣴⣦⣶⣦⣤⣤⣦⣴⣦⣴⢠⣦⣤⡆⣴⣤⣤⣤⣤⣤⣄
⠸⠇⠿⠻⢿⠿⠿⠿⠿⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠟⠛⠃
⡤⢰⣶⣶⣶⣾⣷⣿⣶⣿⣾⣷⣿⣶⣿⣶⣷⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣷⣿⣿⣿⣾⣿⣿⣷⣿⣾⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣾⣷⣿⣧⣶⣰⣶⣤⣤⣤⣴⣶⣴⣶⣶⣶⣤⣶⣶
⠛⠘⠛⠛⠛⢿⠿⣿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⢿⣿⣿⡿⣿⠿⠿⠛⠛⠛⠛⠛⠛⠛⠛⠋⠛⠛⠛⠛⠛⠛⠁⠛⠘⠃⠐⠂
⢠⠶⣾⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣾⣿⣿⣷⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣶⣿⣾⣷⣿⣷⣾⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⠶⣶⣶⣦⣤⣀
⠉⠉⠛⠈⠛⠙⠋⠙⠛⠛⠛⠛⣿⠿⢿⣻⣿⢿⡟⢿⠿⠿⠿⠿⢿⡿⣿⠿⠿⢿⡿⣿⠿⣿⢿⡿⢿⡟⠿⠿⣿⣿⡿⣿⠿⣿⢿⡟⠿⠿⠿⠻⡿⢿⡟⠛⠛⠛⠛⠛⠛⠛⠋⠙⠋⠛⠋⠛⠉⠛⠋ ⠘⠁⠉ ⠋⠉⠁⠈⠉⠉
⢰⢿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⡿⣿⣿⡾⢻⡟⣿⠿⣿ ⡆
⣀⢀⡀⣀⡘⢋⣀ ⣉⣉⣉⣈⣁⣙⡛⣁⣉⣉⣉⣉⣛⢛⣛⣛⣋⣛⣛⣛⣻⣿⣿⡟⣿⣿⣿⣿⡟⣿⣿⣿⣻⣟⣻⣛⣛⢛⣻⣿⣟⣛⣿⣿⣻⡟⣿⣟⣿⢛⣛⢛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣉⡋⣛⡙⣛⠉⡀⠘⠁⠉⡈⠁⣈⡁⢉ ⠁⠈⠃
⠋⠠⠏⠘⠁⡿⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡿⣿⢻⡿⣹⡇⣿ ⣓ ⡀
⢀⣀⣀⣈⣉⣩⣅⣄⣀⣭⣉⣍⣁⣈⣉⣩⣍⣩⣉⣭⣭⣿⣩⣍⣽⣭⣩⣭⣭⣭⣍⣭⣉⣍⣩⣍⣭⣉⣭⣩⣍⣩⣉⣭⣩⣍⣩⣍⣩⣉⣉⣉⣍⣉⣉⣭⣉⣉⣉⣍⣉⣉⣉⣩⣁⣉⢉⣉⢈⡁⣉⣀⣉⣉⣉⣁⣀⣈⣀⣈⣀⣁⣉⡁⠈ ⠁ ⠁
⠂⠚⠉⠛⠩⠟⠟⠻⣿⢿⣿⢿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⢿⣿⡿⠿⣿⢿⣿⣿⡿⣿⣿⣿⢹⣿⠿⠏⣿⢩⣿⣿⣿⣿⣿⣿⢿⡟⢹⡟⣤
⣠⣤⣤⣤⣤⣤⣤⣴⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣭⣼⣿⣿⣿⣿⣭⣭⣭⣭⣭⣭⣭⣤⣤⣤⣤⣤⣬⣥⣤⣄⣬⣭⣥⣬⣥⣭⣅⣤⣤⣬⣤⣄⣠⣄⣤ ⣤⣠⣤⣤⣴⣮⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄⡀⣠⢀⣄⣤⣤⣤⣠⣤⣤⣀
⠈⠉⠛⠛⠿⠿⠛⠿⠿⠿⠿⠿⢿⠿⣿⠟⠿⠸⠟⢹⡇⢿⠘⠿⠻⠿⠟⠻⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⣿⢿⡿⢿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢻⡟⠛⠃⠛ ⠚⠘⠏⠛⠙⠛⠻⠿⠿⠿⠛⠹⠟⠙⠃⣿⠰⡾⠛⠋⠿⠣⣿⠻⡿⠻⠇⠰
⢴⣤⣶⣶⣶⣶⣦⣶⣤⣤⣴⣤⢤⡄ ⣤⢠⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣶⣤⣤⣴⣶⣶⣶⣶⣶⣶⣦⣤⣠⣄ ⣤⠠⡆⠠⣤⣤⢠⣶⣶⡶⣤⡤⢤ ⣠⡄⣀
⠘⠋⠛⠛⠉⠋⠉⠿⠉⠿ ⠁ ⠉⠈⠁⠉⠉⠉⠉⠉⠉⠉⠋⠹⠿⠻⠏⠻⠿⠿⠻⠿⠿⠿⠟⠛⠛⠃ ⠈⠁⠘⠁⠉⠉⠛⠙⠃⠛ ⠋ ⠰⠆⠈ ⠴
⢀⡶⣶⡐⢶ ⠆ ⠠⠤⣦ ⣤⢲⣶⣶⣶⣶⣤⣤⢴⣦⢶⣶⣤⣶⣶ ⡴⢐⡆⢶⣰⣶
⠈⠁⠋ ⠂ ⠛ ⠋⠘⠛⠘⠋⠛⠛⠋⠙⠛⠛⠋⠚⠋⠛⠘⠃ ⠈⠁⠈⠁ ⠚
⢰⣷⣦⣴⣿⣾⣷⣶⣦ ⢰⡆⢲⡆
⠛ ⠉⠁⠉⠉⠋⠙⠋⠁ ⠈⠁⠈⠁ ⠛
⣀ ⣀ ⢀ ⣸⠹⣿⣿⡟⣿⢿⣿⢿⡽⠿⠞⢿⠃ ⣹⡟⣿⠇⣀ ⢀⡀⣀
⣉ ⠉ ⢀ ⡀⢀⣀⢈⡁⣉ ⠉⠈⠁ ⢀ ⡀ ⠉ ⠈ ⡉ ⡀ ⠈⠁⢉
⢘⡃⣿ ⣛⢀⡀ ⠈⣧⢸⡿⢿⣷⣹⡇ ⠘⠈⠃ ⠠⠶⢶⡿⢹⡟⣀ ⢀⡀⢘⡇⣿ ⣟⢀⡀⢀⡀
⣀⣀⣀⣀⣁⢈⠁ ⢠⣄⣀⣀⣉⣈⣀⣈⣁⠉ ⡀ ⡀ ⢀⡀⣈⣀⣄⢀⡀⢀⡀ ⢀⣁⣀⣁⣈⣀⣁ ⡁⠈
⢠⡤⢼⣿⣿⣯⡿⠸⡇⣤⠄⢤ ⣤⢠⡄⢿⠶⠿⢾⡟⣿⡏⣿⢫⣿⠹⡏⣤ ⠐⠃⠠ ⣤⠐⠶⠸⡇⢿⠻⠿⠸⡇⠙⠃⣤⠠⡤ ⢤⡄⣤⠈⠛⢽⠏⢿⠛⠿⠠⡇⢤⠄
⣠⣄⣤⣤⣤⣤⣤⣤⣄ ⣠⡄⣤⣀⣤⢀⣄⣠⣤⣄⢀⣄⡀ ⡀ ⢀ ⣠⡄⢀ ⣤⣀⣤ ⡀⢀ ⡀ ⡀⣠⣤⣤⣤⣤⣤⣤⣀⣤⣤
⠐ ⠒ ⣶⠰⠦⠉⠹⠟⢹⡿⠿⠋⠾⠛⠿⠛⠿⠉⠉⠉⠉⠉⠙⠛⢿⠟⢿⠸⡟⠻⠟⠛⠿⠟⠘⠇ ⠉⠁⠈ ⠈ ⠂ ⠶ ⠆⠘⠏⠉⠉⠉⠰⠆⠰⠆⠴⠈⠇⠘⠇⠿ ⡿⠘⠇⠉⠁⠿⠹⡿⠿⠋⠿⠉⠉⠰⠆⠰⠂
⣶⣴⣶⢶⡄⣀ ⢀⡀ ⢀⡀ ⢤⢠⣦⣤⡴⠲⡦⢤ ⣀ ⢀ ⣤⢀⡄⣠⡄⣠ ⡄ ⠴⠄⣶⣦⡴⢦ ⢠⣦⣶⣦⣴⣄⣀ ⣀⡀
⠉⠛⠛⠿⠆⠿⠰⠇⠰⠟⠛⠛⠛⠰⠆⠶⠆ ⠛⠈⠁⠘⠃⠈ ⠰⠆⠴ ⠦⠰⠆ ⠈ ⠉⠈⠁ ⠉⠰⠷⠰⠇⠶ ⠶ ⠁ ⠾ ⠁⠸⠏ ⠶⠰⠆⠰ ⠶
⠰⢶⣶⣿⣷⣶⣶⢶⣶⣶⣄⣀⡠⠦⠰⠦⠶⠄⠄ ⣀⡀ ⠠⡄⣤ ⠰⠦⠶⢤⣶⣤⡤⠠⡄⢤ ⠠⠶⣺⡷⣶⣶⣶⢶⡶⠶⠄ ⠠⣤⡤
⠉⠉⠙⠛⠛⠚⠛⠉⠈⠛ ⠘⠃⠘⠃⠛⠐⠓⠘⠃⠛ ⠙⠛⠘⠃⠛ ⠛⠘⠃ ⠈ ⠘⠉⠁ ⠁ ⠐⠛ ⠛⠂
⠤⠤⢤⠄ ⢀⠰⣶⠴⠦⣶⡆⣶⢠⡄ ⢀ ⡀ ⣀ ⡀⣶⡆⣶⣦⣤⢰⡦⢶⠆⣠ ⣒⢂⣶⢐⡒⠂
⠘⠁⠉ ⠉ ⠉⠈⠁⠈⠁⠉⠈⠉⠈⠃ ⠙⠈⠃⠈⠃⠉ ⠉⠈⠁ ⠉ ⠉⠈⠛⠈⠃
⢀⡀⢀⡀⣀ ⢀⡀⣿⢈⣿⠸⣇⣴⣴⣦⣴⣦⣹⡇⣶ ⣶⠆⣿⣶⣦⣶⡄⣿⢈⣿⣿⡿⢿⡿⠿ ⢀⡀
⠈⠁⠈⠁⠉ ⣀ ⢀⢀⡀⢈⡁⣈⣈⣁⣈⣁⣀ ⠉ ⢉ ⡀⣉ ⢉ ⢀⣀⠉⢈⣁⣈⡀⣉⠁⣀ ⠈⠁
⢀⡀⢀⡀ ⠉⠃⠉⠘⠋⢻⣿⣿⣿⣿⣻⡟⣿⠰⠶⠶⠶⣶⡶⠿⢻⣄⢀⡟⠿⠿⠿⠾⠷⣿⡟⣿⢻⡿⣿⣿⣿⣟⣿⢀⡄
⠈⠁ ⡀⣠⡄⣠⢀⡀⣀⡅⣈⣩⣭⢀⡀⢀ ⠠⡀ ⠈⠉ ⡅⢠⣤⣤⣠⡄⣈⡀⣀ ⣄⣈⡀⣈⡉⠁ ⡁
⠁⠿⠁⠼⢸⡿⠻⡿⢿⢿⠟⠛⠛⣿⠤⣤ ⠁⠚⠛⠓ ⠁⠛⠹⣿⢩⡗⢤⡜⠋⠻⠟⢽⠇⢼⠟⠻⠺⡇
⣤⣄⢠⡄⣤⢀⡄ ⠄ ⢠⡄ ⢀⡀⣤⣴⣦⣤⣤⣴⣆⢰⡄ ⢀⡀
⠛⠛⠚⠳⣿⠸⡇⠺⠏⠈⠁ ⠰⠆ ⠻⠏⢿⠈⠁⠈⠋⠛⠙⢿⠻⡿⠒⠁⠶⠈⠻⠠⠆ ⠶ ⠰⠆
⢰⡆⣴⡆⠤ ⢰⣦⣴⡶⣶⢶⡦⣄ ⣀
⠈⠁ ⠸⠇⠺⠇⠾ ⠿ ⠉ ⠛⠘⠋⠈⠁⠿ ⠶ ⠶ ⠶
⣀⡀
⡀⢀⡀
⠈⠉⠈⠁
⢀⡀⢀⡀ ⡶⢰⡆
⠈⠁⠈⠁ ⠈⠉⠈⠁
⠠⡤ ⠠⡤⠠⡄⢤
⠰⠆⠰⠆⠶⠐⠶⠰⠆⠶
⣄
⠺⠐⠇⠐⠆⠲ ⠶⠐⠇⠰⠂⠲ ⠇⠐⠇⠲ ⠲⠐⠆⠸⠂⠾ ⠖
⠘⠛⠘⠃⠛ ⠛⠘⠃⠘⠃⠛⠐⠓⠘⠃⠛ ⠛⠘⠃⠘⠃⠛⠐⠛⠐⠃

