Skip to content

16 August 2026

M. T. Kimmins edited this page Aug 16, 2026 · 17 revisions

Flashing pptest4.bin

From the post on 13 July 2026, I have vibe coded the dumper-flasher and flashed pptest4.bin. I have uploaded the result as a YouTube video.

The New Shield

Vibe coding the arduino sketch and the python application reveals that the shield works correctly! Very excited and proud. During the vibe coding, Claude highlighted the fact that I wired the pins incongruent with the arduino SPI library, so I opted for manual read/write without the library. The consequences of this is:

  • The user can match the arduino-chip pin pairs if their shield deviates from mine.
  • The read/write is slower than if I used the original library.

Results of the pptest4.bin Flash

The successful run of the cartridge with the modified data show that we can temporally expand the capabilities of the chip to the predicted ~35 min runtime (see time calculation). The next task will be to re-tackle hand-editing of a custom cartridge and flashing that.

Next Steps

  1. Make a "blank" slide that includes a proper header and minimal, blank payload.
  2. Make a "blank" light table that includes "on" and "off" commands.
  3. Locate the custom music file from previous.
  4. Delete Segment 4 data -> FF.
  5. Delete Segment 6 data -> FF.
  6. Change all Segment 4 pointers in Segment 1 to each point to Region 1 (0x4EE8).
  7. Keep Region 1.
  8. Mark Region 2 light data.
  9. Change Region 2 light data to on-off pattern (Item 2).
  10. Delete original Region 2 audio data.
  11. Insert custom music file (Item 3) in substitute for Region 2 audio data.
  12. Update Segment 1 pointers for remaining Segment 3 Regions.
  13. Run in John-K's dreamprojector successfully.
  14. Flash.
  15. Test and record.

Blank Audio Template

Explanation

  • We need a header (4 bytes of audio-only length, 2 bytes of frequency (conserved)).
    • The length of the header is 10 bytes = 0x0A.
    • Remember little endian format (essentially backwards).
  • We need the minimal amount of bytes of audio (10 bytes = 1 packet; see this calculation).

Structure

Header Length

0A 00 00 00

Header Frequency

80 3E

Blank Payload

00 00 00 00 00 00 00 00 00 00

Full Template

0A 00 00 00 80 3E 00 00 00 00 00 00 00 00 00 00

Blank Lights Table

Explanation

  • We need some data when the lights are expected. We can use the open and close signals in sequence without setting any light colours. This should produce the absence of any lights. See John-K's repository for information sources.

Opening Byte Sequence

04 F0 00

Closing Byte Sequence

04 F1 00

Full Sequence

04 F0 00 04 F1 00
⟵ Older Table of Contents Newer ⟶

Clone this wiki locally