Skip to content

v0.1.0 — First external flash

Choose a tag to compare

@DavidClawson DavidClawson released this 05 Apr 18:55
· 773 commits to main since this release

First tagged release. Marks the state at which the firmware was successfully flashed and run by someone other than me — the onboarding path end-to-end works, even if the rough edges are still being sanded down.

This is a pre-1.0 snapshot of a firmware that's still missing its headline feature. See "Not yet working" below before you flash.

What works in this version

  • Full UI running on real 2C53T hardware (AT32F403A @ 240MHz, battery-powered)
    • 4 navigable modes: oscilloscope, multimeter, signal generator, settings
    • 4 color themes (Dark Blue, Classic Green, High Contrast, Night Red)
    • 14/15 buttons scanning at 500 Hz (PRM button pending bench verification)
  • Multimeter reading pipeline — live data from the FPGA meter IC
    • DCV 0–9 V accurate within a few percent
    • Full resistance range (low-Ω through MΩ) with per-band override fix
  • USB HID bootloader for closed-case firmware updates (make flash)
  • Battery monitor with percentage, USB charge detection, low-voltage auto-off
  • Power management: PC9 hold, PB8 backlight, 3-2-1 countdown shutdown
  • Boot safety system: 3-strike crash recovery auto-enters SAFE MODE
  • Watchdog, health monitoring, task stack checking
  • Fuse current tester UI (4th meter layout)
  • Emulator support (Renode + SDL3 native LCD viewer)

Not yet working

  • FPGA SPI3 ADC data acquisition — the oscilloscope doesn't actually scope yet. Root cause is identified (PB11 HIGH for active mode, full USART boot command sequence, queue-driven triggering). This is the critical path and will land before v1.0.
  • Multimeter DCV > 10 V — known limitation, readings rotate through auto-range states without stable factory cal. Tracked for a future session.
  • Display flicker on scope and signal-gen screens — #7. Fixed in the next release.

Upgrade notes

First-time setup still requires opening the case once for the ROM DFU + option-byte write (AT32 ships with EOPB0 set to 96 KB SRAM; we need 224 KB). After that, all updates are closed-case via USB-C.

Known issues

  • #7 — display flicker on scope and siggen screens (fix coming in next release)
  • #4 — Linux dfu-util path required docs hardening; a Windows Artery ISP alternative is now documented based on community workarounds

Versioning

0.x releases are pre-oscilloscope-working. v1.0.0 will be reserved for the milestone where live FPGA ADC data reaches the scope UI.

Thanks to everyone who's filed issues and tested flashes this week — every bug report on a pre-1.0 project is a gift.