Wio Tracker L1
Overview
The Seeed Studio Wio Tracker L1 is a LoRa + GNSS tracker based on a Nordic Semiconductor nRF52840. The board is sold as a Meshtastic node, with optional variants (notably the L1 Pro) that bundle the same signal board with an enclosure and an integrated battery.
For more information, see the Wio Tracker L1 product page [1] and the Wio Tracker L1 wiki [2].
Hardware
The Wio Tracker L1 signal board carries:
Nordic Semiconductor nRF52840 (ARM Cortex-M4F, 1 MB flash / 256 kB RAM, Bluetooth 5 and IEEE 802.15.4 transceiver, native USB 2.0 full-speed).
Semtech SX1262 LoRa modem (862-930 MHz) with TCXO (DIO3, 1.8 V) and an RF switch driven by DIO2 plus a separate LNA-enable line on P1.08.
Quectel L76K GNSS receiver (GPS / BeiDou) on UART0 at 9600 baud.
16 Mbit Puya P25Q16H QSPI flash.
1.3” SH1106 OLED on the primary I2C bus.
External Grove I2C connector on TWIM1.
One user LED, one user button, a buzzer (PWM), a 5-way trackball and a battery voltage divider gated by a control GPIO.
USB Type-C connector wired to the nRF52840 native USB peripheral.
Connections and IOs
Pin |
Direction |
Function |
Usage |
|---|---|---|---|
P1.01 |
OUT |
GPIO |
User LED (active high) |
P0.08 |
IN |
GPIO |
User Button (active low) |
P0.30 |
OUT |
SPIM3 SCK |
SX1262 LoRa SCK |
P0.03 |
IN |
SPIM3 MISO |
SX1262 LoRa MISO |
P0.28 |
OUT |
SPIM3 MOSI |
SX1262 LoRa MOSI |
P1.14 |
OUT |
GPIO |
SX1262 NSS (chip select) |
P0.07 |
IN |
GPIO |
SX1262 DIO1 (IRQ) |
P1.10 |
IN |
GPIO |
SX1262 BUSY |
P1.07 |
OUT |
GPIO |
SX1262 RESET (active low) |
P1.08 |
OUT |
GPIO |
SX1262 RX-enable |
P0.27 |
OUT |
UART0 TX |
L76K GNSS RX |
P0.26 |
IN |
UART0 RX |
L76K GNSS TX |
P0.05 |
OUT |
TWIM0 SCL |
SH1106 OLED I2C |
P0.06 |
I/O |
TWIM0 SDA |
SH1106 OLED I2C |
P1.11 |
I/O |
TWIM1 SDA |
Grove I2C SDA |
P1.12 |
OUT |
TWIM1 SCL |
Grove I2C SCL |
P1.04 |
IN |
GPIO |
Trackball Up |
P0.12 |
IN |
GPIO |
Trackball Down |
P0.11 |
IN |
GPIO |
Trackball Left |
P1.03 |
IN |
GPIO |
Trackball Right |
P1.05 |
IN |
GPIO |
Trackball Press |
P0.04 |
OUT |
GPIO |
Battery divider enable |
P0.31 |
AIN7 |
ADC |
Battery voltage sense |
P0.21 |
OUT |
QSPI SCK |
Puya P25Q16H flash |
P0.20 |
I/O |
QSPI IO0 |
Puya P25Q16H flash |
P0.24 |
I/O |
QSPI IO1 |
Puya P25Q16H flash |
P0.22 |
I/O |
QSPI IO2 |
Puya P25Q16H flash |
P0.23 |
I/O |
QSPI IO3 |
Puya P25Q16H flash |
P0.25 |
OUT |
QSPI CSn |
Puya P25Q16H flash |
Supported Features
The wio_tracker_l1 board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
wio_tracker_l1/nrf52840 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
ADC |
on-chip |
Nordic Semiconductor nRF family SAADC node1 |
|
ARM architecture |
on-chip |
Nordic UICR (User Information Configuration Registers)1 |
|
on-chip |
Nordic EGU (Event Generator Unit)6 |
||
on-chip |
Nordic nRF family ACL (Access Control List)1 |
||
on-chip |
Nordic nRF family MWU (Memory Watch Unit)1 |
||
Audio |
on-chip |
Nordic PDM (Pulse Density Modulation interface)1 |
|
Clock control |
on-chip |
Nordic nRF clock control node1 |
|
on-chip |
Nordic nRF high-frequency crystal oscillator (nRF52 series)1 |
||
Comparator |
on-chip |
Nordic nRF COMP (analog COMParator)1 |
|
Counter |
on-chip |
Nordic nRF timer node5 |
|
Cryptographic accelerator |
on-chip |
Nordic ECB (AES electronic codebook mode encryption)1 |
|
on-chip |
Nordic nRF family CCM (AES CCM mode encryption)1 |
||
on-chip |
ARM TrustZone CryptoCell 3101 |
||
Debug |
on-chip |
ARMv7 instrumentation trace macrocell1 |
|
Display |
on-board |
SH1106 132x64 dot-matrix display controller on I2C bus1 |
|
Flash controller |
on-chip |
Nordic NVMC (Non-Volatile Memory Controller)1 |
|
on-chip |
Properties defining the interface for the Nordic QSPI peripheral1 |
||
GNSS |
on-board |
Generic GNSS NMEA receiver1 |
|
GPIO & Headers |
on-chip |
NRF5 GPIOTE1 |
|
on-chip |
NRF5 GPIO2 |
||
I2C |
on-chip |
Nordic nRF family TWIM (TWI master with EasyDMA)2 |
|
I2S |
on-chip |
Nordic I2S (Inter-IC sound interface)1 |
|
IEEE 802.15.4 |
on-chip |
Nordic nRF IEEE 802.15.4 node1 |
|
IIO |
on-board |
Voltage Divider1 |
|
Input |
on-board |
Group of GPIO-bound input keys2 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
LoRa |
on-board |
Semtech SX1262 LoRa Modem1 |
|
Miscellaneous |
on-chip |
Nordic FICR (Factory Information Configuration Registers)1 |
|
on-chip |
Nordic nRF family PPI (Programmable Peripheral Interconnect)1 |
||
MTD |
on-chip |
Flash node1 |
|
on-chip |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
on-board |
QSPI NOR flash supporting the JEDEC CFI interface1 |
||
Networking |
on-chip |
Nordic nRF family RADIO peripheral1 |
|
on-chip |
Nordic nRF family NFCT (Near Field Communication Tag)1 |
||
Pin control |
on-chip |
Nordic nRF family Pin Controller1 |
|
Power management |
on-chip |
Nordic nRF power control node1 |
|
PWM |
on-chip |
nRF PWM4 |
|
on-chip |
nRFx S/W PWM1 |
||
Regulator |
on-chip |
Nordic nRF5X regulator (fixed stage of the core supply)1 |
|
on-chip |
Nordic nRF52X regulator (high voltage stage of the main supply)1 |
||
Retained memory |
on-chip |
Nordic GPREGRET (General Purpose Register Retention) device2 |
|
RNG |
on-chip |
Nordic nRF family RNG (Random Number Generator)1 |
|
RTC |
on-chip |
Nordic nRF RTC (Real-Time Counter)3 |
|
Sensors |
on-chip |
Nordic nRF family TEMP node1 |
|
on-chip |
Nordic nRF quadrature decoder (QDEC) node1 |
||
Serial controller |
on-chip |
||
SPI |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
USB |
on-chip |
Nordic nRF52 USB device controller1 |
|
Watchdog |
on-chip |
Nordic nRF family WDT (Watchdog Timer)1 |
Programming and Debugging
The wio_tracker_l1 board supports the runners and associated west commands listed below.
| flash | debug | rtt | debugserver | attach | reset | |
|---|---|---|---|---|---|---|
| jlink | ✅ | ✅ (default) | ✅ | ✅ | ✅ | ✅ |
| openocd | ✅ | ✅ | ✅ | ✅ | ✅ | |
| pyocd | ✅ | ✅ | ✅ | ✅ | ✅ | |
| uf2 | ✅ (default) |
The Wio Tracker L1 ships with a pre-installed Adafruit nRF52 bootloader that exposes a UF2 USB Mass
Storage interface when the user double-taps the RST button. The volume identifies itself as
Seeed TRACKER L1 with Board-ID TRACKER L1 (see INFO_UF2.TXT on the mounted volume). The
default Zephyr workflow relies on this bootloader, so no external SWD probe is required for
day-to-day development.
Warning
The bootloader lives in the top 48 kB of flash and is what makes the USB-only flashing flow
possible. Erasing it (for example via an external SWD probe and nrfjprog --eraseall) is a
one-way trip without that probe: USB recovery will no longer work and the bootloader UF2 must be
re-flashed through the SWD pads on the rear of the board.
Flashing
Build the application; the build system produces
build/zephyr/zephyr.uf2becauseCONFIG_BUILD_OUTPUT_UF2is enabled by default for this board.Double-tap the RST button. The board re-enumerates as a USB MSC volume titled
WTL1BOOT(or similar, depending on the bootloader revision).Run
west flash. The uf2 runner copieszephyr.uf2onto the mounted volume; the bootloader writes the image and resets into the application.
Alternatively, drag and drop zephyr.uf2 onto the volume manually.
board.cmake already passes --board-id="TRACKER L1" so that the runner picks the Wio Tracker
L1 when multiple UF2-capable devices are mounted at once. Should the bootloader ever be rebuilt
with a different Board-ID, override the default on the command line:
west flash --runner uf2 --board-id "<Board-ID from INFO_UF2.TXT>"
Building and flashing the Blinky sample is the recommended smoke test:
# From the root of the zephyr repository
west build -b wio_tracker_l1 samples/basic/blinky
west flash