feat: Add ESP32 climb preview display firmware for Waveshare LCD#645
feat: Add ESP32 climb preview display firmware for Waveshare LCD#645marcodejongh wants to merge 6 commits intomainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. Issues
DocumentationNo documentation updates needed - this is a new standalone embedded project that doesn't affect documented systems in |
Add firmware for the Waveshare ESP32-S3 Touch LCD 4.3" to display climb previews from Boardsesh party sessions. Features: - LovyanGFX-based display driver for 800x480 RGB parallel LCD - Real-time climb preview via GraphQL subscription - Shows climb name, angle, difficulty, and hold visualization - WiFiManager for easy WiFi configuration - Web-based configuration portal for API key and session ID - Touch screen support (GT911 controller) - Double-buffered rendering with PSRAM sprites The display uses the same controllerEvents subscription as the LED controller, showing colored circles for lit-up holds matching the web UI colors. https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd
…port - Add GraphQLLedUpdateCallback type for receiving parsed LED updates - Add setLedUpdateCallback() method to GraphQL client - Make LED controller and BLE dependencies optional using __has_include - Update climb-preview-display to use new callback API - Add proxy mode compatibility documentation The GraphQL client now supports display-only devices that don't have LED controllers. When ledUpdateCallback is set, LED updates are forwarded to the callback instead of directly controlling LEDs. This enables the climb-preview-display to work alongside the board-controller in proxy mode. https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd
1d42160 to
aff915e
Compare
The display can now serve as a BLE proxy itself, connecting directly to official Kilter/Tension boards and forwarding LED commands from Boardsesh. Changes: - Create aurora-ble-client library for BLE client functionality - Add BLE connection status to display info panel - Add memory leak fix with proper destructor for ClimbDisplay - Update main.cpp with BLE proxy support and auto-reconnect - Update documentation with new proxy mode architecture https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd
Claude Review✅ Ready to merge - This is a well-structured ESP32 firmware addition. Minor issues noted below, but nothing blocking. Issues
DocumentationNo documentation updates needed - this is new embedded firmware with comprehensive README. |
- Add destructor to AuroraBLEClient to fix memory leak (pScanCallbacks) - Remove unused connectToDevice() declaration from header - Add comprehensive documentation for placeholder hold data, making it clear that users must replace it with real board data for production https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. This is a well-structured addition of ESP32 firmware for a climb preview display with BLE proxy capability. Issues
DocumentationNo documentation updates needed - this is a new embedded component and includes its own comprehensive README at embedded/projects/climb-preview-display/README.md. TestsNo tests included, but this is ESP32 firmware where automated testing is non-trivial. The README includes manual testing instructions. |
- climb_display.cpp: Fix memory leak in error path - clean up _boardSprite if _infoSprite creation fails - main.cpp: Fix race condition - only update lastBleScanTime if scan started - main.cpp: Add MAX_LED_COMMANDS limit (500) to prevent unbounded growth - main.cpp: Add prominent runtime warning for placeholder hold data with visual display message and serial log banners - graphql_ws_client.cpp: Use explicit null checks for climbUuid/climbName to ensure they're never null pointers https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd
Add new firmware project for LilyGo T-Display S3 (170x320) to display climb queue information with QR codes for quick access to climbs. Changes: - Create lilygo-display shared library with ST7789 driver and UI rendering - Add climb-queue-display project with WiFi AP mode for first-time setup - Add ws:// and wss:// protocol prefix support to graphql-ws-client - Add AP mode support to wifi-utils library for captive portal setup Features: - Shows current climb name, grade (with color), and angle - Generates QR codes linking to climb in Kilter/Tension app - Displays climb history (last 3 climbs) - Status bar showing WiFi, backend, and BLE connection status - Web config portal for WiFi, API key, and session setup Note: BLE proxy mode is disabled pending NimBLE 1.4.x API compatibility fixes. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Claude Review✅ Ready to merge - This is a new embedded firmware project for ESP32 displays. No blocking issues found, minor suggestions noted below. Issues
Notes
|
Add firmware for the Waveshare ESP32-S3 Touch LCD 4.3" to display
climb previews from Boardsesh party sessions. Features:
The display uses the same controllerEvents subscription as the LED
controller, showing colored circles for lit-up holds matching the
web UI colors.
https://claude.ai/code/session_01KQdMgLnHiXmpn2TxKcS6Pd