Add Seeed XIAO nRF54L15 Sense + Wio-SX1262 variant with GPS and IMU support - #11472
Draft
hackengineer wants to merge 1 commit into
Draft
Add Seeed XIAO nRF54L15 Sense + Wio-SX1262 variant with GPS and IMU support#11472hackengineer wants to merge 1 commit into
hackengineer wants to merge 1 commit into
Conversation
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…upport New variant for the XIAO nRF54L15 Sense stacked with the Wio-SX1262 for XIAO (header pinout) and optionally the L76K GNSS Module for XIAO. Platform work included: - Real Serial1 in the nRF54L15 Arduino shim: bound to Zephyr uart21 (XIAO D6/D7) with interrupt-driven RX into a ring buffer, runtime baud reconfiguration for GPS probing, and poll-out TX. Console instances keep the printk behavior. The binding is device-tree guarded, so builds that leave uart21 disabled are unaffected. - ARCH_NRF54L15 added to GPS.cpp's serial-port selection branches. - GPS_SKIP_PROBE: generalizes the SENSECAP_INDICATOR stream-only handling for variants whose GNSS command channel is unavailable. On this stack the L76K's reset line is shared with the radio's RESET on D2, so probe commands are unreliable while the NMEA stream itself is fine. - LSM6DS3 accelerometer enabled (wake-on-motion): motion sources re-added and the Adafruit LSM6DS driver pulled in; BMX160Sensor.cpp is included for its stub constructor because AccelerometerThread's BMX160 case is not include-guarded. Verified on hardware: BLE phone-API bootstrap (encrypted, bonded), LoRa mesh TX/RX/relay on US LongFast, LSM6DS3 init, and GPS fixes (16+ sats, PDOP ~1) via the L76K at 9600 baud. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hackengineer
force-pushed
the
xiao-nrf54l15-wio-sx1262-variant
branch
from
August 15, 2026 18:10
c20ff35 to
3177d29
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New variant for the Seeed Studio XIAO nRF54L15 Sense stacked with the
Wio-SX1262 for XIAO (header pinout, standalone SKU 113010003) and,
optionally, the L76K GNSS Module for Seeed Studio XIAO. Registered as
PRIVATE_HW following the nrf54l15dk convention.
Pin map, board overlay (uart21 enabled, i2c22 freed for the radio's D4/D5,
MCUboot slot1 reclaimed for LittleFS), and hardware notes are in the
variant's README.
Platform work included, all device-tree- or arch-guarded so existing
targets (including nrf54l15dk) are unaffected:
Serial1in the nRF54L15 Arduino shim: bound to Zephyruart21(XIAO D6/D7) with interrupt-driven RX into a ring buffer, runtime baud
reconfiguration for GPS probing, and poll-out TX. Console instances keep
the existing printk behavior; the device binding is guarded by
DT_NODE_HAS_STATUS(..., okay), so builds that leave uart21 disabledcompile identically.
ARCH_NRF54L15added to GPS.cpp's serial-port selection branches(previously fell through to
#error Unsupported architecture!).GPS_SKIP_PROBE: generalizes the existingSENSECAP_INDICATORstream-only handling for variants whose GNSS command channel is
unavailable. On this stack the L76K shield's reset line is shared with
the radio's RESET on D2, so probe commands are unreliable while the NMEA
stream itself is fine — the variant parses the stream directly at the
module's default 9600 baud.
wake-on-motion: motion sources re-added to the build and the Adafruit
LSM6DS driver pulled in.
BMX160Sensor.cppis included for its stubconstructor because AccelerometerThread's BMX160 switch case is not
include-guarded.
Verified on hardware: BLE phone-API bootstrap (encrypted fixed-PIN pairing,
bond persistence across reboots), LoRa mesh TX/RX/relay on US LongFast,
LSM6DS3 detection and init, and GPS fixes (16+ satellites, PDOP ~1.0) from
the L76K.
BLE reliability on this board depends on #11471 (sleep-clock and phone-API
fixes); this PR builds independently of it.
🤝 Attestations
Tested on the target hardware (XIAO nRF54L15 Sense + Wio-SX1262 + L76K).
All shared-code changes are behind
ARCH_NRF54L15, a device-tree statusguard, or the new opt-in
GPS_SKIP_PROBEdefine, so the listed devicescompile byte-identical firmware.