Commit Graph

63 Commits

Author SHA1 Message Date
25b490ac12 fix: make .ino compile guard target-aware
ST7796_DRIVER check only fires when USE_TFT_ESPI is active.
Waveshare (Arduino_GFX) path skips this check entirely.
2026-02-16 12:38:40 -08:00
fd7d93e395 build: multi-target mise.toml with BOARD_TARGET env var
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.
2026-02-16 12:38:14 -08:00
0ed4c7ffce refactor: abstract hardware in DisplayManager
- TFT_eSPI -> Gfx typedef (zero-cost on E32R35T)
- Touch reads wrapped in #if USE_TOUCH_XPT2046 / USE_TOUCH_GT911
- Hardcoded rotation -> DISPLAY_ROTATION from BoardConfig
- All 480/320 literals -> SCREEN_WIDTH / SCREEN_HEIGHT
- Boot splash shows BOARD_NAME for target identification
- Added holdProgress() convenience method using HOLD_DURATION_MS
2026-02-16 12:38:14 -08:00
97abcd9916 refactor: parameterize Dashboard for multi-target
- 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)
2026-02-16 12:38:14 -08:00
9ef989d3a9 feat: add touch driver abstraction layer
XPT2046 path: no change — uses TFT_eSPI built-in getTouch().
GT911 path:   TouchDriver namespace with begin()/read() stub.

TouchDriverGT911.cpp compiles to nothing on TFT_eSPI targets.
Uncomment TAMC_GT911 lines to enable real capacitive touch.
2026-02-16 12:38:13 -08:00
c292b2cf54 feat: add display driver abstraction layer
Gfx / GfxSprite types:
  - TFT_eSPI path: zero-cost typedefs to TFT_eSPI / TFT_eSprite
  - Arduino_GFX path: adapter classes with TFT_eSPI-compatible API

DisplayDriverGFX.cpp compiles to nothing on TFT_eSPI targets.
GfxSprite on Arduino_GFX uses direct-draw (no offscreen buffer yet).
2026-02-16 12:38:13 -08:00
c6eb4e3875 feat: add board configuration system, refactor Config.h
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
2026-02-16 12:38:13 -08:00
46b0cb96a9 snapshot 2026-02-16 11:53:09 -08:00
9e285e07a2 snapshot 2026-02-16 03:36:04 -08:00
893c50dbc0 snapshot 2026-02-16 03:14:38 -08:00
67fd36bffb snapshot 2026-02-16 03:07:23 -08:00
152cfeb995 implement dashboard on wake 2026-02-16 02:53:08 -08:00
6dbe1be1cd snapshot 2026-02-16 02:33:38 -08:00
a134c8bc37 snapshot 2026-02-16 02:11:46 -08:00
185067e5d5 snapshot 2026-02-16 02:01:27 -08:00
9790fd4a31 snapshot 2026-02-16 00:39:28 -08:00
2afb6b81ed snapshot 2026-02-16 00:23:25 -08:00
3c9e982c98 snapshot 2026-02-15 23:25:11 -08:00
ef13cf3c8c snapshot 2026-02-15 17:47:11 -08:00
bfa8592eec snapshot 2026-02-15 17:42:33 -08:00
d3aeb6f207 snapshot 2026-02-15 17:11:07 -08:00
80b1291489 snapshot 2026-02-15 16:50:20 -08:00
69800016c4 snapshot 2026-02-15 16:36:28 -08:00
5e8b5410e5 add tft fork to doorbell sketch 2026-02-15 11:52:26 -08:00
973787cc94 snapshot 2026-02-13 21:42:32 -08:00
0345889a69 snapshot 2026-02-13 20:29:18 -08:00
7632f698bd snapshot 2026-02-13 20:21:11 -08:00
4d274fd62c networking broken 2026-02-13 20:15:53 -08:00
7135788af4 snapshot 2026-02-13 20:06:57 -08:00
76c27131aa snapshot 2026-02-13 20:01:32 -08:00
8d2c6fbb35 snapshot 2026-02-13 19:41:14 -08:00
deb33eb352 snapshot 2026-02-13 14:42:07 -08:00
6a485b6ad9 snapshot 2026-02-13 13:12:01 -08:00
8338614fd7 snapshot 2026-02-13 12:36:09 -08:00
dc8dbdb957 snapshot 2026-02-13 12:26:11 -08:00
8fcf997418 snapshot 2026-02-12 22:47:51 -08:00
96bcf8c403 snapshot 2026-02-12 21:32:44 -08:00
40714a3a68 snapshot 2026-02-12 21:00:02 -08:00
cb1f2b0efd snapshot 2026-02-12 16:12:44 -08:00
14e774acc1 snapshot 2026-02-12 12:36:56 -08:00
29a4832894 snapshot 2026-02-12 12:19:04 -08:00
6555a933a6 snapshot 2026-02-12 11:51:16 -08:00
c97439333f snapshot 2026-02-12 11:08:03 -08:00
e78bc02cf1 snapshot 2026-02-12 10:57:11 -08:00
f7b6cce5e0 snapshot 2026-02-12 06:28:06 -08:00
664d7b72fb snapshot 2026-02-12 06:27:57 -08:00
b3983aa379 snapshot 2026-02-12 05:53:59 -08:00
edefb1513a snapshot 2026-02-12 05:50:58 -08:00
f49f727ae2 snapshot 2026-02-12 05:46:10 -08:00
10bb057b10 snapshot 2026-02-12 05:28:32 -08:00