Start with the device, not the toolchain.
EMWaver is a pocket signal lab. Plug the board into your phone, open the app, and start capturing, decoding, and replaying real RF and infrared — no adapter, no driver, no account.
Quick start
- Get the device — one board (STM32F042 · CC1101 433 MHz · IR RX/TX) on a USB-C plug. See the device.
- Plug it into your phone — it seats directly in a USB-C phone and comes up as a class-compliant MIDI device. Nothing to pair and nothing to provision.
- Open the app — iPhone or Android. The Home screen shows the connection, the board, and the firmware version.
- Pick a screen — Remotes, Sampler, Sub-GHz, or Packet.
What you can do
- Remotes — search a bundled catalogue of 14,847 remotes across 1,228 brands, pick your brand and model, and press the keys. Nothing is fetched; the catalogue is in the app. Or point a remote at the receiver and learn a key directly.
- Sub-GHz — capture, inspect, and retransmit 433 MHz OOK signals through the on-board CC1101 radio.
- Packet — fixed-length packet transmit and receive, with RSSI and link quality on every frame.
How it works
The board owns the microsecond-tight hardware loop, so timing never sits on a link. The apps orchestrate: they send opcodes and render what comes back. The CC1101 register maths lives in firmware precisely so the two apps cannot drift apart.
The transport is class-compliant USB-MIDI, which is what makes this work on iOS at all — Core MIDI accepts it with no MFi chip and no certification, and Android needs no driver. Remotes, captured signals, and device state stay on your phone, and the apps make no network calls at all — remote codes ship inside the app and are decoded on the phone.
Updates
Firmware updates run through the STM32 ROM DFU bootloader, from the web flasher on a desktop or an Android phone. Updates are destructive — there is no room on this part for a bootloader of our own, which is also why iOS cannot flash.
