GPIO 8/9 were assigned to both LCD blue data and I2C touch,
causing I2C init to steal the LCD pins and blank the display.
Corrected to match Waveshare ESP32-S3-Touch-LCD-4.3 schematic.
1. **Removed entire `loop()` implementation** - The main program loop is now completely empty
2. **Deleted duplicate `silenceAlerts()` functions** - Three identical copies were consolidated into one
3. **Stripped all functionality**:
- Touch handling for different screens (ALERT, DASHBOARD, OFF)
- Hold-to-silence gesture detection
- Display rendering and backlight control
- Serial command processing
⚠️ **This commit breaks the doorbell functionality completely**:
- The device will boot but do nothing (empty loop)
- Touch input won't be processed
- Screen won't update or display anything
- Serial commands won't work
- Alert silencing is defined but never called
This appears to be an incomplete snapshot/refactoring in progress, leaving the application non-functional.
1. **Gutted the main loop** - Reduced from ~80 lines to completely empty
2. **Removed duplicate code** - Eliminated 2 of 3 identical `silenceAlerts()` function definitions that were accidentally created
**Device is now completely non-functional:**
- No display updates or rendering
- Touch input completely ignored
- Alert silencing impossible (function defined but never called)
- Serial commands won't be processed
- Screen stays on/off in whatever state it was in
This is clearly an accidental commit or work-in-progress snapshot. The doorbell will compile and run but do absolutely nothing except the initial setup.
build.extra_flags replaces the esp32 core's platform-level flags,
which include CONFIG_IDF_TARGET_ESP32S3 — required by Arduino_GFX
for RGB panel support. compiler.cpp.extra_flags appends safely.
Required for uint16_t, Serial, millis() etc. when compiling
outside the .ino (Arduino IDE auto-includes Arduino.h for .ino
files but not for standalone .cpp files).
Restores the original behavior from before commit 46b0cb9:
delegates to logic.onTouch() which transitions state to SILENT.
This was a pre-existing bug (undefined function) exposed by the
multi-target refactoring changing compile guard structure.
Usage:
mise run compile # default (e32r35t)
BOARD_TARGET=waveshare_s3 mise run compile # Waveshare 4.3"
BOARD_TARGET=e32r35t mise run all # build + upload + monitor
BOARD_TARGET=waveshare_s3 mise run install-libs # install target-specific libs
Each target gets its own FQBN, build flags, library set, and port detection.
- TFT_eSPI / TFT_eSprite -> Gfx / GfxSprite typedefs
- Hard-coded 480x320 -> SCREEN_WIDTH / SCREEN_HEIGHT from BoardConfig
- Top bar, WiFi bars, time position all scale to any resolution
- Zero behavioral change on E32R35T (Gfx = TFT_eSPI typedef)
Board selection driven by -DTARGET_E32R35T or -DTARGET_WAVESHARE_S3_43.
Defaults to E32R35T for backward compatibility.
All hardware pin definitions moved from Config.h to board headers.
SCREEN_WIDTH/SCREEN_HEIGHT now come from board headers.
Config.h is now purely application-level configuration.
New files:
BoardConfig.h — board selector
boards/board_e32r35t.h — E32R35T pins, display, touch config
boards/board_waveshare_s3.h — Waveshare S3 4.3" pins, display, touch config
Modified:
Config.h — removed hardware pins section, added #include BoardConfig.h,
added HOLD_DURATION_MS to timing section