Build

All of It, on One Runtime

By makemind · Jun 11, 2026

Over the past four months I attached one device after another.

February was a chip with no GUI. A WeAct STM32H723 on a USB cable, made to hand over its own screen definition. March put three vendors' instruments on one display. April removed the tool that could touch footage from a dashcam altogether. May made it so greenhouse sensors could be swapped without the rules changing.

Build one a month and the stories accumulate. What you don't learn is whether it is one thing or four things that resemble each other. So this month I built no new device and counted what was already there.

How the counting was done

Comparing version numbers proves nothing. A version is a number typed by hand, and copies that drifted while keeping the same number are ordinary.

So I compared the bytes of the three files that actually draw and hold a screen.

RENDERER="lib/src/renderer/renderer.dart"
FACTORY="lib/src/widgets/widget_factory.dart"
STATE="lib/src/state/state_manager.dart"

Each sample vendors its own copy of the runtime, because each has to be downloadable and runnable on its own. That means twenty-seven copies — and twenty-seven chances to drift.

The result

sample                     version  renderer       widget_factory state_manager
bench-instruments          0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
board-over-serial          0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
booking-slots              0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
clinic-flow                0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
club-dues                  0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
dashcam-boundary           0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
...
taxi-dashboard             0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
two-shops                  0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
waiting-line               0.5.1    5d4989b6a199   fb156b4a17be   850341b1e8a3
   27 copies of the runtime · renderer, widget_factory and state_manager
   identical byte for byte · 0.5.1

Not one line apart.

But the things behind them are nothing alike

For that comparison to mean anything, the devices behind the screens have to differ. If they were all the same kind of thing, identical screens would be trivially expected.

sample                     device     backing
bench-instruments          c-sim      instruments/instruments.c
board-over-serial          hardware   STM32H723 over USB serial, ESP32 over Wi-Fi TCP
booking-slots              dart       server process
greenhouse-independent     c-sim      greenhouse_bus/greenhouse_bus.c
lcd-hmi                    c-sim      panel_firmware/panel_firmware.c
pos-kiosk-kds              c-sim      terminal_sim/terminal_sim.c
taxi-dashboard             c-sim      vehicle_bus/vehicle_bus.c

Three kinds. A real board (over both USB serial and Wi-Fi TCP), five firmware and bus simulators written in C, and Dart servers.

The check enforces this explicitly — fewer than three kinds fails, and so does the absence of real hardware from the list.

[ "$NKIND" -ge 3 ] || { echo "   only $NKIND kind(s) of device"; exit 1; }
grep -q "hardware   STM32H723" "$S" || { echo "   no real hardware in the corpus"; exit 1; }

This content requires Developer or above

Sign in and upgrade your plan to continue reading.

View Plans
Twitter