Software-Download

Historie der verschiedenen RadioShuttle-Softwareversionen. Für den Download wird ein achtstelliger Code benötigt, welcher auf der Rückseite des LongRa-Boards steht:

Verfügbare RadioShuttle-Versionen

Version 3.8 (2. Oktober 2019)

Dieses neue Release enthält wichtige Verbesserungen, neue Beispiele und Bugfixes. Die meisten Verbesserungen an der Software kamen aus Gesprächen mit Anwendern und aus der vor Kurzem durchgeführten RadioShuttle-Kundenbefragung.

  • Der Modus Node Offline funktioniert nun auch mit AES-Nachrichten korrekt
  • „AddRadio“ ermöglicht die Angabe eines benutzerdefinierten Parameters für die Verzögerung bei der Wiederholung von Nachrichten (anstelle der Standardeinstellung). In den Vorgängerversionen gab es eine zusätzliche Verzögerung von 4000 ms bei den Wiederholungen, diese lange Verzögerung zum Debuggen wurde entfernt
  • Ein neues Beispiel „RadioShuttleSimpleNode“, welches Sensordaten an eine Gegenstelle sendet, wurde hinzugefügt. Dazu gehören Temperatur, Luftfeuchtigkeit und Batteriestatus. Die Daten werden automatisch alle 5 Minuten oder beim Drücken der Benutzertaste gesendet. Dieses Beispiel ist batterieoptimiert mit Unterstützung für „deepsleep“ und bietet eine einfach zu bedienende Vorlage für Node-Anwendungen
  • Das Beispiel „RadioShuttlePanicButton“, das dem Beispiel „RadioShuttleSimpleNode“ sehr ähnlich ist, aber über eine zusätzliche grundlegende Summer-Soundunterstützung verfügt, um der Hilfe suchenden Person zu bestätigen, dass der Panikalarm ausgelöst wurde, wurde hinzugefügt. Der Node „Panic Button“ kann mit dem Gateway „ESP32RadioShuttleMQTT“ verwendet werden, welches die Daten an einen MQTT-Server weiterleitet
  • Das neue Lösungsbeispiel „ESP32Doorbell“ wurde hinzugefügt. Dieses Beispiel unterstützt eine Klingeltaste sowie ein Türöffnerrelais. Durch Drücken einer Klingeltaste werden über das Protokoll TR-064 Telefone, die über die FRITZ!Box angeschlossen sind, zum Klingeln gebracht. Zusätzlich sendet das Beispiel eine MQTT-Nachricht an die App „MQTT Push“, die darüber informiert, dass die Türklingel betätigt wurde. Die Tür kann über die App „MQTT Push“ geöffnet werden. Dieses Beispiel unterstützt SSD1306-Displays, welche Temperaturdaten und den Status der Netzwerkverbindung anzeigen. Es unterstützt auch LoRa-Nodes als RadioShuttle-Station
  • Die RadioShuttle Idle()-Funktion wurde dahingehend verbessert, dass sie während der Übertragung über die Option „forceBusyDuringTransmits“ beschäftigt bleiben kann. Das ist hilfreich, um sicherzustellen, dass die Nachrichten vor dem Ausschalten zugestellt werden. Dies betrifft nur kundenspezifische Hardware
  • ESP32: Unterstützung für den ESP32 hinzugefügt, um den Wake-up-Pin über deepsleep()-Parameter anzugeben. Das Standard-Wake-up ist die Benutzertaste (SW0-Pin)
  • ESP32: deepsleep()-Parameter hinzugefügt, um die Angabe des LED-Pins für periodisches Blinken während des Deepleeps zu ermöglichen
  • ESP32: Das GPIO-Wake-up im Modus „deepsleep“ wurde korrigiert. In den Vorgängerversionen funktionierte das GPIO-Wake-up aus dem „deepsleep“ nicht zuverlässig. Siehe Variable „ESP32WakeupGPIOStatus“ in „RTCUtil.cpp“ und im Beispiel „RadioShuttleSimpleNode“
  • Standard in der Datei „PinMap.h“ ist nun das LongRa-Board (Revision 7.5). Anwender mit älteren LongRa-Boards müssen die Datei „PinMap.h“ auf die Board-Revision 7.2 anpassen
  • Das Beispiel „RadioShuttleRadioTest2“ wurde hinzugefügt. Dieses Beispiel sollte für neue Benutzer einfacher zu verwenden sein; der gesamte LoRa-spezifische Setup-Code wurde nach „LoRa.cpp“ verschoben. „RadioShuttleRadioTest2“ kann als Server (z. B. Station Basic) oder als Knoten (z. B. Node Offline) verwendet werden.
    „RadioShuttleRadioTest2“ empfängt auch Nachrichten von „RadioShuttleSimpleNode“. Der Message-Input-Handler („TempSensorRecvHandler“) kann von „LoRa.cpp“ in das Hauptprogramm „RadioShuttleRadioTest2.ino“ kopiert werden, um einen eigenen anpassbaren Input-Handler zu ermöglichen. Die Idee hinter „LoRa.cpp“, „LoRa.h“, „RTCUtil.cpp“ und „PinMap.h“ ist, dass diese Dateien nicht angefasst werden sollten, damit immer die neuesten Versionen dieser Dateien verwendet werden können. Für neuere RadioShuttle-Versionen müssen benutzerdefinierte Projekte, die diese Dateien verwenden, auf die neuesten RadioShuttle-Dateiversionen „LoRa.cpp“, „LoRa.h“, „RTCUtil.cpp“ und „PinMap.h“ aktualisiert werden

