LoRa tracker with KISS TNC capability
Go to file
Thomas Osterried e50a214c38 fixes and improvements
  - cleaner check for occurences of TCPIP or TCPXX in path
    when gating rf-to-aprsis or kiss-to-aprsis.
    Changed decision for received third-party-encoded packets:
      potential gating of third-paty-packets that were not on the internet
      before is now possible, because send_to_aprsis() is now capable
      to re-encode them properly.
  - if beacon was triggered via tnc cli, then the display said
    "((WEB TX))". -> fixed.
  - is_call_blacklisted(): moved empty-list-check beyond the ssid check
  - beauty fixes and string assurances

  - fix for gating packets with TCPIP in path from aprsis. TCPIP is allowed,
    TCPXX, NOGATE and RFONLY is not.
  - cleaner check for occurences of TCPIP in path when preparing
    to gate as third-party-traffic to aprsis.
  - also check for NOGATE, RFONLY, TCPXX, TCPIP in the path of the
    third-party header when gating rf to aprsis.
    Third-party-packets (from other networks than tcpip) can now be sent
    unencoded, according to the aprsis spec.
  - when uploading firmware
    - acquire sema lock against loraSend() ->
      lora chip could safely be powered down.
    - workaround to circumvent crash on interrupt handler isr0():
  - re-enable logging when we restart the device do to aprsis-connection-errors
  - check sender with call is_call_blacklisted() when gating aprsis to rf,
    like we did this already for that what we hear on rf (for digipeating,
    or sending to aprsis)
  - from aprisis (according to the APRS spec): packets from invalid calls are
    not sent on rf; now: also not to TNC.
  - from aprsis: disable general station queries (':?'))

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2023-09-23 12:38:36 +02:00
.github/workflows Minor changes 2022-03-07 21:06:05 +01:00
data Texting new wifi AP array. 2022-12-15 09:16:37 +01:00
data_embed features: exernal gps, usbserial nmea. changed: aprsis-connect wait time 2023-08-24 19:55:01 +02:00
img Create H49c4700b02604cf9a3b9f5f1e91c9e33u.webp 2021-03-15 00:19:40 +01:00
include Fixes and improvements: 2023-06-15 20:42:49 +02:00
lib Major improvements and smaller bugfixes 2022-08-07 20:01:24 +02:00
pdf Heltec-WiFi-KIT32 & Heltec-WiFi-KIT32_V2 2021-03-21 17:18:14 +01:00
src fixes and improvements 2023-09-23 12:38:36 +02:00
tools Include git hash in version 2021-04-20 17:25:22 +02:00
.gitignore Adds Smart Beaconing settings 2021-07-11 11:54:11 +02:00
.travis.yml LoRa APRS Tracker 2018-11-25 21:07:34 +01:00
INSTALL.md next typo fix 2022-10-02 16:32:12 +02:00
README.md Get self telemetry path working. 2021-09-19 15:50:35 -05:00
partitions.csv Upgrade firmware from web interface 2021-03-01 14:47:34 +01:00
platformio.ini Now with axp1201 support (T-BEAM V1.2) 2023-07-15 12:04:47 +02:00


LoRa tracker with KISS TNC capability

Tracker can be used on its own. You can also connect it via blueetooth with APRSdroid. After connection with APRX based DIGI it can be used as KISS-TNC



  • Initial work: OE1ACM, OE3CJB
  • Redesigned: SQ9MDD
  • KISS TNC Over Serial or Bluetooth: SQ5RWU
  • Lora32 board support: DJ1AN
  • Self-telemetry improvement: KB1GIM

Supported boards

  • TTGO T-beam v.0.7
  • TTGO T-beam v.1.0
  • Lora32 board

User key functions:

short press (OLED Enabled):

  • if OLED is OFF a short press will wake it up and show current data (as "Display Timeout" seconds)
  • if OLED is ON with GPS-FIX immediate sending of a frame with the position from the GPS
  • if OLED is ON without GPS-FIX, immediate sending of the frame with the position saved in the configuration

short press (OLED Disabled):

  • with a valid GPS-FIX immediate sending of a frame with the position from the GPS
  • without valid GPS-FIX, immediate sending of the frame with the position saved in the configuration

long press while booting

  • reset to factory default

long press: toggle on or off GPS power supply

  • if the "FIXED_BEACON_EN" option is enabled in the configuration, a beacon will be sent every set time interval

