Close

The 4-inch board that bricks itself on reset, and what actually recovers it

A project log for Braino! — a 40-game learning console on a CYD

Open-source ESP32 handheld with 40 learning games, from Maths to Chess over Bluetooth. No Accounts, No Telemetry. Flashes from a browser.

ankush-panditAnkush Pandit • a day ago•0 Comments

The 4-inch board has a failure that looks like a dead board. After the reset button, a serial tool's RTS reset, a USB power surge, or most often the hard reset at the end of an upload, the ROM loops 'flash read err, 988' every 350 milliseconds with the panel dark.

The first guess was the GPIO12 strap, which on this board also serves as the shared MISO line. Wrong: the ROM prints boot:0x17, whose MTDI bit is clear, so 3.3 V flash was selected correctly.

The second guess was a damaged image. Also wrong. Read back while the board was looping, the bootloader at 0x1000 was byte for byte correct, and the failing read differed from it by three bits at the same address. It is a marginal read at the moment of certain resets, not corrupted flash.

The cause is still unknown. What recovers it without pulling the battery is a reset that comes from download mode rather than from the running ROM: ask esptool for the flash id with no reset afterwards, then ask for the MAC with no reset before and a hard reset after. Repeat the pair if it fails, never the second step alone.

The flashing tool now asks every board for its build after an upload and runs that recovery on any whose serial shows the loop, so a flash no longer leaves a dark 4-inch board behind.

If you own one of these and have seen the same thing, I would like to hear it.

Discussions