20 Commits

Author SHA1 Message Date
pelgraine 7005bd065e Merge pull request #22 from nabbi/fix/full-build-failures-on-main
Fix remaining build failures found by a full pio run across all envs
2026-06-24 21:43:29 +10:00
Nic Boet abc2457123 Fix remaining build failures found by a full pio run across all envs
A complete `pio run` (all 16 environments) on Linux turned up 6
failures beyond the case-sensitive-include fix already on this
branch:

1. meck_remote_repeater, meck_wifi_repeater, meck_wifi_repeater_t5s3
   compile GxEPDDisplay.cpp / FastEPDDisplay.cpp, which #include
   MeckFonts.h whenever HAS_MECK_FONTS is defined. HAS_MECK_FONTS is
   set at the shared variant-base level (so all envs in that variant
   inherit it), but the `-I examples/companion_radio/ui-new` include
   path needed to find MeckFonts.h was only added to the
   companion-radio envs, not the repeater envs in the same file.
   Added the missing -I flag to the three repeater env sections.

2. meck_wifi_repeater_heltec_v3/v4/v4_headless failed with "missing
   SConscript file 'merge-bin.py'". esp32_base's extra_scripts still
   pointed at merge-bin.py, which was deleted in 451f4b01 ("remove
   redundant merge script"). Other variants override extra_scripts
   themselves so they never hit the stale base default; the Heltec
   variants don't, so they inherited the broken reference. Pointed
   esp32_base at merge_firmware.py instead, matching every variant
   that already sets this explicitly.

3. After fix #1, meck_wifi_repeater_t5s3 still failed: wifimqtt.cpp
   had a hardcoded `extern AutoDiscoverRTCClock rtc_clock;`, but the
   T5S3 variant declares its global rtc_clock as PCF85063Clock (a
   different concrete RTCClock subclass) in target.h. The local
   extern was redundant anyway, since target.h is already included
   at the top of this file and declares the correctly-typed global
   for whichever variant is being built. Removed the stale extern so
   the call resolves through the existing declaration.

Verified: `pio run` now succeeds for all 16 environments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 16:11:36 -05:00
Nic Boet 7df116b4f1 Fix case-sensitive filesystem build failures (Linux) for ESP32 LilyGo variants
The repo has apparently only ever been built on case-insensitive
filesystems (macOS/Windows): every #include in the codebase uses
intended PascalCase/CamelCase header names (e.g. "SettingsScreen.h",
"WiFiMQTT.h"), but 28 of the actual files on disk were saved with
inconsistent casing (e.g. "Settingsscreen.h", "wifimqtt.h"). On a
case-sensitive filesystem (Linux) this is a hard compile failure, not
a cosmetic mismatch -- confirmed by running `pio run -e meck_audio_ble`
on Gentoo Linux, which failed immediately on "target.h: No such file
or directory" and a cascade of similar errors as each fix exposed the
next one.

Root causes, two flavors of the same underlying bug:

1. Header filename casing (29 files renamed via `git mv` to preserve
   history): examples/companion_radio/ui-new/*, examples/simple_repeater/*,
   and two variant-local headers (PCF85063Clock.h, TCA8418Keyboard.h x2).
   Verified safe before renaming: every file has exactly one consistent
   intended casing across all the places that #include it (checked via
   a repo-wide scan comparing every #include against on-disk filenames,
   zero conflicts found), so each rename is a pure no-op for behavior.

2. PlatformIO config paths using the wrong case for variant directories
   that are actually lowercase on disk (variants/lilygo_tdeck_pro,
   variants/lilygo_t5s3_epaper_pro):
   - `-I variants/LilyGo_TDeck_Pro` / `-I variants/LilyGo_T5S3_EPaper_Pro`
     in build_flags (3 occurrences, including lilygo_tdeck_max's
     reference to TDeck Pro's shared headers) -- broke header resolution
     for target.h and friends.
   - `+<../variants/LilyGo_TDeck_Pro>` / `+<../variants/LilyGo_T5S3_EPaper_Pro>`
     in build_src_filter (2 occurrences) -- silently excluded the board-init
     .cpp files (TDeckBoard.cpp etc.) from compilation entirely, which
     didn't fail until the *link* stage ("undefined reference to
     radio_init()", `TDeckBoard::begin()`, etc.) since PlatformIO's glob
     just matched nothing rather than erroring.

Verified fix: `pio run -e meck_audio_ble` now compiles, links, and
produces a firmware image cleanly (RAM 53.1%, Flash 49.6%).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:44:46 -05:00
pelgraine f51d8be290 Fix to beer emoji mug handle; font changes that support diacritics meaning updates to display drivers, fonts, highlighting, sprites; build flag added to both tdpro and t5s3 pro to enable diacritics rendering changes 2026-05-02 09:26:30 +10:00
pelgraine f436f5ba50 t5s3 contact limit fix 2026-04-09 12:18:29 +10:00
pelgraine b070af39cc t5s3 wifi remote repeater 2026-04-05 08:57:47 +10:00
pelgraine b991eb0fe7 bumped up max contacts for BLE companions to 510 2026-03-29 16:15:55 +11:00
pelgraine ce93cfa033 sd file manager ota system 2026-03-27 03:36:20 +11:00
pelgraine 342cf4e745 tdpro large font pref option; various large font ui fixes; fix fcc recognition in t5s3 to match 1500 2026-03-26 15:34:09 +11:00
pelgraine 06a064538e fix lock screen bug cpupowermanager issue 2026-03-22 22:56:28 +11:00
pelgraine b208af83f6 t5s3 ota 2026-03-22 16:11:37 +11:00
pelgraine f78824cdc4 tdpro & t5s3 pro - lock screen power saving improvements; fix stupid stupid merged firmware - bug 2026-03-20 20:22:07 +11:00
pelgraine 3ae988c0bb t5s3 cardkb support; update firmware build date 2026-03-20 06:23:05 +11:00
pelgraine 68d10f088f t5s3 standalone env, no wifi, no ble, no gps 2026-03-13 22:50:24 +11:00
pelgraine 9040873526 script to create merged firmware automatically 2026-03-13 22:50:24 +11:00
pelgraine 74b24f1222 t5s3 wifi companion 2026-03-13 22:50:24 +11:00
pelgraine 565c2a4c9b ui fixes including discover screen; clock fix 2026-03-13 22:50:23 +11:00
pelgraine 7ae9c47006 t5s3 ui fixes; t5s3 initial ble and wifi companion build envs 2026-03-13 22:50:23 +11:00
pelgraine 2a0497e5ba lower brightness to 4 for best darkroom reading; first prelim touch implementation; ui improvements 2026-03-13 22:50:23 +11:00
pelgraine 479673e90f LilyGo T5 S3 Epaper Pro No GPS version implementation stage 1 - H752-B; set backlight double click boot to 153 full brightness on, triple click to 40 brightness, double click off 2026-03-13 22:50:23 +11:00