# lora_aprs_node_pico
A LoRa APRS KISS modem with PE1RXF telemetry support for use as a remote data logger and/or remote I/O controller. See my website for more information: [https://www.meezenest.nl/mees-elektronica/RPi-pico-LoRa-APRS.html](https://www.meezenest.nl/mees-elektronica/RPi-pico-LoRa-APRS.html). It is an evolution of another project of mine: [https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html](https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html)

Software v1.0.5 (tagged) is suitable for I/O controller without I2C sensors and without telemetry

Software v1.1.0 is suitable for I/O controller with additional support for I2C sensors and PE1RF telemetry. If no I2C is found it will try to continue without telemetry. But that function is experimental.

This program is written for the RP2040 C++ SDK.

(C)2023 M.T. Konstapel https://meezenest.nl/mees

Licensed under GPL V3

## Supported Hardware
 * RP2040 boards
    * Raspberry Pi Pico
 * Semtech SX1276/77/78/79 based LoRa boards

### Default Pinout

| Raspberry Pi Pico | Semtech SX1278 |
| ----------------- | -------------- |
| 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 |

Default pinout can be overrided with the setPins() function

## Installation

1. Download this repo
2. Set `PICO_SDK_PATH` to included pico-sdk
```sh
export PICO_SDK_PATH="path to pico-sdk"
```
3. Create `build` directory then run `cmake` and `make`:
```sh
mkdir build
cd build
cmake ..
make
```
## Notes
I added the pico-sdk to prevent compatibility issues. Probably not a recommended practice, but there you go!

## References
This project is based on the works of [akshayabali](https://github.com/akshayabali/LoRa-RP2040) which is based on the LoRa Library for Arduino:[sandeepmistry/arduino-LoRa](https://github.com/sandeepmistry/arduino-LoRa)
