Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f723e52
consolidate the pins
NomDeTom Dec 5, 2025
e628fe9
update
NomDeTom Dec 5, 2025
0ded687
No 2D
NomDeTom Dec 6, 2025
c6bd578
Forgot the default i2c pins
NomDeTom Dec 6, 2025
6fae56f
pull in xiao cleanup PR
NomDeTom Dec 7, 2025
d871f38
include extra stuff in .ini
NomDeTom Jan 9, 2026
e75c4c2
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Jan 9, 2026
a9d26f9
compiles now, at least
NomDeTom Jan 10, 2026
70c7a9b
Merge branch 'meshtastic:develop' into Xiao-NRF-tidy
NomDeTom Jan 10, 2026
e561b93
disable wire1 i2c for now
NomDeTom Jan 21, 2026
644bdb5
Merge branch 'meshtastic:develop' into Xiao-NRF-tidy
NomDeTom Jan 21, 2026
66266ce
needs spaces
NomDeTom Jan 21, 2026
fe94e0b
feat: Add configuration for xiao_ble_33db environment
NomDeTom Jan 21, 2026
bdd903e
refactor: Remove unflags and use -U
NomDeTom Jan 22, 2026
5402a5e
Correct an error and add more commentary
NomDeTom Jan 25, 2026
c756d2d
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Jan 27, 2026
e54209d
Merge remote-tracking branch 'origin/develop' into Xiao-NRF-tidy
NomDeTom Jan 31, 2026
f76855e
Merge branch 'meshtastic:develop' into Xiao-NRF-tidy
NomDeTom Jan 31, 2026
ef2f5d6
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Feb 2, 2026
61e8c86
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Feb 5, 2026
5fc4d2b
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Feb 10, 2026
163e166
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Feb 10, 2026
ae878a9
Update variants/nrf52840/seeed_xiao_nrf52840_kit/variant.h
NomDeTom Feb 12, 2026
221ddfb
Define PIN_GPS_STANDBY conditionally for GPS module
NomDeTom Feb 12, 2026
270db68
Merge branch 'develop' into Xiao-NRF-tidy
NomDeTom Feb 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 9 additions & 31 deletions variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/README.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,21 @@
# XIAO nRF52840 + XIAO Wio SX1262

For a mere doubling in price you too can swap out the XIAO ESP32C3 for a XIAO nRF52840, stack the Wio SX1262 radio board either above or underneath the nRF52840, solder the pins, and achieve a massive improvement in battery life!
For a mere doubling in price you too can swap out the XIAO ESP32S3 for a XIAO nRF52840, stack the Wio SX1262 radio board either above or underneath the nRF52840, solder the pins, and achieve a massive improvement in battery life!

I'm not really sure why else you would want to as the ESP32C3 is perfectly cromulent, easily connects to the Wio SX1262 via the B2B connector and has an onboard IPEX connector for the included Bluetooth antenna. So you'll also lose BT range, but you will also have working ADC for the battery in Meshtastic and also have an ESP32C3 to use for something else!
I'm not really sure why else you would want to as the ESP32S3 is perfectly cromulent, easily connects to the Wio SX1262 via the B2B connector and has an onboard IPEX connector for the included Bluetooth antenna. So you'll also lose BT range, but you will also have working ADC for the battery in Meshtastic and also have an ESP32S3 to use for something else!

If you're still reading you are clearly gonna do it anyway, so...mount the Wio SX1262 either on top or underneath depending on your preference. The `variant.h` will work with either configuration though it does map the Wio SX1262's button to nRF52840 Pin `D5` as it can still be used as a user button and it's nice to be able to gracefully shutdown a node by holding it down for 5 seconds.

If you do decide to wire up the button, orient it so looking straight-down at the Wio SX1262 the radio chip is at the bottom, button in the middle and the hole is at the top - the **left** side of the button should be soldered to `GND` (e.g. the 2nd pin down the top on the **right** row of pins) and the **right** side of the button should be soldered to `D5` (e.g. the 2nd pin up from the button on the **left** row of pins.). This mirrors the original wiring and wiring it in reverse could end up connecting GND to voltage and that's no beuno.