Hinweis:
Bereits existierende Programme müssen auf die neuesten Versionen der Dateien „LoRa.cpp“, „LoRa.h“, „PinMap.h“ und „RTCUtil.cpp“ aktualisiert werden, andernfalls funktionieren sie nicht.

Version 3.7 (19. Juli 2019)

  • „ECO Power“ WatchDog Reset Support
    Die neue WatchDog-Funktion startet den ESP32 automatisch neu, sollte das ESP32-Programm klemmen und nicht mehr regelmäßig die Funktion sleep() aufrufen. Durch die automatische WatchDog-Funktion wird die Verfügbarkeit wesentlich erhöht.
    In „RTCInit.cpp“ wird der WatchDog automatisch aktiviert (standardmäßig auf 120 Sekunden eingestellt) und kann den Bedürfnissen angepasst werden
  • LongRa D21 Hänger in deepsleep() behoben
    Es gab Situationen, in denen deepsleep() hin und wieder klemmte und ein WatchDog die D21 MCU neu gestartet hat. Inzwischen sind wir zu dem Schluss gekommen, dass dies mit zwei AtmelD21 Hardware Bugs zu tun hat. In der Software sind nun Workarounds integriert, welche die Probleme lösen
  • Unterstützung von weiteren Properties in „RadioTest.ino“
    Folgende Properties werden jetzt zusätzlich automatisch verwendet, falls vorhanden: LORA_FREQUENCY, LORA_BANDWIDTH, LORA_SPREADING_FACTOR, LORA_TXPOWER, LORA_FREQUENCY_OFFSET, LORA_APP_PWD

Hinweis:
Bereits existierende Programme müssen auf die neuesten Versionen der Dateien „PinMap.h“ und „RTCUtil.cpp“ aktualisiert werden, andernfalls funktionieren sie nicht.

Version 3.5 (10. Mai 2019)

  • „ECO Power“ RTC-Uhrzeiten basieren jetzt auf der UTC-Zeit
  • Automatische Unterstützung von Zeitzonen und Sommer-/Winterzeit
  • Neue Properties: NET_NTP_GMTOFFSET, NET_NTP_DAYLIGHTOFFSET, NET_NTP_SERVER, NET_NTP_SERVER_ALT
  • Unterstützung der Uhrzeitaktualisierung per NTP für den ESP32, siehe „NTPUpdate.h“, „NTPUpdate.cpp“
  • Vorhandener DS3231 RTC wird per NTP aktualisiert
  • NTP-Uhrzeitaktualisierung in den Beispielen „ESP32MQTTClient“ und „ESP32MQTTAlarmSystem“
  • Update: Unterstützung für OLED SSD1306 (Bugfixes)
  • Sensortreiber für Adafruit_Si7021 aktualisiert, damit dieser auch mit neueren ESP32 SDKs funktioniert
  • RadioShuttle unterstützt Heltec ESP32 LoRa-Boards (Lizenz muss erworben werden, 25,- € ). Dies gilt für die Versionen: Heltec ESP32 LoRa Kit v1, v2 und ESP32 LoRa-Stick
  • RadioShuttle-Unterstützung für das bald erhältliche Turtle-Board (Mbed OS)
  • Kleinere Bugfixes und Verbesserungen

