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.

Quick start

  1. Get a supported board — start with an ESP32-family dev board (ESP32, ESP32-S2, or ESP32-S3), an ESP8266 board, or open the EMWaver hardware lineup and build files.
  2. Install the app — use the native app where it fits: iOS, Android, macOS, Windows, or Linux preview.
  3. Flash fixed firmware — use the bundled EMWaver firmware image for your board class (ESP32, ESP32-S2, ESP32-S3, ESP8266, or STM32F042). No user build loop.
  4. Run a script — use built-in examples, write your own JSX-based .emw script, or enable desktop MCP so an MCP client can assemble the flow.

What you can do

  • Infrared and signal work — capture and replay remote signals, inspect waveforms, zoom through samples, and retransmit 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.
  • Desktop MCP flows — when you enable the desktop MCP bridge, an external MCP client can list scripts, run them on real hardware, inspect device state, and call SPI/GPIO/analog tools.

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), or an ESP8266 board. 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, Windows download, or Linux DEB.
  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, ESP8266, 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.emw, cc1101.emw, or rfid.emw, then adapt it or create 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 preview app for Ubuntu-style systems

What to read next