Eine Website zur gesammelten Anzeige von Windstationen aus verschiedensten Quellen. Ursprünglich entstanden aus der Nonexistenz eine Seite zur übersichtlichen Darstellung von FANET Wetterstationsdaten.
Windationen können über den Share Button geteilt werden oder als Widget eingebunden werden. Dazu die Stations-ID entsprechend anpassen. Die ID wird dir in der Adresszeile angezeigt, wenn du eine Station auf der Karte auswählst.
Eine Windmesstation am Hausberg ist für Gleitschirmpiloten eine feine Sache. Blöd nur, wenn es dort noch keine gibt. Übliche Messtationen (Holfuy etc.) sind eine kostspielige Anschaffung und bringen teilweise auch laufende Kosten für die Datenübertragung mit sich.
Abhilfe schaffen Eigenbaulösungen wie GXAirCom, die das OGN/FANET zur Datenübertragung nutzen. Die technischen Umsetzungen sind jedoch jedem sein Bier und erfordern daher Einarbeitung und KnowHow. Das hat mich inspiriert eine sehr einfache aber dennoch ausreichend gute Windstation zu entwerfen.
Wie kommen die Daten zu mir?
Die Messstation verarbeitet die Sensordaten vor und sendet diese, zusammen mit den GPS Koordinaten der Station, in festgelegten Intervallen (40 sek) "in die Luft". Jeder Empfänger in Reichweite, also FANET fähige Varios und Bodenstationen, erhalten die Daten und können diese Anzeigen.
Alle Bodenstationen die die Daten empfangen haben, geben diese per Internet ans OpenGliderNetwork weiter. Von dort können weitere Dienste (z.B. Gliderradar oder die BreezeDude Windkarte) auf die Daten zugreifen.
Das schöne dabei ist, dass ich zum Betreiben einer Windstation nicht zwingend eine eigene FANET Bodenstation mit Internetanbindung in der Nähe betreiben muss. Das OGN ist bereits recht gut ausgebaut und die Reichweiten einfacher Bodenstationen betragen bei Sichtverbindung bis zu 20km und mehr.
Die Abdeckung kann auf Gliderradar mit einem Klick auf "Coverage" eingeblendet werden. Nur für den Fall, dass kein Funkempfang vorhanden ist, muss eine eigene Bodenstation aufgestellt werden. Das ist ab ca. 30€ möglich, siehe weiter unten.
OGN? FLARM, FANET? Was?
Hier nochmal zur Abgrenzung, was eigentlich OGN und FANET ist. Das OGN ist ein (ehrenamtliches) Communityprojekt, das ursprünglich dazu gedacht war, mittels SDR ("Universalfunkempfänger") FLARM Signale von Segelfliegern zu empfangen und ins Internet zu packen. Das ermöglicht Livetracking und die unterstützt die Suche bei SAR.
Da SDRs verwendet werden, können viele Funkprotokolle und Modulationen die auf dem selben Frequenzband wie FLARM (868Mhz) liegen empfangen und verarbeitet werden. Daher wurde die Software von OGN Bodenstationen so erweitert, dass diese Stationen u.a. auch des offene FANET Protokoll unterstützen. Technisch lassen sich alle Protokolle mit einem LoRa Modul bedienen, waraus Projekte wie GxAirCom und SoftRF entstanden sind.
FLARM ist ein komerzielles Produkt, das selbst nur zur Air-to-Air Kommunikation gedacht ist. Es basiert auf der Frequency Shift Keying (FSK) Modulation und setzt auf eine pseudo Verschlüsselung die nach eigenen Angaben hautsächlich rechtliche Schutz gegen unerlaubte Entschlüsselung gibt. Q1 2024 wurde die (zuvor seit 2017 geknacke) Verschlüsselung geändert, wodurch "Nachbauprojekte" erstmal nicht mehr FLARM kompatibel waren.
FANET hingegen ist lizenzfrei und unterstützt neben der reinen Positionierung von Fluggeräten auch andere Datenpakete wie Wetterstationsdaten. FANET arbeitet auch auf dem 868Mhz Band, verwendet aber die Chirp Spread Spectrum (CSS) Modulationstechnik von LoRa.
Man liest auch öfter das Wort "SkyNet". Das ist nichts anderes als FANET, nur dass die empfangen Daten dann nicht öffentlich ins OGN gepackt werden, sondern nur bei Burnair auf dem Server landen (oder angeblich ja "teilweise" ins OGN gehen...) Das einzige was man hiervon sieht ist der Wetterstations-Spam, bei dem Burnair Holfy Windwerte zusammen mit Skynet Werbung in die weite Welt sendet.
Breezedude Mini - 2025
Eine noch kompaktere, überarbeitete Variante des Breezedude.
Bei der Erprobung des Breezdude Alpha (V1.x) hat sich gezeigt dass die Heizung des WS80 mit der zur Verfügung stehenden Energie in den Akkus in hochalpiner Umgebung keine Chance hat. Daher wurde die Ansteuerung für die Heizung in der neuen Version weggelassen und dahingehend auch der Solar-Laderegler und Akkukapazität überarbeitet. Das Ergebnis: weniger Komplexität, weniger Komponenten und noch einfacher. Der Breezdude Mini (V2.x)
Auch Softwareseitig hat sich einiges getan. Neben verbesserten Filtern für die Wind und Böenwerte werden mehrere Funkmodule (SX1276, SX1262 und LLCC68) sowie diverse Barometer (BMP280, SPL06, BLP3XX) unterstützt und automatisch erkannt.
Die Hardware wurde für UART Sensoren (Ecowitt WS80 und WS85) sowie für den analogen Sensor DAVIS 6410 optimiert. Der auf der Rückseite verbaute 750mAh Akku reicht für 14 Tage ohne Sonne, für besonders schattige Plätze kann weiterhin eine 18650 Zelle verwendet werden, die für 50 Tage Akkulaufzeit ohne Solarstrom reicht. Alle Eingänge sind gegen statische Überspannung geschützt und eine zweite, rote LED zeigt Fehler besser erkennbar an.
Die Stecker sind farblich gekennzeichnet.
Zum einfachen Funktionscheck vor Ort kann ein I2C OLED-Display angeschlossen werden.
Durch die kompaktere Bauform kann ein kleineres Gehäuse sowie eine kleinere Solarzelle (60x60mm) verwendet werden.
Breezedude Alpha - 2024
Eine kompakte, low cost, open source FANET Windstation.
Was steckt im BreezeDude?
Der BreezeDude ist eine solarbetriebene Windstation mit FANET Funk-Anbindung.
Als Sensor kommt z.B. ein ECOWITT WS80 Ultraschall 5-in-1 Sensor (Wind, Temperatur, Feuchte, Helligkeit, UV) zum Einsatz (alternativ kann auch ein klassischer DAVIS 6410 angeschlossen werden. Kostet aber das 3-fache)
Der Prozessor ist ein energiesparender Cortex L0+ (SAMD21), um mit einer kleinen Solarzelle und möglichst wenig Akku auszukommen. Fokus liegt hierbei auf das Senden von Winddaten, funktionen wie FANET Repeater oder FLARM Umsetzer sind nicht implementiert.
Der Ecowitt Sensor bestimmt selbstständig im Hintergrund Windgeschwindigkeit, Böen und Windrichtung und sendet seine Daten alle 5 Sekunden über eine serielle Schnittstelle.
Der Sensor hat eine integriert Heizung, die per Controller (1.25-8 Watt) angesteuert werden kann. Die Solarzelle kann je nach Verfügbarkeit und Standort gewählt werden (5-25V), der MPPT Punkt des Ladereglers lässt sich per Konfigurationsdatei zwischen 4 und 25V einstellen.
Sensor Umbau
Der WS80/WS85/WS90 Sensor muss zum Anschluss an die Breeezedude-Platine umgebaut werden. Arbeitszeit ca. 45min
1. Die Spannungsversorgung über Batterie fällt weg, stattdessen wird an den Kontakten mit 3.3V von der Platine versorgt. Die Solarzelle vom Sensor und die Supercaps können weiterhin genutzt werden um den Sensor mit Strom zu versorgen.
2. Die Heizung wird direkt verdrahtet (der 0°C Thermoschalter kommt raus), nicht zwingend notwendig aber so ist man selbst Herr über die Heizung
3. Im Sensor ist bereits die Ausgabe per RS485 vorgesehen, jedoch nicht bestückt. Hier müssen 2 kleine Kabel angelötet werden um die bereits vorhandene Kabel in den unteren Teil der Station zu verbinden.
4. Vom unteren Teil muss ein 4 poliges Kabel zur Breezedude Platine gezogen werden.
5. Zur Aktivierung der Debug Ausgaben muss ein 10k Widerstand eingelötet werden.
Eine detaillierte Anleitung befindet sich im GitHub repo.
WS90 ist derzeit nur mit der Firmware des WS80 mit BreezeDude kompatibel.
Ich empfehle den WS85 zu verwenden, da dieser am leichtesten umzubauen ist. Alternativ können die Restbestände des WS80/DP1000 von Froggit verwendet werden.
Verfügbare Messwerte
Leider können nicht alle Messwerte in voller Auflösung über FANET gesendet werden, da das Protokoll dies nicht vorsieht. Die wichtigsten Daten sind aber dabei.
FANET unterstützt folgende Werte:
- Windgeschwindigkeit (0.2 km/h)
- Windböen (0.2 km/h)
- Windrichtung (1.4°)
- Temperatur (0.5°C)
- Rel. Feuchte (0.4%)
- Barometer Absolutdruck (10 hPa)
- Batterie SOC (16 Stufen)
durch die Weitergabe der Daten ins OGN geht der Akkustand verloren und es kommt zu Umrechnungsungenauigkeiten (km/h zu Knoten etc.).
Für die interne Logik stehen folgende Messwerte zur Verfügung:
Alle 5 Sek vom Sensor
- Windgeschwindigkeit (0.1 m/s)
- Windböen (vorberechnet, 0.1 m/s)
- Windrichtung (1°)
- Helligkeit (1 Lux)
- UV Index (0.1)
- Temperatur (0.1°C)
- Rel. Feuchte (1%)
Interne Sensorik
- Absolutdruck (Barometer)
- Temperatur vom Barometer (Temp. im Gehäuse/Platine)
- Akkuspannung
- Status Solar "Charging"
- Status Solar "Charge done"
- USB verbunden
Stromversorgung
Als Akku können alle Li-Ion Zellen und Packs in der 1S Konfiguration mit einer Ladeschlussspannung von 4.20V verwendet werden. Die Akkukapazität sollte nach Größe der Solarzelle, Exposition und benötigter Heizenergie gewählt werden. Ohne Heizung reicht 1x 18650 mit 80x80 Solar, mit Heizung TBD.
Der Solarregler unterstützt Zellen mit bis zu 25V (limitierend ist der Eingangskondensator, 30V möglich) Er arbeitet nach dem CC CV Prizip, der max. Ladestrom ist auf 2A begrenzt und kann sonst nur durch die Leistung der Solarzelle limitiert werden.
Der USB Anschluss dient nur zur Datenübertragung, damit kann das Gerät weder geladen noch betrieben werden.
Bei einem Sendeintervall von 40sek liegt der durchschnittliche Stromverbrauch bei insgesamt 1.5mA@4.0V, der Sensor benötigt im Schnitt 1.27mA (3.3V) bei einem (leider unveränderbarem) Messintervall von 5 Sek.
Somit würde das Setup in der Theorie ohne Solarstrom 1.8 Monate mit einer einzigen 2000mAh 18650 Zelle laufen.
Anschlüsse
Intern gibt es Anschlüsse für den Sensor (UART) + Heizelement, den DAVIS Sensor (GPIO mit Interrupt und ADC mit Spannungsteiler), Akku, Solarzelle und USB-C.
Über einen 2-Kanal Digitalpotentiometer können die Ausgangsspannung des DCDC Wandlers von VBat-12V (8W max.) für die Heizung und der MPPT Punkt das Solar-Laderreglers von 4-25V per Software eingestellt werden.
Der Heizungsausgang kann über einen Leistungsschalter ganz abgeschalten werden.
Da die Sensorheizung auf Akkubetrieb ein ziemlicher Energiefresser ist, wird diese nur "im Bedarfsfall" aktiviert, also wenn z.B. erkannt wird, dass der Sensorbereich verschneit ist und genug Akkuladung für einen Abtauversuch bereitsteht.
Dies wird automatisch "intelligent" anhand der Sensowerte der letzten 15 Tage gestartet (noch in Testphase).
Der Anschluss für den DAVIS Sensor kann per Lötjumper auf den I2C Bus umgestellt werden um weitere Sensoren oder Geräte anzuschließen.
Die serielle Schnittstelle vom WS80 Sensor kann zeitgleich als Debug Ausgabe (nur TX) genutzt werden oder falls der WS80 nicht verwendet wird z.B. ein GPS Modul angeschlossen werden. Alle 4 GPIO lassen sich auch anderweitig als Schalt ein oder Ausgänge benutzen.
Ab Hardware Version 1.3 ist eine zweite serielle Schnittstelle und 3 Lötjumper zur Codierung in Hardware vorgesehen.
Konfiguration
Die Konfiguration (GPS Koordinaten, diverse Parameter) erfolgt über eine Textdatei die über USB auf den emulierten USB Massenspeicher aufgespielt wird.
Neben den Standortinformationen (Lon, Lat, Höhe) kann über die Konfiguration der Windrichtungsoffset, das Sendeintervall, vorhandene Sensoren (welcher Sensor, GPS, Baro), Heizungskonfiguration sowie diverse Testmodi eingestellt werden.
Zur Erstellen und Bearbeiten der Konfiguration gibt es einen Konfigurator
Zum Verbinden einfach das USB Kabel anstecken und die Reset Taste kurz drücken. Der Breezedude wird als Massenspeicher erkannt.
Nach dem Trenne der USB verbindung muss die Reset Taste erneut gedrückt werden, um die neue Konfiguration einzulesen. Wurde die Konfiguration erfolgreich gelesen, erlischt nach Drücken der Reset Taste die LED.
Softwareupdates
Updates können bequem per Drag&Drop eingespielt werden. Daszu das USB-Kabel Verbinden und durch Doppeltippen der Reset Taste in den Booloader-Modus wechseln. (Die LED "Atmet" dauerhaft). Nun kann die .uf2 datei auf den Massenspeicher kopiert werden.
Während USB verbunden ist bleibt der Controller aktiv um den USB Zugriff zu gewährleisten. Nach 15 Min wird die USB Verbindung automatisch getrennt.
Kabelfarben
Weiß: Daten
Grün: 3.3V
Schwarz o. Braun: GND
Rot o. Gelb: Heizung
Wie geht es weiter
Aktuell befindet sich das Projekt in der ersten Testphase um die Zuverlässigkeit und Robustheit zu prüfen. Wenn alles gut läuft, kann ich evtl. Bausätze anbieten.
Alle Hardware und Software des Projekts sind auf GitHub frei zur Verwendung, sodass es jeder der will nachbauen und weiterentwickeln kann.
Eckdaten
- Wind Sensor: Ecowitt WS80 oder Impulsflügelrad mit Richtungspotentiometer(z.B. DAVIS 6410)
- Barometer: BMP280 oder SPL06-001
- LoRa Modul: RFM95W (SX1276) oder G-NiceRF SX1262
- Antennenanschluss: SMA gerade, gewinkelt oder u.fl
- Prozessor: SAMD21
- Konnectivität: USB-C, I2C, UART
- Spannungsversorgung: 1S Li-Ion
- Solar: 4-25V MPPT, 2A max.
- Ausgang Heizung: DCDC Boost 4,2V-12V, max. 8W
- Platinengröße: 56x24mm
Alternativer Sensor:
Davis 6410 Flügelrad Anemometer: 229€
Warum kein Flügelrad?
Flügelrad Anemometer haben sich in vielen Messstationen bewährt. Jedoch sind sie anfällig gegen Vereisen/Schnee/Hagelschlag und die bewegten Teile unterliegen dem Verschleiß bzw. "Korosion" der Lager.
Robuste Ultraschall Anemometer liegen sonst üblicherweise im 4-Stelligen Preissgement. Der ECOWITT Sensor ist eine sehr günstige Lösung aus Fernost, die sicherlich nicht mit vorher genannten mithalten kann.
Im Hobby-Wetterstationsbereich hat er jedoch keinen schlechten Ruf und kann allemals zwischen "fliegbar" und "nicht fliegbar" unterscheiden. Wie die Langzeithaltbarkeit im alpinen Gelände aussieht, wird sich zeigen.
Bodenstation
Als eigene Bodenstation eignet sich das Projekt GxAirCom hervorragend. Dazu kann man fertige Module in China/Amazon bestellen oder selbst ein LoRa Modul an einen ESP32 verkabeln.
Hier ein Beispiel mit ca. 15€ Materialkosten Der Stromverbrauch liegt bei ca. 1.1W, also ca. 3€ Stromkosten/Jahr.
Alternativ gibt es auch ein BreezeDude Groundmodule zum selbst bestücken. Mit DCDC Wandler für 3.5-24V Eingangsspannung. Gesamtverbrauch 0,4W
Achtung: Burnair Skynet Bodenstationen geben die empfangen Daten nicht ins OGN weiter. Baurnair bezieht jedoch selbst auch die Daten aus dem OGN. Eine GxAirCom oder SDR basierte OGN Bodenstation ist für die Community daher deutlich nützlicher.