/Lora-TTNMapper-T-Beam

TTNMapper on the TTGO T-Beam

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Intro

This is a simple sketch demonstrating the capability of the TTGO T-Beam as a TTN Mapper Node on The Things Network LoraWAN.

This repo contains a patched SSD1306 library from smartnick, enabling individual I²C pins and to set I²C Clock to 800kHz.

History

Other Forks

Some of these other forks are not integrated into this repository, but may be useful for you.

Sample Images

Start screenGPS fix screenStatus screen

Software dependencies

Arduino IDE ESP32 extension

TinyGPS++

LMIC-Arduino : Make sure to get the last version - 1.5.0+arduino-2 currently - because the arduino IDE library updater is getting confused by the versioning scheme of that library.

AXP202X Library is needed for V08 and up.

Instructions

You can program the T-Beam using the Arduino ESP32 board 't-beam'.

It is suitable for t-beam HW-Version up to V07 (use folder "uptoV07") and higher versions with Soft-Power-Button (use folder "fromV08").

On The Things Network side, the settings needed are available here.

Configure the Payload decoder with:

function Decoder(bytes, port) {
    var decoded = {};

    decoded.latitude = ((bytes[0]<<16)>>>0) + ((bytes[1]<<8)>>>0) + bytes[2];
    decoded.latitude = (decoded.latitude / 16777215.0 * 180) - 90;
  
    decoded.longitude = ((bytes[3]<<16)>>>0) + ((bytes[4]<<8)>>>0) + bytes[5];
    decoded.longitude = (decoded.longitude / 16777215.0 * 360) - 180;
  
    var altValue = ((bytes[6]<<8)>>>0) + bytes[7];
    var sign = bytes[6] & (1 << 7);
    if(sign)
    {
        decoded.altitude = 0xFFFF0000 | altValue;
    }
    else
    {
        decoded.altitude = altValue;
    }
  
    decoded.hdop = bytes[8] / 10.0;

    return decoded;
}