APRS Sender mit LoRa Modul und GPS (Platinen Version 1):


Hardware: Heltec Lora SX1278 433 ESP32 0.96" Oled, Lora Chip onboard

siehe

https://www.aliexpress.com/item/SX1278-LoRa-ESP32-0-96-inch-Blue-OLED-Display-Bluetooth-WIFI-Lora-Kit-32-Module-Internet/32822676113.html?spm=a2g0s.9042311.0.0.7mvWcq

GPS: BN-180 NEO M8N
siehe

https://de.aliexpress.com/item/small-size-GPS-Module-GPS-GLONASS-Dual-NEO-M8N-Solution-GNSS-module-GPS-Module-UART-TTL/32796866720.html?spm=a2g0s.9042311.0.0.7mvWcq

Eventuell wird noch benötigt:


- 3.3V LiPo Akku
- Lade-Modul (TP4056 - Micro USB 5V 1A Lithium Battery Charger with Protection)+
- Schalter


Das Heltec LoRa Board hat zwar eine Lade-Schaltung, lädt aber nur mit ca 100 mA.


Firmware:

Derzeitige Version FW 0.9.8. Updates werden als Binärfile zur Verfügung gestellt und werden über das Flash-Tool geladen (Flash Download Tools (ESP8266 & ESP32) )

siehe https://www.espressif.com/en/support/download/other-tools?keys=&field_type_tid%5B%5D=13

Beschreibung Firmware:

FW Version 0.9.8 ist bereits am Modul vorinstalliert. Nach Zusammenbau und Endkontrolle (bitte Antenne nicht vergessen!) wird das Modul per USB oder einen LiPo ( 3.3 -4.2V) mit Strom versorgt und bootet hoch.
Welcome Screen und Anzeige der FW-Version 0.9.8

Bild 1 Bootet hoch...

Es erscheint kurz die Meldung „Sats0 no fix“, die dann wechselt, wenn der GPS-Empfänger erkannt
wurde.

 

In der obersten Zeile werden angezeigt:


Anzahl der gesehenen Satelliten, 1-für GPS erkannt, Zeit vom GPS Empfänger in UTC und
Batteriespannung (Akku).

Links unten: Feature Bits (momentane Einstellungen) – siehe …
Default Einstellungen sind derzeit noch aktiv …

Bild 3 Settings

Der Tracker sollte jetzt konfiguriert und personalisiert werden.


LED Status im Betrieb nach Konfig:
     Rot    TX
     Gelb  blinkend – suche nach GPS Fix / aus wenn Fix vorhanden
     Grün RX – RX-Daten werden vom Lora Modul gelesen


Einstellungen/Setup:

Es stehen leider nur drei Tasten für die Eingabe zur Verfügung. Die Zusammenliegenden Tasten bewegen den Cursor vor und zurück, die etwas abgesetzte Taste entspricht ‚Enter‘ oder ‚Menue‘ bzw zur Umschaltung zwischen Cursor-Bewegung und Buchstaben/Zahleneingabe.
Um die Parameter / Konfig anzupassen, gehen wir mit <Enter> (abgesetzte Taste) ins ‘Main Menue‘ und von dort scrollen wir zu Setup/Config mit Cursor Tasten und drücken wieder <Enter>.

Call-ID:

 

Call ID

<ENTER>
Wir können jetzt unser Call eingeben. Wir befinden uns im Buchstaben-Eingabemodus (letzte Zeile: A-Z)

Call ID Eingabe

Mit <Enter> kann auf Cursor-Positionierung umgeschaltet werden. – Es erscheint dann in der
letztenZeile ( <-  -> ) und der Cursor kann mit den beiden C-Tasten bewegt werden.

<Enter> schaltet dann wieder in den Buchstaben-Modus (A-Z) um und die Zeichen können editiert
werden. Wenn fertig, einfach mit Cursor-Tasten nach links oder rechts rausfahren. Es erscheint dann die Bestätigung ….

So wie das Call & ID können auch andere Parameter editiert werden:

- APRS Symbol (def ? )
- Symbol Table ( def \ alternate Symbol Table )
- Comment
- TX Power ( def 5 dBmW - kann auf 18 dbmW geändert werden )
- TX Frequency ( fix zugeteilt, nicht änderbar 433.775 )
- RX Frequency ( fix zugeteilt, nicht änderbar 433.900 für späteren Message txfer vom GW)
- TX Interval (def 60 Sec – kann bis auf 600 Sec geändert werden )


Nach den persönlichen Einstellungen sollten auch HW-Features des Trackers eingestellt werden.

Dies geschieht über ‚Main Menu‘ -> HW Features:

 

<Enter>

Hardware Features

Über dieses Menü wird die Bitmap der aktiven HW-Features gesetzt.
Diese sind:

