As of today,June 11th 2022, Demo Code from https://www.waveshare.com/wiki/Pico-LoRa-SX1262-868M for this HAT did not work for me.
I spent 6 weeks sending emails back and forth and all they could do was tell me my keys didn't work (even though I told them they worked on a Pico-RFM95W setup).
Anyway, the problem was traced to the file src/lorawan.c and some code, using sscanf("%2hhx"), which corrupted the keys. I replaced calls to that with a simple method to convert the ascii hex keys to a byte array and the board now talks to TTN
NOTE: Sandeep Mistry has updated his code in src/board/rp2040/spi-board.c - that change is included here.
What follows is Waveshare's original readme.
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.
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!