Version 3.3 (8. März 2019)

  • Ein Problem beim Senden von Nachrichten vom Server an den Node wurde behoben (falsche bzw. zu geringe Sendeleistung)
  • Ein Problem bei reduzierter Sendeleistung wurde behoben (ggf. wurde mit 14 dBm gesendet, obwohl ein geringerer Wert eingestellt war)
  • Compilerfehler im Beispiel „BlinkyEnhanced_C_Plus_Plus“ behoben
  • Verbesserter „NVProperty“ (Permanentspeicher)
  • Neues Beispiel „RadioContinuesTX“ hinzugefügt, welches zum Abstimmen von Antennen permanent ein FM-Signal sendet

Version 3.1 (1. November 2018)

  • Unterstützung des D21-Permanentspeichers (Properties). Am Ende des D21-Flashspeichers werden 16 kB (änderbar) für Einstellungen reserviert. Somit darf der Sketch nicht größer als 232 kB werden; 8 k Bootloader und 16 k Propertyspeicher sind belegt
  • Neues Arduino D21 „bossac“ USB-Flash-Utility, welches den D21-Flashspeicher nicht vollständig sondern nur im erforderlichen Programmbereich löscht. Details dazu in der Dokumentation für das LongRa-Board
  • Verbesserte Beispielanwendung „PropertyEditor“ (in „Examples->Arduino-mbed-APIs“)
  • Aktualisierung aller Beispiele, Einstellungen werden nun automatisch über die Funktion „GetProperties“ geladen
  • AES-Passwörter funktionieren jetzt auch per Property-Einstellung

Version 3.0 (1. Oktober 2018)

  • Unterstützung für das neueste ESP32 Arduino-SDK (funktioniert auch mit älteren ESP32 SDKs)
  • Unterstützung für RTC ds3231 I2C
  • Unterstützung für Si7021 Sensor I2C
  • Überarbeiteter „PropertyEditor“, mit dem sich nun auch der Radio Type setzen lässt, z. B. RS_Node_Offline
  • Neu für D21: Permanente Flash-Properties für das LongRa-Board hinzugefügt
    • Standardmäßig werden die letzten 16 kB des D21 für Properties verwendet
    • Die Datei „NVProperty.h“ enthält Details zu „propSizekB“
    • Vergewissern Sie sich, dass „–lock=15“ in der Datei „platforms.txt“ enthalten ist (siehe RadioShuttle Sketch Installation für LongRa)
    • Anwender von LongRa-Boards müssen einmalig die Node- und Code-ID über den „PropertyEditor“ eingeben (LORA_DEVICE_ID, LORA_CODE_ID)
  • Neues vereinfachtes RadioTest-Beispielprogramm nutzt alle Parameter über Properties
    • Vergewissern Sie sich, dass mindestens folgende Properties gesetzt sind:
      • LORA_DEVICE_ID (für „ECO Power“-Boards bereits voreingestellt)
      • LORA_CODE_ID (für „ECO Power“-Boards bereits voreingestellt)
      • LORA_RADIO_TYPE (1 für RS_Node_Offline, 3 für RS_Node_Online, 4 für RS_Station_Basic)
  • Unterstützung für die neuen LongRa-Boards (Rev. 7.5 verfügt über deutlich mehr Pins zur freien Nutzung und beinhaltet eine bereits vorkonfigurierte Funktion zum Auslesen der aktuellen Batteriespannung). Aktivieren Sie in der neuen Datei „PinMap.h“ das aktuelle Board: D21_LONGRA_REV_750

