Giter Club home page Giter Club logo

kissloratnc's Introduction

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 (PC to TNC):

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

Preceding each received frame, the SNR and RSSI of the received frame is sent from the TNC to the PC using a KISS SetHardware (0x06) command:

Option Data Description
0x21 int8_t SNR (dB)
int16_t RSSI (dBm, MSB first)

For example, for SNR of 10 dB and an RSSI of -45 dBm the packet would be (in hex bytes): 0xC0 0x06 0x21 0x0A 0xFF 0xD3 0xC0

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

Useful applications:

kissloratnc's People

Contributors

kc1awv avatar robojay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kissloratnc's Issues

Standalone TNC + GPS + Bluetooth (For APRSdroid use)

Interested in this project. Just have a couple questions I am trying to figure out answers too.

Could I build a full stand alone APRS tnc devices with radio and gps using Arduino Uno + HamShield: LoRa Edition 144mhz + ublox neo-6m gps? I havent seen any mentioned about the gps use.

The other question I have is I see this project can interface will APRSdroid but is this via usb-otg OR can we add bluetooth module HC-05/HC-06 to Arduino Uno and use APRSdroid?

Compatibility with Adafruit Feather M0 or 32u4?

Hello Steve,

Was incredibly excited when I saw this repo -- I'm working on a project that involves LoRa. Do you know if this code will work on either the Adafruit 32u4 LoRa 900Mhz feather or ideally the M0 version? Pretty sure the 32u4 will work as I think that's an existing target for you (although not in the feather form-factor) but the M0 would be wonderful as it's a little bit more beefy and capable. I don't have either version on hand -- was looking for something just like KISSLoRaTNC before I pulled the trigger, but if there's a good possibility it'll work I'll get my hands on them. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.