#define   TRACKING_ON     0x1 // Tracking Modus aktivieren
#define   DEEP_SLEEP        
0x2 // Deep Sleep Mode aktivieren
#define   GPS_ON               
0x4 // GPS on
#define   LISTEN_GW_QRG 0x8 // RX auf GW QRG (noch nicht verwendet)
#define   MIC_E                   
0x10 // Mic-E (compressed) APRS daten
#define   ALTI                       0x20 // sende Altitude in APRS Daten
#define   BATTV                   0x40 // sende BatteryVoltage in APRS
#define   COMMENT           0x80 // sende Kommentar in APRS
#define   GPS_USB              0x100 // Umleitung GPS daten auf USB (diagnostic)
#define   KISS_USB              0x200 // KISS Mode auf BlueTooth (noch nicht aktiv)
#define   BT_ON                  0x1000 // Bluetooth interface turned on (RX/TX Ausgabe über BT classic)

Die Bitmap wird in den meisten Anzeigen in der unteren Statuszeile ( 0x…. ) angezeigt.
Für normalen Tracker-Betrieb sollten Tracking, GPSon, DeepSleep und MIC_E über das HW Features
Menue gesetzt sein. In der Statuszeile erscheint dann (
0x17 ) - ( 0x1 + 0x2 + 0x4 + 0x10 = 0x17 )
Es können BattVolts und Alti noch enabled werden, der Comment sollte jedoch nicht aktiv sein, da sich
die Aussendungszeit dadurch nur unnötig verlängert und die Empfangswahrscheinlichkeit sinkt. (CRC
über gesamtes Paket).


Geschätzter Stromverbrauch:

     * DeepSleep Mode: ca. 10-20mA
     * Normalbetrieb (Menue): ca 100 – 140 mA ( Display + GPS + ESP32 )
     * BlueTooth aktiviert: ca 220 mA (!!) BT leider Stromfresser!


DeepSleep Mode - dieser Mode sollte aktiv sein um den Stromverbrauch wesentlich zu senken bzw. die Akkulaufzeit zu erhöhen!

Bei aktivem DeepSleep Mode wird nach ca. 10Min ohne Tastendruck der GPS Empfänger in einen
Ruhe-Modus gefahren und die Hauptprozessoren am ESP32 Chip in einem Sleep-Mode geschickt und über einen Timer am RTC oder durch Drücken der <Enter> Taste wieder aufgeweckt.

Der Stromverbrauch sinkt dadurch von ca 140 mA ( GPS+Display+ESP32 im Normalbetrieb – ohne
Bluetooth) auf ca 10-20mA.

Wird der Tracker über den Timer aufgeweckt, wird das EEPROM gelesen, die Konfig aktiviert und das
GPS gestartet. Es wird dann ca 30 sec auf einen GPS Fix gewartet. Erscheint der Fix, wird ein APRS Paket mit eingestellter TX Leistung abgesetzt und der DeepSleep Mode wieder mit eingestelltem TX-Intervall aktiviert. Erscheint GPS Fix nicht rechtzeitig, wird angenommen, dass kein GPS-Empfang möglich ist ( i.e. Tracker im Haus). In diesem Fall wird eine Diagnostic-Message ‚No GPS-Fix‘ mit kleinster Leistung ausgesendet und das Sleep-Intervall erhöht bis beim nächsten Aufwachen wieder ein Fix empfangen wird, – was den SleepFactor wieder zurücksetzt.


Ein Tastendruck auf <Enter> weckt den Tracker zur Bedienung wieder auf ( ‚Wakeup by KEY‘ ).


Wenn alle Konfigurations-Parameter eingestellt sind, bitte die Config im EEProm abspeichern, um die Parameter permanent zu sichern. Diese werden dann bei Neustart / PowerOFF/ON oder nach dem
Wakeup aus dem DeepSleep aus dem EEPROM geladen.


Btw: es gibt im Setup/Config Menue auch einen Punkt ‚RESET to defaults‘ – dieser setzt alle
Einstellungen im EEPROM zurück (und löscht die Individual-Konfiguration).

 
Save to EEPROM

Weitere Menue Punkte:


Main Menue:


- TX Position Now      // sendet APRS Packet jetzt
- GPS Data                  // verschiedene Gps Infos
- Last RX                     // Anzeige der letzten 5 RSSI von empangenen Packets
                                    // +- blättern letztes empangenes Packet
- Last TX                     // Letzes gesendete Packet
- MH Locator             // Maidenhead Locator der aktuellen Position
- Documentation      // Link auf Documentation Website
- HW Feature
- Setup/Config
- Show Config
- Exit                          // Exit aus Menue –
Achtung solange sich der Tracker im Menue befindet, findet keine

                                           Tracking Aktivität statt!


Verwendung BlueTooth (classic) Interface:

Über die HW-Features kann der BlueTooth Mode aktiviert werden. (Achtung, ca. um 100 mA höherer
Stromverbrauch, DeepSleep Mode wird deaktiviert).

