BNNorman / Waveshare-Pico-LoRa-SX1262-868M

Working code for the Waveshare PICO HAT
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link

NOTE:

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.

pico-lorawan

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.

Hardware

Default Pinout

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.

Examples

See examples folder.

There is a config.h file to your ABP or OTAA node configuration for each example.

Cloning

git clone --recurse-submodules https://github.com/sandeepmistry/pico-lorawan.git 

Building

  1. Set up the Pico C/C++ SDK
  2. Set PICO_SDK_PATH
    export PICO_SDK_PATH=/path/to/pico-sdk
  3. Create build dir, run cmake and make:
    mkdir build
    cd build
    cmake .. -DPICO_BOARD=pico
    make
  4. Copy example .uf2 to Pico when in BOOT mode.

Acknowledgements

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!