Skip to content

Firmware

The REVA firmware is divided into several modules.


Overview

The instrument consists of:

  • Timer1 carrier generator
  • Timer2 packet scheduler
  • Packet table executor
  • Packet family engine
  • EEPROM parameter storage
  • OLED user interface

The waveform engine is intentionally separated from the operator interface so that packet generation remains deterministic.


Documentation


Reference Source Files

The frozen reference firmware consists of three files:

File Purpose
REVA_v3.3beta20d_IR2304_locked_show_ui.ino Main firmware
REVA_PacketTable.h Packet engine structures
REVA_DerivedMetrics.h Derived parameter calculations

Design Philosophy

REVA separates:

  • waveform generation,
  • packet scheduling,
  • parameter calculations,
  • and operator interaction

into independent subsystems.

This architecture allows display updates and button handling to remain isolated from the pulse engine, preserving deterministic timing.


Reference Version

The documentation in this section refers to the frozen reference implementation:

REVA v3.3beta20d

implemented on:

  • Arduino Nano
  • ATmega328P
  • 16 MHz

with:

  • D9 = OC1A
  • D10 = OC1B

driving an IR2304 half bridge.


Source packages and downloadable firmware archives are available on the Downloads page.