KeSp_controller/src/logic
Mae PUGIN 195fa6e7e8 fix: Rewrite ESP32-S3 flasher to match esptool behavior
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>
2026-04-07 15:06:49 +02:00
..
serial feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
binary_protocol.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
flasher.rs fix: Rewrite ESP32-S3 flasher to match esptool behavior 2026-04-07 15:06:49 +02:00
keycode.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
layout.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
layout_remap.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
mod.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
parsers.rs fix: KO parser for actual firmware format 2026-04-07 11:25:01 +02:00
protocol.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
settings.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
stats_analyzer.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00