Oled screens information

  • ((TX)) - position frame sent automatically
  • ((RX)) - informs about the received frame
  • ((GPSOFF)) - GPS power-off information
  • ((GPS ON)) - GPS power-on information
  • ((MAN TX)) - information about sending a manually initialized GPS position frame
  • ((FIX TX)) - information about the forced manual sending of a frame with the position saved in the configuration when GPS is off or no fix
  • ((AUT TX)) - information about sending automatic positioning frame when GPS is turned off
  • ((KISSTX)) - information about sending the frame sent by KISS
  • ((WEB TX)) - sending frame as requested via HTTP
  • ((TEL TX)) - information about sending telemetry

How to binary first flash readme... (thanx SP6VWX)

  • Download the appropriate binary file for your board from: https://github.com/SQ9MDD/TTGO-T-Beam-LoRa-APRS/releases
  • Download current version of the esphome-flasher tool: https://github.com/esphome/esphome-flasher/releases
  • Connect your board to your USB port and open ESPHome Flasher.
  • If your board is not showing under Serial Port then you likely need to install the drivers for the CP210X serial chip. In Windows you can check by searching “Device Manager” and ensuring the device is shown under “Ports”.
  • In ESPHome Flasher, refresh the serial ports and select your board's serial port.
  • Browse to the downloaded firmware and select the correct firmware based on the board type.
  • Select/Press Flash ESP.
  • Once complete, “Done! Flashing is complete!” will be shown.
  • any subsequent updates can be done via WWW

Installing from source (only for advanced users)

  • Clone Git repo to any folder of your PC
  • Download and install "Visual Studio Code"
  • Open "Visual Studio Code" and add "PlatformIO" plugin
  • Open "PlatformIO" and click on "Import Arduino Project"
  • In the top part of the window choose youy board then browse to cloned repo and click "import"
  • In the left column click on the ANT-shaped icon, choose your board and click on "Upload". COM port should be detected automatically Wait for procedure to finish and keep reading

Configuring parameters

Wait for the board to reboot, connect to "N0CALL AP" WiFi network, password is: xxxxxxxxxx (10 times "x") and point your browser to "" (http, not https). Hover your mouse to textboxes to get useful hints.

WiFi Settings

you can scan for local SSID or manually type in name and password

  • Scan WiFi: scan for local WiFi networks
  • SSID: name of the AP to connect to
  • Password: password of WiFi AP
  • AUTO AP Password: if configured network is not reachable the AP mode will be enabled, SSID will be your callsign and this will be the password

APRS Settings

These are main APRS settings such as callsign, SSID and symbol (refer to: http://www.aprs.org/symbols.html). Please remember to turn ON GPS in order to use it as a tracker.

  • Frequency: frequency of receive and transmit
  • Speed: speed of the LoRa APRS packet (default: 300)
  • Callsign and SSID: Callsign of the tracker (e.g: N0CALL-10)
  • Relay PATH: destination path of APRS packet
  • Symbol table & Symbol: custom APRS icon
  • Show altitude: allow altitude to be reported
  • Show comment: includes comment in APRS packet
  • Comment: custom message to send
  • Show Battery: includes current battery voltage
  • Fixed beacon: enables static beacon transmission
  • Fixed beacon interval: beacon interval in seconds (please more than 30 minutes to avoid overflow on the network)
  • Latitude & Longitude: fixed beacon position to transmit (in APRS format)
  • Min interval: packet are transmitted not less than x second apart
  • Max interval: maximum interval between packages
  • Speed and course: variables to calculate smart beaconing
  • GPS enabled: enables power to GPS module

Device Settings

These are main device settings, hover the mouse on the checkboxes and explainations will appear.

  • OLED Display enabled: Enables OLED functionalities
  • Bluetooth enabled: Enables bluetooth functions (such as TNC via APRSDROID)
  • LED Signaling: not yet implemented
  • Auto Power OFF: activate auto power off when USB is unplugged (only for TBEAM 1.0 or later)
  • Auto Power OFF delay: timer to turn off board after USB is unplugged (only if enabled)
  • Display show RX Time: when a packet is received display the packet is shown for X seconds
  • Display Timeout: display will turn OFF after X seconds for better power save (0 to disable and keep OLED ON)


Here is the list of recently received stations with some details


Some shortcuts to useful functions such as manually send beacon


This box allows firmware to be uploaded via OTA

Default WiFi Password:

  • Default WiFi Password is: xxxxxxxxxx
  • that is, 10 times x