feat: add CYD ThermoPro bridge firmware skeleton

Add PlatformIO project for the ESP32-2432S028R that:
- Reads ThermoPro BLE BBQ thermometers via NimBLE-Arduino
- Exposes /api/health, /api/latest, and /api/settings HTTP endpoints
- Serves a captive-portal setup UI and touch dashboard
- Persists WiFi/BLE/settings in NVS via Preferences

Builds cleanly with pio run.
This commit is contained in:
Keith Solomon
2026-07-20 14:38:35 -05:00
parent 9a3a8f9368
commit 8e007de5a1
9 changed files with 85 additions and 121 deletions
+11 -2
View File
@@ -76,7 +76,7 @@ Runtime settings (endpoint, token, probe names, units, polling interval) can be
## Building and flashing
Requires [PlatformIO](https://platformio.org/) installed locally (not available in this cloud environment).
Requires [PlatformIO](https://platformio.org/).
```bash
cd cyd-bridge
@@ -102,9 +102,18 @@ Before relying on the dashboard, verify the pinout matches your exact board revi
2. Confirm `TFT_CS`, `TFT_DC`, `TFT_RST`, `TFT_BL`, `TOUCH_CS`, and the SPI pins match the silkscreen or schematic of your ESP32-2432S028R.
3. If the screen stays white or touch is inverted, adjust `cfg.offset_rotation` in `DisplayConfig.hpp` or `setRotation()` in `Dashboard::begin()`.
## Memory usage
With the default partition table the firmware uses approximately:
- **RAM:** ~18 % (~58 kB of 320 kB)
- **Flash:** ~92 % (~1.2 MB of 1.3 MB)
There is enough headroom to run, but large future features (e.g. local graphing, OTA) may require switching to a larger app partition or dropping unused NimBLE options.
## Development notes
- LovyanGFX driver/pin configuration lives in `src/display/DisplayConfig.hpp` and is tuned for the ESP32-2432S028R variant.
- BLE uses `NimBLE-Arduino` to leave enough RAM for the web server and UI.
- All user settings are stored in ESP32 NVS via `Preferences`.
- The firmware has not yet been compiled in this environment due to missing PlatformIO tooling; it should be built locally on your development machine before flashing.
- The firmware compiles successfully in PlatformIO; the remaining work is on-device testing and pinout verification.