-
Notifications
You must be signed in to change notification settings - Fork 5
feat: Add ESP32 climb preview display firmware for Waveshare LCD #645
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
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