Documentation

Start with the device, not the toolchain.

EMWaver Air is a cloud-connected signal lab. Power it on, open emwaver.ai in your browser, and start capturing, decoding, and replaying real RF and infrared — no app to install, no firmware to build, no drivers to hunt.

Quick start

  1. Get a board — the EMWaver Air (ESP32-S3 · CC1101 433 MHz · IR RX/TX · GPIO) ships pre-flashed for the all-in-one experience, or flash the firmware onto any ESP32-S3 you already own. See the device.
  2. Power on & join Wi-Fi — on first boot the Air opens a SoftAP captive portal. Connect from any phone or laptop and pick your network — no app, no cable.
  3. Open emwaver.ai & pair — the Air dials a secure WebSocket to emwaver.ai and a relay pairs it to your browser. When it shows connected, you're live.
  4. Run a script — open a built-in .emw script like sampler.emw or cc1101.emw, or write your own. The web app renders its UI and plots the signal live.

What you can do

  • Sub-GHz — capture, inspect, and retransmit 433 MHz OOK signals through the on-board CC1101 radio.
  • Infrared — record remote codes on the IR receiver and replay them through the dual IR LEDs.
  • Buses & GPIO — drive SPI, I²C, UART, ADC, PWM, and GPIO from scripts to talk to sensors, RFID modules (RC522), NRF24L01 radios, and more on the expansion headers.
  • Continual agent — with Continual Plus, decode an unknown capture and turn a working flow into a reusable script. See pricing.

How it works

The Air owns the microsecond-tight hardware loop — RMT/DMA-clocked capture and replay — so timing never sits on the network. Everything else lives in the browser: the canonical .emw JavaScript + JSX engine runs the script, renders its UI, and stores your captures.

The link is a device-initiated outbound wss connection to emwaver.ai. A relay pairs your Air to your browser, so there are no inbound ports, no port forwarding, and you can reach the device from across the room or across the world.

Updates

The Air updates over the air — A/B partitions with rollback — so there is no manual firmware build or flash loop. USB-C is used only for first-time provisioning, factory flashing, and recovery.

What to read next