Seeed XIAO nRF52840 + Wio-SX1262 Kit
Ultra-kompaktes Combo-Kit aus XIAO nRF52840 (ARM Cortex-M4, 64 MHz) und Wio-SX1262-Erweiterungsmodul. Maße: nur 22×21×18 mm. Integrierte Antenne, BLE 5.0, LoRa 862–930 MHz. Community-Firmware: Companion BLE/USB, Repeater, Room Server. Im MeshCore Flasher als "ProMicro" gelistet.
Hardware Specifications
MCU
nRF52840
RAM
256 KB
Flash
1 MB
Display
-
Button Count
1
Has LEDs
true
Weight
3 g
Dimensions
22 x 21 x 18
LoRa Specifications
LoRa Chip
SX1262
Frequency Band
868 MHz, 915 MHz
Max. TX Power
22 dBm
Antenna Type
Integrierte PCB-Antenne
Typical Range
10 km
Connectivity
WiFi
false
Bluetooth
true
GPS
false
Power
USB Type
Battery Connector
JST 1.25mm (extern)
Solar Support
false
Power Consumption (Idle)
5 mA
Power Consumption (TX)
82 mA
Firmware Support
Release notes: https://blog.meshcore.io/2026/08/14/release-1-17-1
Release notes: https://blog.meshcore.io/2026/08/14/release-1-17-1
Release notes: https://blog.meshcore.io/2026/08/14/release-1-17-1
Release notes: https://blog.meshcore.io/2026/08/14/release-1-17-1
⚠️ Check that radio.rxgain(on) and flood.advert.base (0.308) are set correctly after flashing! ⚠️
This build is based on official MeshCore 1.15.0 dev branch (as of 25-May-2026 and additionally includes the following unmerged upstream PRs/changes:
- PR2553: Limit flood advert packet forwarding -->
set flood.advert.base 0...1(0: no flood adv. forwarding, 0.308: default, 1: all flood adv. forwarding) - PR1810: Allow direct message paths when denyf * is set
- :new: PR1727: Use hardware channel activity detection for checking interference --> Use
set int.thresh 1to activate hw based channel activity detection. - :new: PR2377: Disable NRF52 undervoltage bootlock feature
- Flood adverts are disabled (flood.advert.interval set to 0) by default
- :new: modified PR1810 to not block flood adverts but only
PAYLOADTYPEGRPTXTandPAYLOADTYPEGRPDATAso that some limited flood advert distribution can be managed via PR2553 to support e.g. observer maps.
- Based on
devv1.15.0 as of 25-May-2026
For Internal Testing - Do NOT install in hard to reach repeaters
- Latest PowerSaving with latest RX PowerSaving on MeshCore 1.17.1
- Fixed T096 OLED to save 3.5mA and use old dark theme
Areas to focus testing:
- For T096 and v4 repeaters: set radio.fem.rxgain on/off => Check if this setting is persisted across reboot. Check the impact on noise floor.
- For T096 and v4 companions: Compare the impact on noise floor for femon vs. femoff
- For T096: Test the TX power
- Test RXPS
View or change RX power saving
Usage:get radio.rxpsset radio.rxps offset radio.rxps onset radio.rxps conservativeset radio.rxps balancedset radio.rxps <level>set radio.rxps level <level>set radio.rxps level <level> preamble <symbols>set radio.rxps <rxus> <sleepus>
level:1-10; higher levels use shorter receive windows and longer sleep windows.symbols:16or32preamble symbols.rxus: receive-window duration in microseconds,1000-30000000.sleepus: radio sleep duration in microseconds,1000-30000000.
off
Profiles:
onandconservative: level 1 with a 16-symbol preamble.balanced: level 5 with a 16-symbol preamble.- A numeric level, or
level <level>, automatically uses 32 preamble symbols for SF5-SF8 and 16 for SF9-SF12. level <level> preamble <symbols>explicitly fixes the preamble used in the calculation.- Explicit
rxus sleepusvalues select manual timing (level=0).
Level-based settings are recalculated after SF or bandwidth changes. Manual timings are not recalculated. Settings are persisted in
/prefs.json. Companion firmware does not expose this text command and applies its fixed level 5 / preamble 16 profile at startup and after radio-parameter changes.
get radio.rxps reports:
`text
desired=<on|off>,effective=<armed|continuous>,supported=<yes|no>,
level=<0-10>,preamble=<0|16|32>,rx=<us>,sleep=<us>,
err=<RadioLib error>,fail=<count>[,erx=<us>,eslp=<us>]
`
desiredis the saved user setting.effective=armedmeans receive duty-cycle is active.effective=continuousmeans RXPS is disabled, unsupported, or the last arm attempt fell back to continuous RX.failcounts failed arm operations; each one falls back to continuous RX.clear statsresets both this total and the consecutive-failure backoff, granting three fresh arm attempts.erxandeslpappear only when the driver had to clamp the requested periods, and report the effective periods after driver clamping. On LR1110 the RX window is stretched when2*rx + sleepwould not cover the extended period Semtech requires, so the real duty cycle can be less economical thanrx/sleepsuggest.- RXPS is currently supported by the SX1262 and LR1110 wrappers. Other radios remain in continuous RX and reject attempts to enable RXPS.
- There is intentionally no RXPS watchdog, watchdog command, or periodic recovery. Recovery is limited to the immediate continuous-RX fallback after an arm error. After 3 consecutive arm failures the node stops retrying on every RX restart and stays in continuous RX until the RXPS configuration is set again or
clear statsgrants a fresh set of attempts. - On boards with a host-controlled RXEN pin, the RF switch is held in receive mode for the whole duty cycle (otherwise the node would be deaf). An external LNA on that pin therefore stays biased during the sleep windows, so the real power saving is smaller than the
rx/sleepratio implies.
Disable the host-controlled RF receive switch during RX power saving
Usage:get radio.rxps.rfrxdisabledset radio.rxps.rfrxdisabled <state>
state:on|off
off
Notes:
- This is a runtime-only diagnostic setting and resets to
offafter reboot. onreproduces the missing RF_RX assertion during SX1262 receive duty-cycle mode.- Supported only on SX1262 targets with a host-controlled RX enable pin.
- Enabling it can significantly reduce receive sensitivity and make remote commands harder to receive.
---
For Internal Testing - Do NOT install in hard to reach repeaters
- Latest PowerSaving with latest RX PowerSaving on MeshCore 1.17.1
- Fixed T096 OLED to save 3.5mA and use old dark theme
Areas to focus testing:
- For T096 and v4 repeaters: set radio.fem.rxgain on/off => Check if this setting is persisted across reboot. Check the impact on noise floor.
- For T096 and v4 companions: Compare the impact on noise floor for femon vs. femoff
- For T096: Test the TX power
- Test RXPS
View or change RX power saving
Usage:get radio.rxpsset radio.rxps offset radio.rxps onset radio.rxps conservativeset radio.rxps balancedset radio.rxps <level>set radio.rxps level <level>set radio.rxps level <level> preamble <symbols>set radio.rxps <rxus> <sleepus>
level:1-10; higher levels use shorter receive windows and longer sleep windows.symbols:16or32preamble symbols.rxus: receive-window duration in microseconds,1000-30000000.sleepus: radio sleep duration in microseconds,1000-30000000.
off
Profiles:
onandconservative: level 1 with a 16-symbol preamble.balanced: level 5 with a 16-symbol preamble.- A numeric level, or
level <level>, automatically uses 32 preamble symbols for SF5-SF8 and 16 for SF9-SF12. level <level> preamble <symbols>explicitly fixes the preamble used in the calculation.- Explicit
rxus sleepusvalues select manual timing (level=0).
Level-based settings are recalculated after SF or bandwidth changes. Manual timings are not recalculated. Settings are persisted in
/prefs.json. Companion firmware does not expose this text command and applies its fixed level 5 / preamble 16 profile at startup and after radio-parameter changes.
get radio.rxps reports:
`text
desired=<on|off>,effective=<armed|continuous>,supported=<yes|no>,
level=<0-10>,preamble=<0|16|32>,rx=<us>,sleep=<us>,
err=<RadioLib error>,fail=<count>[,erx=<us>,eslp=<us>]
`
desiredis the saved user setting.effective=armedmeans receive duty-cycle is active.effective=continuousmeans RXPS is disabled, unsupported, or the last arm attempt fell back to continuous RX.failcounts failed arm operations; each one falls back to continuous RX.clear statsresets both this total and the consecutive-failure backoff, granting three fresh arm attempts.erxandeslpappear only when the driver had to clamp the requested periods, and report the effective periods after driver clamping. On LR1110 the RX window is stretched when2*rx + sleepwould not cover the extended period Semtech requires, so the real duty cycle can be less economical thanrx/sleepsuggest.- RXPS is currently supported by the SX1262 and LR1110 wrappers. Other radios remain in continuous RX and reject attempts to enable RXPS.
- There is intentionally no RXPS watchdog, watchdog command, or periodic recovery. Recovery is limited to the immediate continuous-RX fallback after an arm error. After 3 consecutive arm failures the node stops retrying on every RX restart and stays in continuous RX until the RXPS configuration is set again or
clear statsgrants a fresh set of attempts. - On boards with a host-controlled RXEN pin, the RF switch is held in receive mode for the whole duty cycle (otherwise the node would be deaf). An external LNA on that pin therefore stays biased during the sleep windows, so the real power saving is smaller than the
rx/sleepratio implies.
Disable the host-controlled RF receive switch during RX power saving
Usage:get radio.rxps.rfrxdisabledset radio.rxps.rfrxdisabled <state>
state:on|off
off
Notes:
- This is a runtime-only diagnostic setting and resets to
offafter reboot. onreproduces the missing RF_RX assertion during SX1262 receive duty-cycle mode.- Supported only on SX1262 targets with a host-controlled RX enable pin.
- Enabling it can significantly reduce receive sensitivity and make remote commands harder to receive.
---
Keep making 1-2W solar repeaters and 5-day BLE companions possible:
- Developed by IoTThinks and tested by our supportive MeshCore friends.
- Contribution to MeshCore: By IoTThinks%20is%3Apr%20author%3A%40IoTThinks).
- Source code: https://github.com/IoTThinks/MeshCore/tree/PowerSaving-v16
IMPORTANT NOTICES
- For repeaters / room servers, after upgrade to PowerSaving 16, you need to check and set the default values again
set flood.max 64(default value) ,set flood.max.unscoped 64(default value) andset radio.fem.rxgain on/off(Heltec v4.3 and T096 only, if you set "off" before) https://github.com/meshcore-dev/MeshCore/pull/2140#issuecomment-4677295983
Support Us
Enjoying our work? Support us via  or .Updates:
- v16.0.3: Fixed T-Echo lite to hibernate at 1mA instead 6mA. We will cut power more in PowerSaving 17 to reduce to 10uA.
- v16.0.2: Fixed GPS time sync for Heltec T114. It will sync after boot and GPS lock. It will sync time every 30 minutes or by manual "gps sync"
- v16.0.1: Wio Tracker L1 BLE companion has high power consumption is at 35mA in PowerSaving 16 instead of 7.5mA as in PowerSaving 15. This issue might affect a few NRF52 boards with GPS modules attached.
Instruction:
- Scroll down to bottom to download uf2 / upgrade.bin to upgrade or freshInstall-merged.bin for new devices.
- Heltec v4 bin files is for both Heltec v4.2 and v4.3. Heltec v4.3 bin files is for Heltec v4.3 only
- Heltec v4.3 and T096 have two options FEM RXgain on and FEM Rxgain off.
- Flash Custom Firmware as in INSTRUCTION.
- If your board is not at the bottom section, please request us at GITHUB
- Fast support: Discord
Features:
Based on MeshCore 1.16, plus PowerSaving features and more:- Repeaters and room servers for both ESP32 and NRF52: CLI
powersaving on,powersaving offandpowersaving - BLE companions for both ESP32 and NRF52: Enabled by default
- [NEW] Hibernate mode for ESP32 BLE Companions now work properly and at 16uA
- [NEW] Optimize Heltec T096 from 12mA down to 8.7mA
- [NEW] Repeaters for both ESP32 and NRF52: CLI
set reboot.interval <hours>andget reboot.interval. hours is 0-255. 0 is default and disabled. This helps to recover repeaters due to unknown hang. - [NEW] Set return path for repeaters: https://github.com/meshcore-dev/MeshCore/pull/2586
- [NEW] Add time keeping for NRF52 across resets: https://github.com/meshcore-dev/MeshCore/pull/2704
- FEM LNA for Heltec v4.3, Heltec T096, Heltec TrackerV2: CLI
set radio.fem.rxgain on/offandget radio.fem.rxgain. https://github.com/meshcore-dev/MeshCore/pull/2140 - Automatically select I2C address (0x76 or 0x77) for BME280, BME680 and BMP680.
- Fixed boot loop for Xiao C6: https://github.com/meshcore-dev/MeshCore/pull/2570
- Check reset reasons for repeaters: CLI
powerlog - Check I2C and GPS GPIOs: for repeaters: CLI
sensor
Hot fixes:
- For BLE companions, possible hang after a while due to CMDSENDRAW_PACKET errors accumulate memory:
Demo
Power Saving for Hibernate mode in BLE Companion
Heltec v4.2 Companion can enter Hibernate mode at 16.4uA <img height="512" alt="image" src="https://github.com/user-attachments/assets/08c5c0d6-9960-4cb4-bcaf-a1d2d1ba78a0" />Power Saving for repeaters
Enter powersaving mode (CLI > powersaving on), 5.5mA for Heltec v4.3 with FEM and rxgain off, 5.8mA if FEM off and rxgain on. 13mA for Heltec v4.2 or Heltec V4.3 with FEM and rxgain on. 5.0mA for RAK4631<img height="384" alt="image" src="https://github.com/user-attachments/assets/be6e298d-4931-4e83-8220-0d072f8aeefd" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/924aa3a5-64d0-4112-aa66-6ff72178d3ac" />
<img height="384" alt="image" src="https://github.com/user-attachments/assets/903d899d-66c4-4d88-bf61-e9601797009f" />
Power Saving for BLE companions
Default PowerSaving for ESP32 companion BLE. Reduced from 120mA down to 15-25mA. <img height="384" alt="image" src="https://github.com/user-attachments/assets/bcae8449-4646-4a98-852f-312582686ad6" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/2fc5bee1-fe89-4c8f-8097-2db181d89f4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/656fcd90-3211-4044-832b-a63f30c2fb4a" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/7611ebb5-d2d1-42b7-8845-6016e838b0cf" />PowerLog and Sensor CLI
Enter CLI "powerlog" to see last reset/shutdown reason and the battery voltage during last boot. Enter CLI "sensor" to check I2C and GPS Serial pins <img height="384" alt="image" src="https://github.com/user-attachments/assets/79a31bf6-a0c2-46d3-bf7e-d63ca27e3014" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/1870c4e7-5942-466e-af0c-66e7567c7aae" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/060dd847-5984-4dc2-a5fe-cfe81180dc6c" /> <img height="384" alt="image" src="https://github.com/user-attachments/assets/49f25de7-a122-480f-a54a-a7176ec25f26" />Enjoy the long battery life. 👯♂️ 👯♂️ 👯♂️
Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...repeater-v1.0.1
Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...companion-v1.0.1
Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...companion-v1.0.1
Full Changelog: https://github.com/MichTronics/MeshCoreNG/compare/bridge-tcp-v1.0.5...room-server-v1.0.1
Automatic sync from different repositories
Links
Purchase Links
https://www.seeedstudio.com/XIAO-nRF52840-Wio-SX1262-Kit-for-Meshtastic-p-6400.html
https://www.aliexpress.com/item/1005007457193648.html
Links to online shops are subject to change. We do not guarantee that these links will remain accessible.