feat: orientation model, password confirm, frontend build

- Collapse orientation to landscape/portrait (ribbon left = portrait standard)
- Add OrientationPicker component and wire settings sheet in HomeView
- Add password confirmation field to registration form (RepeatedType)
- Build frontend SPA to public/build/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-04 16:59:03 -04:00
parent d0d01f84c2
commit fea00722ed
5 changed files with 66 additions and 7 deletions
+1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+16
View File
@@ -8,3 +8,19 @@ monitor_port = /dev/ttyUSB0
board_build.filesystem = littlefs
lib_deps =
ricmoo/QRCode@^0.0.1
; Flash a single image from firmware/data/img.bin — no WiFi, no server needed.
; 1. pio run -e test-display --target uploadfs (upload the image)
; 2. pio run -e test-display --target upload (upload the sketch)
[env:test-display]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB0
board_build.filesystem = littlefs
build_flags = -DENV_TEST_DISPLAY
build_src_filter = +<epd.cpp> +<test_display.cpp>
lib_deps =
ricmoo/QRCode@^0.0.1
+7 -7
View File
@@ -15,13 +15,13 @@
#define RESET_HOLD_MS 5000
// ── EPD color nibbles ────────────────────────────────────────────────────────
#define COLOR_BLACK 0x0
#define COLOR_WHITE 0x1
#define COLOR_GREEN 0x2
#define COLOR_BLUE 0x3
#define COLOR_RED 0x4
#define COLOR_YELLOW 0x5
#define COLOR_ORANGE 0x6
// Verified on Waveshare 7.3" hardware. Same map on 13.3" Spectra 6.
#define COLOR_BLACK 0x0
#define COLOR_WHITE 0x1
#define COLOR_YELLOW 0x2
#define COLOR_RED 0x3
#define COLOR_BLUE 0x5
#define COLOR_GREEN 0x6
// ── NVS ──────────────────────────────────────────────────────────────────────
#define NVS_NAMESPACE "pf"
+41
View File
@@ -0,0 +1,41 @@
#ifdef ENV_TEST_DISPLAY
#include <Arduino.h>
#include <SPI.h>
#include <LittleFS.h>
#include "config.h"
#include "epd.h"
void setup() {
Serial.begin(115200);
Serial.println("display test boot");
pinMode(PIN_CS, OUTPUT);
pinMode(PIN_DC, OUTPUT);
pinMode(PIN_RST, OUTPUT);
pinMode(PIN_BUSY, INPUT);
SPI.begin(PIN_SCK, -1, PIN_MOSI, PIN_CS);
SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
LittleFS.begin(true);
File f = LittleFS.open("/img.bin", "r");
if (!f) {
Serial.println("ERROR: /img.bin not found — did you run uploadfs?");
return;
}
Serial.printf("/img.bin: %u bytes\n", f.size());
epd_init();
epd_draw_image_from_file(f);
f.close();
epd_sleep();
Serial.println("done");
}
void loop() {
delay(60000);
}
#endif