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