Serial Pins remain available on `D6` (TX) and `D7` (RX) should you want to use them, The same pins could be repurposed for `i2c` if you would like to have that instead of serial, in `variant.h` you would just need to change:
Serial Pins remain available on `D6` (TX) and `D7` (RX) should you want to use them, and I2C has been mapped to NFC1 (SDA, D30) and NFC2 (SCL, D31)

```c++
// RX and TX pins
#define PIN_SERIAL1_RX (6)
#define PIN_SERIAL1_TX (7)
```

to

```c++
// RX and TX pins
#define PIN_SERIAL1_RX (-1)
#define PIN_SERIAL1_TX (-1)
```
The same pins could be reordered if you would like to have a different arrangement, in `variant.h` you would just need to change the relevant lines:

and
```cpp
#define GPS_TX_PIN D6 // This is data from the MCU
#define GPS_RX_PIN D7 // This is data from the GNSS module

```c++
#define PIN_WIRE_SDA (-1)
#define PIN_WIRE_SCL (-1)
// #define PIN_WIRE_SDA (6)
// #define PIN_WIRE_SCL (7)
#define PIN_WIRE_SDA D6
#define PIN_WIRE_SCL D7
```

to

```c++
#define PIN_WIRE_SDA (6)
#define PIN_WIRE_SCL (7)
```

If you wanted both serial and i2c you could even go so far as to use the pads for the PDM mic which is missing on the non-sense board (`P1.00` / `P0.16`)... or move up to the nRF52840 Plus which has even more pins available but hasn't been checked/confirmed if it follows the same pin mapping as the non-plus.
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
; Seeed XIAO nRF52840 + XIAO Wio SX1262 DIY
[env:seeed-xiao-nrf52840-wio-sx1262]
board = xiao_ble_sense
extends = nrf52840_base
; Seeed Xiao BLE but using the B2B from ESP32S3 variant
[env:seeed_xiao_nrf52840_btb]
extends = env:seeed_xiao_nrf52840_kit
board_level = extra
build_flags = ${nrf52840_base.build_flags}
-Ivariants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262
-D PRIVATE_HW
-Ivariants/nrf52840/seeed_xiao_nrf52840_kit
-Isrc/platform/nrf52/softdevice
-Isrc/platform/nrf52/softdevice/nrf52
-DPRIVATE_HW ; Define private hardware
-DSEEED_XIAO_NRF_WIO_BTB ; Define Seeed XIAO nRF Wio B2B
-USEEED_XIAO_NRF52840_KIT ; Remove default HWID
-USEEED_XIAO_NRF_KIT_DEFAULT ; Remove default define
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262>
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/seeed_xiao_nrf52840_kit>
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
;upload_protocol = jlink
62 changes: 0 additions & 62 deletions variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.cpp

This file was deleted.

183 changes: 0 additions & 183 deletions variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.h

This file was deleted.

6 changes: 4 additions & 2 deletions variants/nrf52840/diy/seeed_xiao_nrf52840_e22/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags}
-D PRIVATE_HW
-DEBYTE_E22
-DEBYTE_E22_900M30S
build_unflags = -DGPS_L76K
-USEEED_XIAO_NRF52840_KIT ; remove default HWID
-USEEED_XIAO_NRF_KIT_DEFAULT ; remove default define

; Seeed XIAO nRF52840 + EBYTE E22-900M33S - Pinout matching Wio-SX1262 (SKU 113010003)
[env:seeed_xiao_nrf52840_e22_900m33s]
Expand All @@ -16,4 +17,5 @@ build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags}
-D PRIVATE_HW
-DEBYTE_E22
-DEBYTE_E22_900M33S
build_unflags = -DGPS_L76K
-USEEED_XIAO_NRF52840_KIT ; remove default HWID
-USEEED_XIAO_NRF_KIT_DEFAULT ; remove default define
Loading