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.
TouchTunes is a jukebox platform found in bars, pubs, and restaurants across North America. TouchTunes jukeboxes (Gen 2 and above) use a wireless remote that transmits NEC-encoded messages via ASK/OOK at 433.92 MHz. These remotes are used for basic jukebox functions such as power, skip, volume, etc. The wireless messages are addressed using PINs 000–255 to prevent multiple units from interfering with each other. The default PIN is 000 in most deployments.
This app emulates TouchTunes wireless remotes (Gen 2 and newer) and supports both single-address and brute-force (scan) modes.
How To Use
- Transmit a command: Press any button on the touchscreen, or highlight and select with the physical controls. Each command is transmitted 4 times automatically.
- Change the PIN: Adjust the 3-digit PIN field in the top-left using the encoder knob. Default is 000. Range: 000–255.
- Brute force (Scan mode): Enable the Scan checkbox, then press any button. The selected command will be transmitted 4 times for each PIN from 000 to 255 in sequence, covering all 256 possible addresses.
- EW Mode (Electronic Warfare, Experimental): Transmits a continuous CW carrier at 433.92 MHz to jam the jukebox's receiver, preventing others from sending commands. You retain control — the jamming signal automatically pauses when you transmit a command, then resumes. Enable with the EW Mode checkbox.
Message Structure
Basic Info
- Frequency: 433.92 MHz
- Modulation: ASK/OOK
- Protocol: NEC (without address complement)
- Sample rate: 2.28 MSps
- Symbol rate: 1766 baud (measured; nominal NEC rate is 1786 baud)
- Symbol period: 566 µs
- Repeats per command: 4
NEC Symbol Encoding
- Short (0):
10(OOK: ON OFF) - Long (1):
1000(OOK: ON OFF OFF OFF)
Frame Structure
{PREAMBLE} {SYNC} {PIN} {COMMAND} {TAIL}
- Preamble (literal symbols):
0xFFFF00 - Sync (decoded NEC):
0x5D - PIN 000–255 (decoded NEC):
0x00–0xFF(LSB first) - Tail (literal symbols):
0x8
Commands (pre-NEC encode)
Each command byte is doubled with the second half bit-reversed before NEC encoding. For example, Pause (0x32) becomes 0x3223 before encoding.
| Code | Button |
|---|---|
0x32 |
Pause |
0x78 |
On/Off (Power) |
0x70 |
P1 |
0x60 |
P2 Edit Queue |
0xCA |
P3 |
0x20 |
F1 Restart |
0xF2 |
Up (^) |
0xA0 |
F2 Key |
0x84 |
Left (<) |
0x44 |
OK |
0xC4 |
Right (>) |
0x30 |
F3 Mic A Mute |
0x80 |
Down (V) |
0xB0 |
F4 Mic B Mute |
0xF0 |
1 |
0x08 |
2 |
0x88 |
3 |
0x48 |
4 |
0xC8 |
5 |
0x28 |
6 |
0xA8 |
7 |
0x68 |
8 |
0xE8 |
9 |
0x18 |
* (Music / Karaoke) |
0x98 |
0 |
0x58 |
# (Lock Queue) |
0xD0 |
Zone 1 Vol+ |
0x90 |
Zone 2 Vol+ |
0xC0 |
Zone 3 Vol+ |
0x50 |
Zone 1 Vol- |
0x10 |
Zone 2 Vol- |
0x40 |
Zone 3 Vol- |
Example
Command: PIN 000 – On/Off
Literal symbols (hex): ffff00 a2888a2aaaa8888aa2aa2220
(PREAMBLE SYNC PIN COMMAND TAIL)
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.
