Demo 02 — Physical mapping, with negative controls
Map every variant onto a real AKD1500 with random weights. The two variants that must fail are the proof that the check works.
Needs: Pi 5, at least one AKD1500 (Demo 00 green), runtime environment. Stop the service first so the card is free: sudo systemctl stop vorsa.
Environment: source ~/akida-env/bin/activate.
Run
python3 tools/check_single_pass.py
Output we got (2026-08-26, firmware BC.A1.003.009, MetaTF 2.19.3)
| Variant | Input | Grid | Cell | Sequences | Passes | AllNps | NPs used | Free | Result |
|---|---|---|---|---|---|---|---|---|---|
| V2 | 224 px | 14×14 | 16 px | 1 | 1 | 29 | 5 | 27 | PASS |
| V3 | 160 px | 10×10 | 16 px | 1 | 1 | 32 | 4 | 28 | PASS |
| V4 | 224 px | 28×28 | 8 px | 1 | 1 | 23 | 14 | 18 | PASS |
| V5 | 256 px | 16×16 | 16 px | 1 | 1 | 32 | 5 | 27 | PASS |
| V6 | 256 px | 32×32 | 8 px | 1 | 1 | 28 | 18 | 14 | PASS |
| V2-M1 | 224 px | 14×14 | 16 px | 1 | 1 | 30 | 5 | 27 | PASS |
| V2-M2 | 224 px | 14×14 | 16 px | 1 | 1 | 32 | 5 | 27 | PASS |
| X-gross | 224 px | — | — | — | — | — | — | — | FAIL ✓ |
| X-px320 | 320 px | — | — | — | — | — | — | — | FAIL ✓ |
Each PASS means: len(akida.devices()) used = 1; model.map(device, hw_only=True) without exception (no layer falls back to the CPU); len(model.sequences) == 1; hardware backend; NP demand ≤ 32; one pass per frame.
The two X variants are deliberate: X-gross has a 512-channel head input, X-px320 a 320-px input. Their failure messages are where the hardware limits on the Mapping page come from:
| Limit | Message from model.map |
|---|---|
| input edge ≤ 256 px | maximum input second dimension size is 256 |
| input layer ≤ 64 filters | num_neurons should be set between 1 and 64 |
| head input ≤ 256 channels | Filter size is too big to fit in a CNP |
If an X variant ever passes, the checker is broken and no PASS above means anything.
Proves
That the chosen architecture fits one card in one hardware pass, and that capacity is not the bottleneck (V6 leaves 14 of 32 NPs free); the binding limit is the 256-px input edge.
Does not prove
Detection quality. Random weights map exactly like trained ones; this demo is about the shape, not the function.
Failure modes
RuntimeError: no device → Demo 00. hw_only=True exception on V-variants → different firmware or MetaTF version than the one recorded; record yours and compare. Running while the service holds the cards → stop the service first.
Time: 5 minutes.
