v3.3.0: Welcome screen, factory reset, calibration/touch fixes, flash partition fix
## New - "Welcome" screen shown on first-time setup (before touch calibration), with the splash screen's animated radar graphic and a Start button. - The "Setup complete" screen now counts down 7 seconds with a button matching the Welcome screen's style, then automatically continues into the app (previously required a tap). - System menu "Backup & Reset" page (Backup, Restore, and a new "Reset settings" option that wipes the on-device data and re-runs first-time setup - useful for testing or handing the device to someone else). - Touch calibration targets are now green mini radar reticles instead of red crosshairs. ## Improved - The SD card's data folder is now only created after tapping Start on the Welcome screen, instead of on every boot regardless. - Flash partition layout changed to free up roughly 850 KB of firmware space (no OTA update slot needed, since firmware is always flashed via cable/USB) - lowers flash usage from ~95% to ~59%. ## Fixed - The Start button and the WiFi scanning screen now show a loading indicator instead of appearing frozen during SD-card/WiFi operations. - A touch-input bug during first-time setup that could corrupt touch calibration and cause taps to land on the wrong on-screen element afterward (most noticeable in the WiFi network selection list). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -108,16 +108,19 @@ bool init() {
|
||||
sdSpi.begin(Config::SD_SPI_CLK_PIN, Config::SD_SPI_MISO_PIN,
|
||||
Config::SD_SPI_MOSI_PIN, Config::SD_SPI_CS_PIN);
|
||||
mounted = SD.begin(Config::SD_SPI_CS_PIN, sdSpi, 4000000);
|
||||
if (!mounted) return false;
|
||||
|
||||
ensureDir(Config::SD_ROOT_DIR);
|
||||
ensureDir(Config::SD_LOG_DIR);
|
||||
ensureDir(Config::SD_SCREENSHOT_DIR);
|
||||
return true;
|
||||
return mounted;
|
||||
}
|
||||
|
||||
bool isMounted() { return mounted; }
|
||||
|
||||
void createStructure() {
|
||||
if (!mounted) return;
|
||||
SdMutex::Guard guard;
|
||||
ensureDir(Config::SD_ROOT_DIR);
|
||||
ensureDir(Config::SD_LOG_DIR);
|
||||
ensureDir(Config::SD_SCREENSHOT_DIR);
|
||||
}
|
||||
|
||||
void seedDefaultDataFiles() {
|
||||
if (!mounted) return;
|
||||
SdMutex::Guard guard;
|
||||
|
||||
Reference in New Issue
Block a user