Files
xteink-web-emulator/ISSUES.md
T
evan b22934fe0d Replace vvfat SD with browser-built raw FAT32 from OPFS
Browser SD files are persisted in OPFS (web/sdstore.js) and edited in the
Files tab. At boot the browser builds a deterministic 64 MiB FAT32 image
(web/fat32.js) with nested directories and VFAT long names, then mounts
it as a raw block device, bypassing QEMU's broken populated-vvfat WASM
coroutine path. Guest writes mutate only the ephemeral image.

Exposes a hidden #frame-generation indicator that increments on every
e-ink flush, so automation can wait on real display updates instead of
fixed sleeps. Adds tests/ with a Makefile runner: 'make test' for JS +
FAT32/mtools checks, 'make browser-test' for a headless-Firefox boot of
the official CrossPoint 1.4.1 firmware that navigates to
Test/example.txt. Bumps third_party/qemu to the SPI-SD/CMD13 fixes and
updates README/ROADMAP/ISSUES for the new architecture.
2026-07-21 07:43:07 -04:00

2.0 KiB

Known Issues

Resolved: directory-backed SD reads corrupted WASM state

Opening /Test/example.txt through QEMU vvfat could corrupt coroutine/guest state. The browser now builds a standards-compliant 64 MiB FAT32 image from OPFS and mounts it as a raw block device, bypassing the failing host-file mapping path. The official CrossPoint 1.4.1 firmware can traverse Test/example.txt without a WASM trap or guest panic.

Resolved: SD card remained in receivingdata

ssi-sd consumed a write-data token while leaving response mode, then parsed payload bytes as commands. The adapter now enters token mode immediately after the final R1 byte. SPI CMD13 also uses the upstream-correct sd_r1 internal response so status polling no longer loops on Unexpected response to cmd 13.

Reader page can render completely black

Opening a generated crash report can appear to work—the Back button returns normally and the file is marked as read—but the reader page is entirely black.

This is likely an e-ink model issue where an intermediate all-black waveform phase is exposed instead of the completed frame. It is separate from the SD pointer panic.

Cold boot requires a manual power-button hold

If the power button is not held until the Booting icon appears, the firmware can enter an unwanted watchdog reboot path:

Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

The emulator should model a cold-boot power hold and release automatically rather than requiring precisely timed user input. The preceding NVS NOT_FOUND messages are expected first-boot initialization noise.

WASM heap balloons after watchdog reboot

The committed WASM heap starts near 176.3 MiB but can grow to approximately 631.8 MiB after the watchdog reboot described above.

This indicates translated-block or dynamic WebAssembly module state is retained across guest reboot. TB cleanup must release old dynamic instances during reset; reboot-time growth should remain bounded.