Die Verwendung von Einstellungen über Properties für die RadioShuttle-Anwendungen bringt große Vorteile. Properties ermöglichen es, Einstellungen pro Board einmalig zu definieren und identische Sketches auf alle Boards hochzuladen, da die benutzerdefinierten Einstellungen automatisch aus dem Permanentspeicher übernommen werden. Mit dieser Version werden die Properties vollständig vom „ESP32 ECO Power“- und dem D21 LongRa-Board unterstützt.

Version 2.6 (1. Juli 2018)

  • Universalversion, vereinheitlichte Version für ESP32 „ECO Power“- und D21 LongRa-Boards
  • Neue Beispiele vom einfachen „Blinky“ per Timer-Testprogramm bis hin zum RadioShuttle MQTT-Gateway (mittlerweile 17 Beispiele)
  • Fehlerkorrekturen (reproduzierbare Probleme wurden gefixt)
  • Neue Funktion „InitLoRaChipWithShutdown“ deaktiviert den LoRa-Chip, um Programme auf dem LongRa- oder „ECO Power“-Board im stromsparenden Betrieb zu verwenden
  • Vorbereitung zur Batteriemessung der LongRa-Boards (eine Tech Info mit Details zum Umbau von zwei Widerständen kommt getrennt)
  • Support für das aktualisierte LongRa-Board (Version 7.4)
  • „SendMsg()“ hat zusätzliche Flags bekommen:
    • „CF_CopyData“ kopiert die Daten in interne Netzwerkbuffer statt sie zu referenzieren
    • „CF_FreeData“ markiert die Sendedaten, sodass diese nach dem Senden freigegeben werden (per C++ „delete[ ]“)
  • Wichtiger Hinweis: Bei „InitSerial()“ muss in jedem vorhandenen Programm „intr.read())“ durch „! intr.read())“ ersetzt werden
  • Software-Unterstützung zum Entprellen von Tastern. Die Klasse „InterruptIn“ kann per „debounce()“ für die automatische Entprellung aktiviert werden. Die Vorgabe beträgt, sofern keine Parameter angegeben sind, 300 ms
  • Viele Detailverbesserungen der ESP32-Unterstützung
  • Potenzielle Abstürze in der ESP32 RadioShuttle Debug-Ausgabe wurden behoben. In Interrupt-Routinen darf beim ESP32 nichts ausgegeben werden
  • Neue Funktion „pause(millis)“ aktiviert den ESP32 „lightsleep“-Modus und legt sich schlafen. Während der Pause passiert nichts, danach geht es einfach weiter
  • Timer-Klasse erlaubt nun auch „read_ns()“ um die abgelaufene Zeit in Nanosekunden zu erhalten

Version 2.0 (11. Mai 2018)

  • ESP32 ECO Power support

Version 1.8 (24. Januar 2018)

  • Neu: Hardware-Reset per „WatchDog“ wenn sleep() oder deepsleep() nicht innerhalb von 30 Sekunden aufgerufen wird. Siehe InitWatchDog() im RadioTest-Beispiel (Datei: „RTCUtil.cpp“)
  • Neue Ausgabefunktion rprintf(), wie dprintf(), allerdings ohne Zeitstempel in der Ausgabe

Version 1.6 (18. Dezember 2017)

  • Einfache Versionsnummer eingeführt:1.6 (1.4 und 1.5 wurden nur intern verwendet)
  • RTC-Clock basiert jetzt auf der Arduino Compile-Zeit
  • Die Uhrzeit von „dprintf“ wird mit der RTC-Zeit initialisiert
  • Die Arduino Map-Funktion braucht jetzt nicht mehr in den Quellen „WMath.h/WMath.cpp“ geändert zu werden
  • Bessere Dokumentation für „InitSerial()“, der LED-Parameter kann NULL sein
  • RTC-Clock wird immer gesetzt, wenn die Compile-Zeit neuer als die RTC-Zeit ist

