robojay / KISSLoRaTNC

Arduino based LoRa KISS TNC

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KISSLoRaTNC

GPLv3 License Build Status

GitHub issues GitHub forks GitHub stars GitHub last commit

Arduino based LoRa KISS TNC

Currently, build is failing for MoteinoMEGA boards due to an out-of-date pin definition in platformio. See issue #199 in platform/atmelavr

To fix locally, go to ~/.platformio/packages/framework-arduino-avr/variants/moteinomega/pins_arduino.h

Add in this line at line #72:

#define digitalPinToInterrupt(p) ((p) == 10? 0: (p) == 11? 1: (p) == 2? 2: NOT_AN_INTERRUPT)

Uncomment the last block in platformio.ini and then build again.


KISSLoRaTNC is a work derived from code written by Sandeep Mistry and Mark Qvist

This code was developed using VSCode and Platformio.

KISSLoRaTNC is developed for the:

The Config.h file contains the pinouts for the different Arduino-based boards. These pinouts are specific to the microcontroller board and LoRa device pairings in the list above. If you decide to use a different pairing, please adjust Config.h accordingly. Also, please remember that the power output should also be adjusted, as the RFM96W has a max Tx Power value of 20dBm. The HamShield: LoRa Edition 440MHz can be set to 30dBm (1 watt).

"Default" settings are:

  • Frequency: 434.450 MHz
  • Spreading Factor: 8
  • Coding Rate: 7
  • Signal Bandwidth: 125 kHz
  • Tx Power: 20 (can be set to 30 for HamShield)
  • Serial: 38400, 8N1

Basically, after checking the Config.h file for correctness, build and upload to your Arduino-based board.

The KISS SetHardware (0x06) command supports the follow options:

Option Data Description
0x22 uint8_t LoRa Spreading Factor (6 - 12)
0x23 uint8_t LoRa Coding Rate (5 - 8)
0x24 uint32_t LoRa Bandwidth (MSB first)
0x25 uint8_t Transmit Power (0 - 20 dBm)
0x26 uint32_t Frequency (MSB first)
0x27 none Save hardware parameters in EEPROM
0x28 none Restore hardware parameters from EEPROM

The following examples show what the KISS packet would be (in hex bytes):

To set a Spreading Factor of 12: 0xC0 0x06 0x22 0x0C 0xC0

To set a frequency of 433.775 MHz: 0xC0 0x06 0x25 0x19 0xDA 0xE1 0x98 0xC0

To save hardware parameters in EEPROM: 0xC0 0x06 0x27 0xC0

Note: Follow proper KISS byte escaping if FEND (0xC0) or FESC (0xDB) appear in the data

For details on the KISS protocol, please refer to The KISS TNC: A simple Host-to-TNC communications protocol

Useful applications:

About

Arduino based LoRa KISS TNC

License:GNU General Public License v3.0


Languages

Language:C++ 88.3%Language:C 11.7%