feat: add M5Stack Unit C6L variant support - #3100
Conversation
|
DisplayDriver.h Conflict Resolution: Kept our C6L-compatible implementation: ✅ Retained MarqueeScroller struct for companion radio display scrolling platformio.ini Conflict Resolution: Kept our hardware-correct implementation: ✅ PI4IO I/O expander pins (SDA=10, SCL=8) Build successful on c6l-dev-ci branch: https://github.com/vistalba/MeshCore/actions |
|
Saw this while it's in progress — I've been working on the same board 1. USB CDC flags missing on the BLE env
2. Android fails to pair on first boot after a fresh erase When I worked around it by persisting the generated PIN on first boot, which 3. BLE notify can be silently dropped (ESP32-specific)
I added a CCCD subscription check in Still open on my side: iPhone X shows a "Fail to fetch device info" Two smaller notes, take or leave while this is still a draft:
Happy to build and test this branch on my hardware whenever you want a |
Summary
Adds full support for the M5Stack Unit C6L (ESP32-C6 + SX1262 LoRa), including PI4IO I/O expander for RF switch control and a custom minimal UITask for the 64x48 SSD1306 SPI display.
Changes
New variant:
variants/m5stack_unit_c6l/UnitC6LBoard): PI4IO I/O expander (reset, direction, pull-up/pull-down), SPI bus management, display/RF switch initplatformio.ini): corrected pins (NeoPixel TX on 2, I2C SDA=10/SCL=8, SPI shared with LoRa)board_build.flash_mode = dio— fixes bootloop on ESP32-C6 rev v0.2 (see Added flash_mode=dio to avoid boot loop when flashing using merge.bin #2570)Display support (
SSD1306SPIDisplay)src/helpers/ui/SSD1306SPIDisplay.*spi_initializedflag)variants/m5stack_unit_c6l/companion/— shows PIN, scrolling node name, frequency, unread countShared fixes
src/helpers/esp32/SerialBLEInterface.cpp: fixed include"esp_mac.h"→<esp_mac.h>src/helpers/ui/DisplayDriver.h: addedMarqueeScrollerstruct