Bring the docs in line with both keypad fixes

AGENTS.md still carried a stale entry telling the reader to *lengthen* key
holds when a press seems ignored, which is the opposite of the fix and is
what broke the tooling in the first place. Replaced with the correction and
a pointer to the right section.

The keypad heading also claimed the hold time was the only cause. There were
two: the 2500 ms hold in key.py, and row_out missing volatile. Both are now
listed up front with a link to the detail.

Adds the regression test to the places someone would actually look: the
"How to run it" section in AGENTS.md, the layout listing, and a build step
in the README noting that a clean build is not evidence the keypad works,
since the -O2 dead-code elimination produces no warning.
This commit is contained in:
mckero committed 2026-08-28 03:58:19 +01:00
1 parent 2154f80414
commit b246132a35
2 files changed
+32 -6

No files matched your search

+9
View File
@@ -69,6 +69,7 @@ keypresses silently stop working. Run the test after touching that code;
calibration.bin 512-byte dump from a real radio
docs/screenshots/ LCD captures used in this README
tools/ run, screenshot, inject keys, probe state
keypad_test.py keypad regression test, boots its own instance
harness/, stubs/, shim/, tests/ host build of the CW timing chain (stage A)
## Building
@@ -99,6 +100,14 @@ Needs a QEMU 7.2 source tree, `meson`, `ninja`, `libfdt-dev`, `libglib2.0-dev`,
./configure --target-list=arm-softmmu --disable-docs --disable-tools
cd build && ninja qemu-system-arm
Then check the build actually works, which takes about a minute:
python3 tools/keypad_test.py
This matters more than it looks. The keypad can break silently under -O2 without
any compiler warning -- see the `volatile` note in [Status](#status) -- so a clean
build is not evidence that keypresses work.
## Running
python3 tools/make_flash.py # once, builds assets/flash.img