Firmware for Seeed XIAO ESP32C6 and WIO-SX1262 for XIAO#10917
Conversation
@reb1995, Welcome to Meshtastic!Thanks for opening your first pull request. We really appreciate it. We discuss work as a team in discord, please join us in the #firmware channel. Welcome to the team 😄 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThis PR adds Seeed Xiao ESP32-C6 board support with a board definition, PlatformIO environment, Arduino pin mappings, and variant macros for board pins and SX1262 radio control. ChangesSeeed Xiao C6 board support
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@variants/esp32c6/seeed_xiao_c6/platformio.ini`:
- Around line 10-18: The esp32c6 seeed_xiao_c6 environment is incorrectly marked
as DFU-required even though it uses esptool for flashing. Update the board
configuration in the seeed_xiao_c6 PlatformIO env so
custom_meshtastic_requires_dfu is not set to true, and keep the flash/update
metadata consistent with upload_protocol and the generated manifest.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 0b43384d-a3a6-4aac-80a8-197866518539
📒 Files selected for processing (4)
boards/seeed-xiao-c6.jsonvariants/esp32c6/seeed_xiao_c6/pins_arduino.hvariants/esp32c6/seeed_xiao_c6/platformio.inivariants/esp32c6/seeed_xiao_c6/variant.h
|
Looks good. Can you please run trunk fmt for our linting? |
…OA. Confirmed LED blinking as expected, TX and RX on both public channels and DMs. Working over bluetooth connection and WiFi. I2C confirmed working with oled screen.
|
|
Build seems to be failing due to a missing partition scheme csv. The app size, ~2.5MB, will not fit in the 4MB flash with OTA enabled. In my local branch, I was using a default huge_app.csv partition scheme which had 3MB for the app. This wasn't included in the repo and the CI/CD didn't have the partition. Sorry for my oversight. As a solution, we could add a new partition for the 4MB devices that doesn't include OTA capabilities. I have tested the following partition table to build and work. Not sure if it is something that you want to do. I'll leave that up to you all if that is worth doing or needs to be done before this PR. |
Try excluding modules like Audio and webserver? |
Sure. I can try that. Will report back with my findings. |
|
Did quite a bit of test compiles and measurements (~15 different builds). Disabling the audio doesn't seem to change the size at all. Finally cut enough by disabling the Webserver and WiFi components to get it small enough to be able to OTA (~1.70 MB), however the ESP32C6 doesn't do bluetooth OTAs. So with no WiFi it wouldn't be able to OTA at all. I think I was overthinking this and I think the only way to do this is to go forward is with a non OTA 4MB ESP32 partition table. Not sure if this is something you guys want to do, but the partition table I posted earlier is working for the ESP32C6. I believe it would also work for the Seeed ESP32C3 (and other C3/C6's) as well. If this gets accepted, I'd be happy to write and test configurations for that. Let me know if we want to go the non OTA route with a new partition table or if we want to close without merging. Or maybe there's a 3rd option I'm missing. Sorry again to run in circles on this. I thought it would be a simple win but maybe missed the mark.
Proposed 4MB flash partition table |



Confirmed LED blinking as expected, TX and RX working on both public channels and DMs. Working over bluetooth connection and WiFi. I2C confirmed working with oled screen.
🤝 Attestations
Seeed ESP32C6 XIAO device with Wio SX1262. Tested working with communication between my C6 and my RAK devices.
Summary by CodeRabbit