byASB Ankiit Singh Book a scoping week
SPEC2026

Three-phase energy meter firmware

A university energy-research lab, South Africa
Read the schematic before writing the firmware. Found what would have failed on the bench.
HardwareESP32 · ADE9000
DomainThree-phase metering
DeliverableFull firmware specification + hardware review
Found3 design faults, before the bench
The constraint

Firmware written against a schematic that has faults in it produces a board that fails mysteriously, on the bench, weeks later — and the debugging cost lands on the firmware, not the board.

What I built

Full firmware specification for a three-phase energy monitoring device, including a hardware review that surfaced design issues before they reached production — a reversed isolator channel, an oscillator marking off by a transposed digit, and a boot-strap conflict on a shared SPI pin.

Each fault was traced to its consequence and given a remedy: a dead CF1 output, a 0.037% systematic over-read that firmware can correct for, and an efuse-level fix for the GPIO12 strap conflict.

Under the surface
isolatorADuM4151 ch. C direction reversed → CF1 dead
oscillator24.567 vs 24.576 MHz → 0.037% over-read, firmware-correctable
boot strapGPIO12 = MISO ∧ VDD_SDIO strap → efuse remedy
powerisoPower budget → bench verify
exposure: hardware · found on paper, not on the bench
Outcome
  • Three hardware faults caught on paper, before fabrication.
  • Full firmware specification delivered.
  • One fault (oscillator marking) made correctable in firmware rather than requiring a respin.
ESP32ADE9000SPIThree-phase meteringADuM4151 isolation