Version 1.3 (14. November 2017)

  • SX1276-Treiber und RadioShuttle-Protokoll lassen sich jetzt entladen
  • Tasterentprellung
  • „SerialUSB“ kann jetzt forciert aktiviert werden, wenn Taster „A“ während des Einschaltens oder beim Reset gedrückt wird
  • Timer-Probleme und andere Hänger behoben. Diese führten dazu, dass die Taster nicht mehr funktionierten
  • Negative Zeitstempel in der „dprintf“-Ausgabe behoben
  • Der Datei „PinMap.h“ wurden komplette Pin-Benennungen für das LongRa-Board hinzugefügt
  • Stromversorgung für das Display des LongRa-Boards standardmäßig deaktiviert
  • Support für das „Adafruit Feather M0 LoRa 868 MHz“-Board. Dieses Board wird zukünftig unterstützt (Lizenzgebühr: 25,- €)
  • DIO0-Pins können jetzt für die CAD-Erkennung (Channel Activity Detection) genutzt werden. Das bedeutet, dass lediglich DIO0 für den LoRa-Betrieb mit RadioShuttle erforderlich ist, wenn ausschließlich LoRa genutzt wird. DIO1-, DIO2- ,DIO3- sowie DIO4-Pins werden zukünftig nicht mehr benötigt

Version 1.2 (28. September 2017)

  • RadioTest: Unterstützung für Taster zum sofortigen Aufwachen aus dem Tiefschlaf (deep sleep) hinzugefügt
  • RadioTest: Einfaches Umschalten, um RadioShuttle::Node_Offline mit Tiefschlaf nutzen zu können
  • Berechnung des Frequenzoffsets bei negativen Zahlen korrigiert
  • Unterstützung für die Anpassung des Frequenzoffsets wurde hinzugefügt, um die Anpassung aller Geräte an einen TCXO-Takt oder einen anderen Mastertakt zu ermöglichen
  • USB-Erkennungstimeout „SerialMonitor“ von 3 auf 5 Sekunden geändert (Timeout von 0 in „InitSerial“ bedeutet, dass USB immer eingeschaltet ist)
  • Neue Initialisierung der RTC-Uhr und Zeitanzeige während des Starts
  • „UpdateRadioProfile“ kann jederzeit über die neue Funktion „UpdateRadioProfile“ aktualisiert werden, erlaubt die Änderung von Radiofrequenz, Spreadingfactor, etc. während des Betriebs
  • Funktion „StrError“ hinzugefügt, die RadioShuttle-Fehlercodes in Strings umwandelt
  • Klartext-Fehlermeldungen für die RadioTest-Beispiele hinzugefügt
  • RadioStatus: TXStart-Callback beinhaltet die verwendete Sendeleistung in dBm
  • RadioTest: Anzeige von Frequenz und Spreadingfaktor beim Start
  • RadioTest: Unterstützung für die Entprellung von Tastschaltern hinzugefügt
  • Funktion „DeInitRadio“ hinzugefügt, um das RadioShuttle-Protokoll und die Treiber zu entladen und Speicherressourcen freizugeben
  • RadioTest: RadioShuttle-InitCode vom Setup in die Funktion „InitRadio“ verschoben
  • Funktion „UpdateNodeStartup“ hinzugefügt, mit der von RadioShuttle::Node_Online auf RadioShuttle::Node_Offline oder umgekehrt umgeschaltet werden kann. Dies ermöglicht Energieeinsparungen für RadioShuttle::Node_Online-Knoten

Version 1.0 Maker Faire Hannover (24. August 2017)

  • Unterstützt LongRa-Arduino-Boards (Rev. 6.0-7.2)
  • Stromsparmodus (sleep) auch bei USB und „Serial Monitor“-Aktivität
  • Erweiterter Stromsparmodus („deepsleep“) ohne USB, Vorausgesetzt ist der Betrieb als Knoten: RadioShuttle::RS_Node_Offline
  • Umweltsensor-App ist enthalten. (Feinstaubsensor Nova PM Sensor SDS011)
    Beispiel: PMSensorRadio
  • RadioTest-App (»Nachricht Ping«) ist enthalten. RadioShuttle-Testanwendung erlaubt den Austausch einfacher Nachrichten
    Beispiel: RadioTest

Zum Download