Documentation

Start with the product, not the toolchain.

EMWaver turns your phone or computer into the working surface for hardware control. Plug in a supported board, open the app, and start interacting with peripherals, signals, and scripts without firmware builds or IDE setup.

Step 1
Get a supported board

Start with an ESP32-family dev board (ESP32, ESP32-S2, or ESP32-S3) or open the EMWaver hardware lineup and build files.

Step 2
Install the app

Use the native app where it fits — iOS, Android, or macOS.

Step 3
Flash fixed firmware

Use the bundled EMWaver firmware image for your board class (ESP32, ESP32-S2, ESP32-S3, or STM32F042). No user build loop.

Step 4
Run or generate a script

Use built-in examples, write your own JSX-based .js script, or let the Agent assemble the flow.

What you can do

Infrared and signal work

Capture and replay remote signals, inspect waveforms, zoom through samples, and retransmit directly from supported IR-capable boards.

Buses and peripherals

Drive SPI, I2C, UART, ADC, PWM, and GPIO from scripts to talk to sensors, displays, motor drivers, RFID modules, and board-level interfaces.

Sub-GHz and RFID

Work with CC1101-based radio setups and MFRC522-style RFID modules without leaving the same scripting model or app surface.

Agent-assisted flows

Ask the Agent to generate scripts, build control panels, run on real hardware, and iterate on the result from the same workspace.

How it works

Everything runs through scripts using local JavaScript files that define both hardware logic and JSX UI in one place. When you run a script, the app renders controls, plots, and inputs directly on your device. Edit the file and run again for immediate feedback.

The board handles the physical I/O. Your phone or computer handles rendering, storage, script execution, and local device transport.

Quick start details

  1. Choose hardware from the build catalog or start with a supported ESP32-family dev board (ESP32, ESP32-S2, or ESP32-S3). Purpose-built hardware is also available in the EMWaver Shield repository.
  2. Install the app through the App Store, Google Play internal test, Android APK, macOS DMG, or Windows download.
  3. Flash the fixed EMWaver firmware if your board is not already pre-flashed. Use the bundled target image for your board class (ESP32, ESP32-S2, ESP32-S3, or STM32F042) rather than building firmware manually.
  4. Plug in locally. EMWaver runs supported scripts directly through the native app and connected board.
  5. Open a script such as sampler.js, cc1101.js, or rfid.js, then adapt it or generate a new one.

Apps

  • iOS on the App Store
  • Android through the Google Play internal test or direct APK download
  • macOS direct DMG download for development and advanced use
  • Windows EXE installer and ZIP downloads
  • Linux native app in progress

What to read next