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.