Enable LoRaWAN communications on your Raspberry Pi Pico or any RP2040 based board using a Semtech SX1276 radio module.
Based on the Semtech's LoRaWAN end-device stack implementation and example projects.
- RP2040 board
- Semtech SX1276 board
Raspberry Pi Pico / RP2040 | Semtech SX1276 |
---|---|
3.3V | VCC |
GND | GND |
GPIO 18 | SCK |
GPIO 19 | MOSI |
GPIO 16 | MISO |
GPIO 7 | DIO0 / G0 |
GPIO 8 | NSS / CS |
GPIO 9 | RESET |
GPIO 10 | DIO1 / G1 |
GPIO pins are configurable in examples or API.
See examples folder.
There is a config.h
file to your ABP or OTAA node configuration for each example.
git clone --recurse-submodules https://github.com/sandeepmistry/pico-lorawan.git
- Set up the Pico C/C++ SDK
- Set
PICO_SDK_PATH
export PICO_SDK_PATH=/path/to/pico-sdk
- Create
build
dir, runcmake
andmake
:
mkdir build
cd build
cmake .. -DPICO_BOARD=pico
make
- Copy example
.uf2
to Pico when in BOOT mode.
This library uses the last page of flash as non-volatile memory (NVM) storage.
You can erase it using the erase_nvm
example, when:
- Changing the devices configuration
- If your board is timing out with joining the network
A big thanks to Alasdair Allan for his initial testing of EU868 support!
This project was created on behalf of the Arm Software Developers team, follow them on Twitter: @ArmSoftwareDev and YouTube: Arm Software Developers for more resources!