Der Tracker wird dann unter dem Namen ‚LoRa_Call-ID‘ über Bluetooth sichtbar.

 

Bitte bearbeiten Sie diesen Inhalts-Abschnitt.

Die RX/TX Daten werden über das Serial BT Terminal sichtbar.

Bitte bearbeiten Sie diesen Inhalts-Abschnitt.

Achtung, soll der BT Treiber wieder deaktiviert werden, den Tracker einmal PWRoff/on schalten, sonst könnte der Treiber geladen und aktiviert bleiben (ev. höherer Stromverbrauch!).

Btw: es kann sein, dass im BT-Mode das Display am Tracker nach ca 10 Min in den Powersave-Mode
geht. Durch Drücken der mittleren Taste sollte es wieder aktiviert werden ….

 

Installation neuer Firmware

Flash Download Tools installieren:

https://www.espressif.com/en/support/download

 

Flash Download Tools (ESP8266 & ESP32)

Windows PC

V3.6.4

2018.03.06

 

https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.4_0.rar

in ein neues Verzeichnis entpacken z.B.

C:\HAMRADIO\ESP32Flash\flash_download_tools_v3.6.4_0(1)\FLASH_DOWNLOAD_TOOLS_V3.6.4

 

Das neue FW-File entpacken, ESPFlashDownloadTool… doppelklicken und ESP32DownloadTool
auswählen

 

ESP 32 Downloadtool auswählen

Binary File (entpacktes Image für den Tracker) eintragen (s. grüne Zeile) und Startaddresse 0x10000
(gelb) angeben.

Achtung, upgedated sollte nur das Tracker-Binary-File auf Addresse 0x10000 werden. Den Bootloader und Partition Table schick ich nicht mit, da sich dort nichts ändert.


COM Schnittstelle und Geschwindigkeit definieren. Ich hab bei mir SPI Auto-set aktiv – er sollte sich die anderen Parameter automatisch vom Chip auslesen und anpassen.

Der DeviceManager zeigt die COM Schnittstelle an ….

 

Device-Manager

Wenn alles passt, Start drücken und er beginnt mit dem Download …


Wenn fertig, bringt er die Meldung ‚Finish‘.

Danach einmal Power-OFF / ON und der Tracker sollte mit der neuen FW starten.

 


Noch ein Wort in eigener Sache – nachdem Software per Definition nicht fehlerfrei sein kann, hab ich natürlich auch ein paar Bugs einbauen müssen … sorry!

Ich bin natürlich für Bug-Reports an meine email (oe1acm@oevsv.at oder bernd.gasser@chello.at) dankbar und werde versuchen, diese sofern es die Zeit erlaubt, in der nächsten FW-Version zu beheben.


Änderungen Tracker Version 0.9.8d:

- Reset der EEPROM Daten jetzt auch beim Booten möglich –

Die Konfiguration (EEPROM) kann durch Drücken der beiden äusseren Tasten (‚Enter‘ und ‚->‘)
beim Hochfahren zurückgesetzt werden. Es werden die Default Einstellungen geladen und der
Tracker kann neu konfiguriert werden.


- Max Sendeleistungs-Einstellung von 18 jetzt auf 20 (dBm) erhöht.


Es sollte sich eine etwas höhere Ausgangsleistung ergeben, ich habe leider bei mir keine
Möglichkeit nachzumessen.
Zumindest Registerinhalt des PAConfig Registers steht jetzt auf 0x8f und sollte lt Datenblatt
maximaler Leistung entsprechen.

 

Die neueste Firmware-Version (©OE1ACM Bernd Gasser)

 

 

Gehäuse:
Sollten die Tracker in ein Gehäuse eingebaut werden, würde sich ein Gehäuse mit viel Massefläche als
Gegengewicht zur doch recht kleinen Antenne anbieten. Ich hab für einige meiner Tracker ein  Gehäuse mit 3D Drucker gedruckt und die Innenfläche soweit wie möglich mit Kupferfolie ausgekleidet.
(Natürlich sollte der Bereich für den GPS Empfänger frei bleiben…)
Falls jemand Interesse hat, kann ich die .STL Files zur Verfügung stellen…

 

Some Documentation / Links:


Lora Gateway:
http://www.iot4pi.com/en/hardware-out-of-the-limelight/lora-raspberry-pi-gateway-en/

HW-Datasheets

ESP32:
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

LoraTRX Board & Theory of operation:
https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1278


LoRa Modulation: Crystal Oscillator Guidance
LoRa™ Modulation Basics
MCU Requirements for LoRaWAN
Reading Channel RSSI During a CAD
Software implementation of Data Whitening and CRC
SX127x Reference Design Overview
Testing for FCC Pre-Compliance with LoRaWAN Modules
SX1276 Datasheet

Den roten Draht, gleich in dem Loch über dem GPS anlöten.

LORA