Root cause: missing SPI_SET_PARAMS (CMD 0x0B) before flash_begin. ROM bootloader defaults to 2MB flash size, silently truncating writes to 16MB flash. Progress bar showed success but firmware was corrupt. Changes: - Add spi_set_params() with 16MB geometry before flash_begin - Add MD5 verification after write (SPI_FLASH_MD5, CMD 0x13) - Add retry logic (3 attempts per block) - Pad firmware to 4-byte boundary - flash_end(reboot=false) then separate hard reset after MD5 check - Pure Rust MD5 implementation (no external crate) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| serial | ||
| binary_protocol.rs | ||
| flasher.rs | ||
| keycode.rs | ||
| layout.rs | ||
| layout_remap.rs | ||
| mod.rs | ||
| parsers.rs | ||
| protocol.rs | ||
| settings.rs | ||
| stats_analyzer.rs | ||