spaxel/dashboard
jedarden d83759899f fix(firmware): redesign partition table for 4MB flash; fix flash size in esptool.js
The XMC embedded flash on ESP32-S3 (QFN56) has JEDEC ID 164020 which esptool.js
does not recognise — it returns flash size -1 causing 'File doesn't fit in
available flash' before any bytes are written.

firmware/sdkconfig.defaults:
  CONFIG_ESPTOOLPY_FLASHSIZE 16MB → 4MB
  4MB is the minimum supported flash. The spi_flash check only panics when
  physical < header, so 4MB header is safe on 16MB boards as well.

firmware/partitions.csv:
  Redesigned to fit within 4MB flash:
    factory  0x010000–0x200000  (~1.9MB, fits current 1.7MB binary + 330KB headroom)
    ota_0    0x200000–0x3F0000  (~1.9MB, A/B OTA + rollback preserved)
    otadata  0x3F0000–0x3F2000  (8KB)
  Total flash used: 0x3F2000 (98.6% of 4MB). Drops ota_1 (was at 8MB, unusable
  on 4MB devices anyway); rollback still works factory↔ota_0.

dashboard/js/onboard.js:
  flashSize: 'detect' → '4MB'  (detect returned -1 for this chip's JEDEC ID;
  hardcoding '4MB' correctly sets the binary header for all supported boards)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:40:58 -04:00
..
css feat(ui): implement command palette (Component 34) with tests 2026-04-13 19:51:16 -04:00
js fix(firmware): redesign partition table for 4MB flash; fix flash size in esptool.js 2026-04-17 10:40:58 -04:00
node_modules feat: implement repeated-setting change detection with guided calibration 2026-04-11 00:18:19 -04:00
ambient.html remove(auth): drop PIN-based auth — Google OAuth handles access 2026-04-13 20:44:12 -04:00
fleet.html remove(auth): drop PIN-based auth — Google OAuth handles access 2026-04-13 20:44:12 -04:00
help_articles.json feat: implement contextual help system with searchable overlay 2026-04-11 00:44:54 -04:00
index.html refactor: replace esp-web-tools with vendored esptool-js, auto-start flash 2026-04-16 09:54:35 -04:00
integrations.html feat: home automation integration (MQTT and webhooks) 2026-04-11 06:29:51 -04:00
jest.config.js feat: implement spatial quick actions context menu for 3D scene 2026-04-10 22:56:17 -04:00
package-lock.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
package.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
simple.html fix(simple): load esp-web-tools for firmware flashing 2026-04-13 21:58:53 -04:00