beta-0.1.40
Pre-release
Pre-release
SigurdOS T-Deck Firmware — beta-0.1.40
Flash with esptool
# Full flash (first install):
esptool.py --chip esp32s3 --port /dev/ttyACM0 write_flash 0x0 firmware-merged.bin
# App update (keep settings):
esptool.py --chip esp32s3 --port /dev/ttyACM0 \
write_flash 0x10000 firmware.binWeb Flasher
Use the manifest at webflasher/manifest.json with esptool.js.
| File | Use |
|---|---|
firmware.bin |
App only (flash at 0x10000) |
firmware-merged.bin |
Full flash (flash at 0x0) |
What's Changed
- fix: remove double-queue of received mesh messages by @hermes-gadget in #336
- fix: PIN screen crash on unlock — three bugs by @hermes-gadget in #337
- fix: persist custom RF settings to NVS on apply by @hermes-gadget in #338
- fix: DM navigation crash when opening from Heard/Contacts by @hermes-gadget in #339
- feat: structured telemetry for AI agent monitoring by @hermes-gadget in #340
- fix: RC1 feedback — UI stability, validation, crash fixes by @hermes-gadget in #335
- docs: companion-only Regions (flood-scope) implementation plan by @hermes-gadget in #342
- feat: Regions — companion flood scope (transport-code scoped flooding) by @hermes-gadget in #343
- fix: regions UX — auto-prefix bare names + Alt+R shortcut by @hermes-gadget in #346
- docs: Companion BLE — connect to the official MeshCore phone app (plan) by @hermes-gadget in #345
- [codex] harden channel name boundaries by @n30nex in #362
- [codex] filter invalid keyboard injection bytes by @n30nex in #366
- [codex] reject invalid injected trackball events by @n30nex in #368
- [codex] harden emoji search output bounds by @n30nex in #370
- [codex] harden UTF-8 truncation byte limits by @n30nex in #372
- [codex] fix telemetry heartbeat ring wrap indexing by @n30nex in #374
- [codex] reject invalid telemetry trackball directions by @n30nex in #376
- [codex] bound telemetry crash backtrace counts by @n30nex in #378
- [codex] guard telemetry task watermark output by @n30nex in #380
- [codex] guard telemetry packet log fields by @n30nex in #382
- [codex] expose battery conversion helpers by @n30nex in #384
- [codex] harden SD-card path validation by @n30nex in #386
- [codex] expose GT911 touch point parser by @n30nex in #388
- [codex] expose buzzer pattern helpers by @n30nex in #390
- [codex] guard QR canvas layout bounds by @n30nex in #394
- [codex] expose map renderer math helpers by @n30nex in #396
- [codex] expose T-Deck battery threshold helper by @n30nex in #398
- [codex] harden WiFi scan result ordering by @n30nex in #400
- [codex] cover debug level bounds by @n30nex in #402
- [codex] cover remote setrf parsing by @n30nex in #404
- [codex] guard responsive column offsets by @n30nex in #406
- [codex] harden region file count validation by @n30nex in #408
- [codex] add typed GPIO mask helpers by @n30nex in #410
- Test chat message cap normalization by @n30nex in #412
- Test onboarding date and time validation by @n30nex in #414
- Test UI splash transition timing by @n30nex in #416
- [codex] add firmware audit and roadmap docs by @n30nex in #348
- [codex] stabilize release warning cleanup by @n30nex in #350
- [codex] fix T-Deck wake mask warning by @n30nex in #352
- [codex] add mesh ACK tracking tests by @n30nex in #354
- [codex] harden tile cache boundaries by @n30nex in #356
- [codex] add telemetry protocol native coverage by @n30nex in #358
- [codex] add smoke build matrix helper by @n30nex in #360
- [codex] add responsive layout helper tests by @n30nex in #392
- Test emoji fallback font wiring by @n30nex in #418
- Test emoji font list integrity by @n30nex in #420
- Test lodepng allocator fallback by @n30nex in #422
- test: cover prefs sentinel defaults by @n30nex in #424
- test: cover navigation screen inventory by @n30nex in #426
- test: cover mesh public contract by @n30nex in #428
- test: cover input hook contracts by @n30nex in #430
- test: cover HAL public contracts by @n30nex in #432
- test: cover GitHub OTA contract by @n30nex in #434
- test: cover UI screen contracts by @n30nex in #436
- docs: refresh native test guide by @n30nex in #438
- docs: remove stale README test totals by @n30nex in #440
- [codex] make merge-bin output ASCII-safe by @n30nex in #449
- [codex] remove redundant MAX_TEXT_LEN build flag by @n30nex in #456
- [codex] use 64-bit T-Deck wake mask by @n30nex in #447
- [codex] harden region add validation by @n30nex in #445
- [codex] cover release serial debug command policy by @n30nex in #451
- [codex] fix T-Deck GPS UART bring-up by @n30nex in #453
- feat: companion BLE bridge, persistent message store, Bluetooth UI by @hermes-gadget in #443
- fix: persist companion message sent-flag to prevent re-send on reboot by @hermes-gadget in #457
- feat: upstream RegionMap integration for flood-scope gating by @hermes-gadget in #458
- feat: increase MAX_CONTACTS from 64 to 350 with heap allocation by @hermes-gadget in #459
- docs: refresh roadmap and audit by @hermes-gadget in #463
- feat: private per-chat scopes via Alt+C menu by @hermes-gadget in #461
- [codex] record GPS lock hardware validation by @n30nex in #464
- [codex] Add RC2 hardware smoke validation by @n30nex in #465
- [codex] Add BLE hardware pairing validation by @n30nex in #466
- [codex] Record RC2 non-radio UI smoke validation by @n30nex in #468
- fix: support large contact lists by @hermes-gadget in #469
- feat: OTA branch selection + pre-release support by @hermes-gadget in #471
- fix: OTA branch/pre-release buttons update inline not full screen reload by @hermes-gadget in #472
- [codex] Record RC2 release build validation by @n30nex in #473
- feat: add Latin-extended text and raw T-Deck keyboard input by @hermes-gadget in #474
- [codex] Add RC2 build identity reporting by @n30nex in #478
- fix: update meshcore submodule URL to meshcore-dev/MeshCore (fixes CI on all PRs) by @hermes-gadget in #503
- fix: correct EMJI_DATA_H → EMOJI_DATA_H include guard typo by @Jah-yee in #494
- [Krab] setrf: add optional rx_boosted_gain parameter (closes #502) by @hermes-gadget in #505
- [codex] Harden BLE companion reconnect validation by @hermes-gadget in #506
- [Krab] test controller: add getrf command to read current radio params by @hermes-gadget in #509
- ci: run only tests on PRs, build single unified firmware (BLE now default) by @hermes-gadget in #510
- fix: keep Public channel visible by @hermes-gadget in #512
- docs: sync roadmap and audit to latest upstream baseline by @n30nex in #515
New Contributors
Full Changelog: beta-0.1.39...beta-0.1.40