2026-10-20: GET opcodes, type check and status LED
Backfill. This record was written on 2026-10-21, from results first posted as issue and PR comments on 2026-10-20. It summarises those comments, which hold the original wording; it adds no new results.
Verifies: #45 (fixed by #50), and the in-house status LED driver in the draft #55, including the boot-blue fix #56.
Session 1: GET opcodes and type check
Source: #45 comment.
| Firmware | cbb8313 (the #50 fix plus a PlatformIO platform pin), CRUMBS 0.16.2 in the version reply |
| Boards | two gen1 Nano DCMTs |
| Controller | CRUMBS Python binding, send_confirmed, over I2C |
| Outputs | not recorded |
| Frame | Expected | Observed | Result |
|---|---|---|---|
| GET_STATE 0x80, GET_WATCHDOG 0x7D, GET_CAPS 0x7F as command frames | refused UNKNOWN_OP | REFUSED UNKNOWN_OP (0x07); on d4a2dbc the same frames read APPLIED | pass |
| SET_MODE 0x00 typed 0x01 (RLHT) | rejected, TYPE | REJECTED, reason TYPE | pass |
| SET_WATCHDOG 500 typed 0x01 | rejected, TYPE; watchdog unchanged | REJECTED, reason TYPE; GET_WATCHDOG stayed disarmed, timeout 0 | pass |
| the suite’s other DCMT cases | as on d4a2dbc | as on d4a2dbc: refusal reasons, trip-guarded SETs, partial SETs; queries through SET_REPLY answered as before | pass |
Session 2: status LED driver
Sources: gen2 Nano, gen2 Nano Every.
| Firmware | 8a0604b: the LED driver branch with main merged, including the boot-blue fix |
| Boards | gen2 Nano (ATmega328P); gen2 Nano Every (ATmega4809, fuse2 = 0x01, 16 MHz), flashed with --upload-port /dev/ttyACM0 |
| Controller | none; the LED was watched |
| Outputs | not recorded |
| Step | Expected | Observed, both boards | Result |
|---|---|---|---|
| power-up and reset | blue through the boot second, then green | blue for the boot second, then green | pass |
| short the e-stop line, then release | red while shorted, green after | red while shorted, green after release | pass |
Not Checked
- D5 was not scoped, so the WS2812 timing margins are unmeasured.
- The raw controller output from session 1 was not kept with the comment.