Repository navigation
fix(kgui,tools): What the end-of-line station needed: icon memory, --discover, and NFC and RFID writes that prove themselves - #70
Open
luismiKode wants to merge 7 commits into
Conversation
The launcher took its 128 icon slots at start. At 48 KB a slot since the
icons went to 128 px that is 6 MB of PSRAM held for good by a board that
may have three apps, where it was 1.5 MB. The final station's camera
part takes 18 MB when it wakes and the OV5640 another 4.9 MB for its
three frame buffers: on a fresh boot 4.82 MB were left, the camera never
opened ("no PSRAM for 3 frame buffers"), the placement ended as a badly
seated Kode and the memory row failed on the refused allocations.
A slot is now taken the first time an icon is written to its row, and
kept. A row whose slot cannot be had draws the apps glyph, as before.
With it the same board has 27.3 MB free at rest and 9.2 MB after the
station's wake, and the camera opens.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UAYt4seiRecKrhvsophR8u
test_dot_final.py --discover opens the port, which resets the board, and asked for the radio sweep at once. The C5 takes a few seconds to link after a reset, so the sweep ended immediately with why=link and no channel was ever written to the station's settings. The sweep now waits for info to show the C5 recognised, 15 s at most. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4seiRecKrhvsophR8u
The end-of-line station's RFID row failed with its disc in the nest, and its buttons and touch rows could not be run with nobody at the station. Both are the SDK's: kode-sdk fix/station-rfid-and-inject (f82bf0a), to be merged there first. The pointer is on that branch and moves to develop's commit once it is in. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4sNGU1gkMrcPpLheZ3
kodeOS build
|
…is run, and count NFC The RFID step wrote an ID made from the Kode's MAC and passed when the tag read it back. The same Kode back at the station found its ID already on the tag, so the step passed with the write path dead; the Kode's own check of its clone was only printed. The NFC step wrote the serial the Kode's own row had just left on the tag, and its result did not count: NFC was optional, and a Kode with a dead reader left the station passed. Both steps now write something else first and then what counts, and need every write taken (RFID: read back by the Kode, with one more try for a clone it could not read back, which happens about once in thirty on the bench). A Kode whose MAC cannot be read fails RFID where it used to pass on any well-formed ID. NFC decides the verdict like every other step. The template leaves NFC and RFID out of what runs beside the operator: written while the buttons and touch steps ran, NFC failed in two runs of five; after the operator, in none of twenty-four. It costs about three seconds a Kode until the cause is found. The bench operator draws one wrong button a run at most: it could draw a third and fail a good Kode by itself. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4seiRecKrhvsophR8u
The station's sd row passed a board whose slot cannot write, and its radio card passed a link on one data line. Both are the SDK's: kode-sdk fix/station-rfid-and-inject, now at fae2d93. The pointer stays on that branch and moves to develop's commit once it is in. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4sNGU1gkMrcPpLheZ3
…ode's rows are in The PC's NFC step started as soon as the Kode's NFC row came back with the lane free. The Kode's RFID row follows its NFC row at once, with its 125 kHz carrier on beside the same tag, and an nfc_write sent into it answered "opened, but carries no NDEF message" or found no tag: three runs in eleven on the bench. The two steps now wait for both rows. With that they go back beside the operator in the template, where they had been taken out of for this: twenty runs with them there and not a failure, at 27 to 30 s a run where after the operator it was 29 to 33. The bench operator is also served between the exchanges of the two steps: a release held back three seconds by them read as a stuck button. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4seiRecKrhvsophR8u
… DMA The station's reader stopped seeing its tag for the rest of a boot about one boot in ten, and lost single windows in between: a read over DMA from PSRAM could hold what the chip never sent. The mag row passed on an identity and one conversion. Both are the SDK's: kode-sdk fix/station-rfid-and-inject, now at 10ca19d. The pointer stays on that branch and moves to develop's commit once it is in. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UAYt4sNGU1gkMrcPpLheZ3
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three fixes from tonight's runs of the end-of-line station (E5) with a DVT in the fixture, and the SDK branch that carries four more.
fix(kgui): Take an icon's PSRAM when its row first has an icon
The launcher took its 128 icon slots at start: 6 MB of PSRAM held for good since the icons went to 128 px, where it was 1.5 MB. The station's camera part takes 18 MB when it wakes and the OV5640 another 4.9 MB for its frame buffers; on a fresh boot 4.82 MB were left, the camera never opened ("no PSRAM for 3 frame buffers"), the placement ended as a badly seated Kode and the memory row failed. A slot is now taken the first time an icon is written to its row, and kept; a row whose slot cannot be had draws the apps glyph, as before.
On the board: 27.3 MB free at rest where there were 23.0, 9.2 MB after the station's wake where there were 4.82; placement and the six camera and LED rows PASS. The launcher with four apps installed shows their icons (an app with no icon of its own keeps its letters); two captures of it are with the station's validation notes. There is no capture of the same board before the change.
fix(tools): Wait for the C5's link before the station's --discover sweep
--discoverasked for the C5 as soon as the port opened, which resets the board, and found it not linked yet:radio ok=0 why=linkand no channels. It waits for the link first:radio ok=1 seen24=1 seen5=1with the channels written.fix(tools): Make the station's NFC and RFID steps prove a write of this run, and count NFC
The RFID step wrote the ID made from the MAC and passed when what it read was what it wrote: the same Kode back at the station finds its ID already on the tag and passes with a dead write. The Kode's own
match=yeswas printed and not used, and with an unreadable MAC any ID passed. The NFC step wrote the serial the Kode's own row had just left on the tag. Both steps now write something else first (the ID with its bytes reversed; "KODE E5") and then what counts; RFID asks formatch=yeson both writes, with one retry a write; an unreadable MAC is a FAIL; and NFC is no longer optional.The bench operator presses at most one wrong button a pass (it could press three and fail a good board).
fix(tools): Hold the station's NFC and RFID steps until both of the Kode's rows are in
With the two writes in, the PC's NFC step failed 3 passes of 11 when it ran beside the operator's rows. It was not the buttons: the step started as soon as the Kode's own NFC row answered, and the Kode was then running its RFID row, with the 125 kHz carrier up on an antenna that sits beside the NFC one. The PC's two steps now wait until both of the Kode's rows are in, and run beside the operator's rows again: 20 passes with the writes on and no failure of either.
chore(sdk): the RFID decoder, injected buttons and touch, the sd row, the C5 card's bus, the mag row and the NFC reader's SPI
The pointer is on kode-sdk's
fix/station-rfid-and-inject(kodediy/kode-sdk#127), at 10ca19d. It has to move to develop's commit once that one is merged; #66 moves the same pointer to e446c67, which this branch sits on.What was run
tools/factory's own tests with the change (test_factory.py,test_dot_parallel.py).tools/tool_tests.sh: all buttest_kble.py, which fails on this Mac for macOS's Bluetooth permission and is not touched here.--operator-simand the NFC and RFID writes on. With this branch's binary (sha256 4e232fcd…a971): 20 of 20 passes with all 29 rows PASS, 27 to 31 s, with the PC's NFC and RFID steps beside the operator's rows. Earlier in the night, with the commits up to the NFC and RFID writes: 3 of 3 passes; and with the first two only: 45 passes in which the faults they fix did not come back. Not run in any of them: the four pad rows (charge, delivery, GND, data loop).🤖 Generated with Claude Code
https://claude.ai/code/session_01UAYt4sNGU1gkMrcPpLheZ3