Skip to content

Add support for Seeed SenseCAP MeshTracker X1 (LR2021) - #3112

Merged
ripplebiz merged 1 commit into
meshcore-dev:devfrom
Hacuchino-hash:add-meshtracker-x1
Aug 6, 2026
Merged

Add support for Seeed SenseCAP MeshTracker X1 (LR2021)#3112
ripplebiz merged 1 commit into
meshcore-dev:devfrom
Hacuchino-hash:add-meshtracker-x1

Conversation

@Hacuchino-hash

@Hacuchino-hash Hacuchino-hash commented Aug 4, 2026

Copy link
Copy Markdown

Summary

Adds support for the Seeed SenseCAP MeshTracker X1, a card-sized tracker built on the nRF52840 with Semtech's new LR2021 radio and a dual-band (L1+L5) Airoha GNSS.

This is (as far as I can tell) the first LR2021-based target in MeshCore. RadioLib gained LR2021 support in the 7.6/7.7 line, and the existing jgromes/RadioLib @ ^7.6.0 dependency resolves to 7.7.1, which includes the driver plus the datasheet v2.1 updates, so no dependency changes were needed.

What's included

  • src/helpers/radiolib/CustomLR2021.h + CustomLR2021Wrapper.h: LR2021 wrappers modeled closely on the LR1110 ones (header-error recovery via standby(), preamble/SF handling, instant RSSI for noise-floor sampling, RX boosted gain mapped to the LR2021's 0 to 7 boost levels)
  • variants/meshtracker_x1/: variant pin map, board class, GPS sensor manager (Airoha @ 115200, same power-pin sequencing style as the T1000-E), and envs for repeater, room_server, companion_radio_usb, companion_radio_ble
  • boards/seeed-mesh-tracker-x1.json: board definition (S140 7.3.0, same layout as the T1000-E)

Pin assignments were cross-checked against Seeed's wiki and the Meshtastic seeed_mesh_tracker_X1 variant. One LR2021-specific detail: the chip's IRQ line to the MCU is its DIO8 pin (routed to P1.01), configured via RadioLib's irqDioNum before begin().

The four env names follow the standard suffixes, so build.sh firmware discovery picks them up automatically.

Testing

  • All four environments build clean (RAM 11-58%, flash 44-52%).
  • Flashed MeshTracker_X1_companion_radio_ble on real hardware via serial DFU: boots, USB enumerates, BLE advertises, and a phone running the MeshCore app connects and interacts normally. Since radio_init() halts the firmware before BLE starts on failure, this confirms the LR2021 initializes with the TCXO/IRQ config in this PR.
  • Messaging is fully functional: texts send and deliver to other MeshCore nodes over the air, with delivery ACKs received back. TX and RX both confirmed on the LR2021.
  • GPS is fully functional: enabling the gps sensor setting powers the Airoha receiver, the node gets a fix, and location populates in the companion app.
  • Battery verified: a fully-charged reading of 4.30 V matches the X1's high-voltage cell (~4.3 V full), confirming the 2.0x ADC divider.

All functional areas are now verified on real hardware: boot/USB, BLE companion with the app, over-the-air TX/RX, GPS, and battery sensing.

@gjelsoe

gjelsoe commented Aug 4, 2026

Copy link
Copy Markdown

Should be merged into dev branch not main.

@Hacuchino-hash
Hacuchino-hash changed the base branch from main to dev August 4, 2026 20:57
@Hacuchino-hash

Hacuchino-hash commented Aug 4, 2026

Copy link
Copy Markdown
Author

Retargeted to dev and rebased. Also adapted to the newer wrapper API on dev (bool return on setRxBoostedGainMode) and the companion UI changes (NullDisplayDriver.cpp, ENABLE_USB_INTERFACE). All four envs build clean against dev.

@ripplebiz

Copy link
Copy Markdown
Member

Thanks for this. We've had an LR2021 wrapper in development for some time now, and have just merged. So, if you can update your PR, I'll get this one merged.

@Hacuchino-hash

Copy link
Copy Markdown
Author

Updated. Dropped my wrapper in favour of the merged one and switched the variant over to std_init(), with LR2021_IRQ_DIO=8 and LR2021_TCXO_VOLTAGE=1.6f. All four envs build clean against current dev.

@ripplebiz
ripplebiz merged commit f4ec1d4 into meshcore-dev:dev Aug 6, 2026
15 checks passed
hermes-gadget added a commit to gadgethd/MeshCore-MQTT that referenced this pull request Aug 6, 2026
Upstream dev: 84e3a67..f4ec1d4 (2 commits)
- Add support for Seeed SenseCAP MeshTracker X1 (LR2021) (meshcore-dev#3112)

Clean auto-merge (no conflicts). MQTT additions preserved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants