MeshCore has carried companion-over-hardware-UART for a long time — the defines SERIAL_RX/SERIAL_TX, packaged per board as a *_companion_radio_serial env, and the ESP32-S3 twin of this very board already uses the same D6/D7 pads. Our patch was reimplementing it for the one platform it had never been wired into: at our old pin the SERIAL_RX branches lived inside the ESP32 and RP2040 blocks and nRF52 fell through to Serial. So the patch is now the two things actually missing, both upstream-shaped and submitted: a Serial1 reference so the shared block compiles on nRF52, and the Xiao_nrf52_companion_radio_serial env carrying the I2C escape in build_unflags rather than editing the flags every XIAO env inherits. Pin moves to a dev commit, since dev is the branch MeshCore takes work on. flash.py grew the check that was missing when it mattered: a drive letter is not an identity — when one board leaves the USB bus another inherits its letter — so it now reads INFO_UF2.TXT and refuses a bootloader that isn't a XIAO, or that carries S140 6.1.1 and would take this S140-v7 image at the wrong address and never boot. It also stops pretending copy-to-drive is the only route: our bootloader exposes a serial port and no mass storage at all, so it prints the serial-DFU command instead of a dead end. Verified from a clean clone at the new pin: env builds, uf2 converts to the same 811008 bytes at 0x27000 that is now running on the radio, and both Xiao_nrf52_companion_radio_usb and Xiao_S3_WIO_companion_radio_serial still build, so neither side of the new #if moved.
24 lines
477 B
Plaintext
24 lines
477 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
build/
|
|
dist/
|
|
|
|
# Ignore all dot-directories (.venv, .pytest_cache, .ruff_cache, .vscode, ...)
|
|
.*/
|
|
# ...except the project's tracked Claude config (settings.local.json stays ignored).
|
|
!.claude/
|
|
.claude/settings.local.json
|
|
|
|
# Other virtual environments
|
|
venv/
|
|
|
|
# MeshTerm runtime data
|
|
*.db
|
|
output/
|
|
|
|
# Built radio firmware (scripts/xiao-radio/build-firmware.sh writes it here)
|
|
scripts/xiao-radio/*.uf2
|
|
scripts/xiao-radio/_meshcore-build/
|