Sail Instrument Plugin für AVnav

Die Idee dieses AVnav-Plugins ist es, ein Instrument anzuzeigen, das alle grundlegenden Informationen enthält, die zum Segeln benötigt werden. Mit der Möglichkeit dieses Display direkt auf der Karte an der Bootsposition einzublenden hat der Segler alle Informationen im Blick. Die Laylines informieren Sie über die schnellste Peilung zu einem Wegpunkt gegen den Wind, und wenn sie auf der Karte angezeigt werden, können Sie diesen Linien folgen.

Wer wissen will was Laylines sind, kann hier einige Infos dazu finden:

https://www.blauwasser.de/navigation/app-sailsteer-bandg

https://www.bandg.com/de-de/blog/sailsteer-with-mark-chisnell/

Abb: Sail Instrument Plugin für AV nav

Die Inspiration zum Instrument basiert auf dem B&Gs Sailsteer Instrument. Zum Sail Instrument gibt es bei GitHub ein Projekt wo man alle wichtigen Informationen zum Plugin finden kann.

https://github.com/kdschmidt1/Sail_Instrument

 

 

Lilygo T-Watch 2020 mit Anbindung an SignalK

Abb. Lilygo T-Watch 2020 (Lilygo)

 

Jan Dytrych hat ein Softwareprojekt gestartet, um mit einer Smart Watch Daten von SignalK anzeigen zu können und Alarme zu empfangen. Als Smart Watch wird nicht irgend eine gängige Uhr unter Android benutzt. Er verwendet die Smart Watch Liligo T-Watch 2020. Die Besonderheit dieser Uhr ist, dass sie einen ESP32 als Prozessor verbaut hat und  über die Arduino IDE bzw. PlatformIO programmiert werden kann. Der Hersteller Liligo unterstützt die Uhr mit einigen Bibliotheken, die die Programmierung wesentlich vereinfachen.

Die Liligo T-Watch 2020 verfügt über folgende Komponenten:

Abb. Hardware Lilygo T-Watch 2020 (Lilygo)

  • CPU: ESP32, Dual-Core-MCU, 240 MHz
  • FLASH: QSPI-Flash 16MB
  • SRAM: 520 KB SRAM / PSRAM 8MB
  • WiFi 802.11bgn 2.4 GHz
  • Bluetooth 4.2 BR/EDR, BLE
  • Display: 1,54 Zoll farbiger TFT, kapazitiver Touchscreen, 240 x 240 Pixel
  • 3-Achsen-Beschleunigungssensor BMA423
  • RTC-Uhr: PCF8563
  • IR-Empfänger
  • Lautsprecher
  • Taste: Power-Taste
  • USB zu TTL: CP2104 (Micro USB)
  • Lithium Akku 380 mAh, 3.7 V, wechselbar Typ: YX-W9A
  • Betriebstemperaturbereich: -40 ~ +85 Grad
  • Metallgehäuse
  • Wasserdichtheit keine
  • Silikonarmband 270 mm
  • Gewicht: 58,5g

Zur T-Watch 2020 wird ein USB-Kabel mitgeliefert über das die Uhr aufgeladen und Programme übertragen werden können. Die Uhr hat ein Aluminium Metallgehäuse und das Design orientiert sich an der Apple I-Watch. Mit dem nicht austauschbaren Silikonarmband lässt sich die Uhr bequem tragen. Einziger Schwachpunkt, die Uhr ist nicht wasserdicht.

Eigenschaften der Firmware

Die Firmware zur Uhr wird bei GitHub gehostet und hat folgende Merkmale:

  • Hauptbildschirm Uhrfunktion mit Statuszeile
  • Einrichtungsbildschirm für Datum, Uhrzeit, Weckzeit, WiFi, SignalK
  • Benutzerdefinierte Bildschirme für Werte aus SignalK
  • SignalK Events wecken die Uhr und zeigen Meldungen an
  • Sleep-Mode mit Display Off für langen Betrieb bis zu 24h
  • Aufwecken der Anzeige mit tippen oder drehen des Handgelenks
  • Tag/Nacht Modus über Doppeltipp
  • Sprachanpassung über Quellcode
  • Schrittzähler

Abb. Startbildschirm, Warnmeldung und SignalK-Werte

Einstellungen und Konfiguration

Die grundlegenden Einstellungen können an der Uhr über das Display vorgenommen werden. Zur Gestaltung der benutzerdefinierten Bildinhalte für SignalK Werte gibt es das Programm TWatchSKDesigner für Linux, Mac und Windows. Damit können recht komfortabel neue Anzeigeseiten für SignalK erstellt und über eine USB-Verbindung zur Uhr übertragen werden. Der Konfigurator erlaubt verschiedenste Darstellungen und Farbauswahl für die anzuzeigenden Werte.

Abb. TKWatchDesigner mit Ergebnis

Fazit

Jan Dytriych hat mit seinem Open Source Software-Projekt eine coole Anwendung entwickelt, mit der es möglich ist Daten von SignalK am Handeglenk einsehen und überwachen zu können. Besonders die Alarmmeldungen sind eine nützliche Funktion, um sich über Grenzwertüberschreitungen informieren zu lassen. Bei Github ist das Projekt sehr gut dokumentiert und Interessierte sollten alle nötigen Informationen finden. Lilygo hat mit der T-Watch 2020 eine interessante Hardware für kleines Geld zur Verfügung gestellt, mit der sich eine Vielzahl an Projekten umsetzen lassen. Die Verwendung der beliebten CPU ESP32 vereinfacht für Maker die Software-Entwicklung, da in vertrauten Umgebungen mit bekannten Wissen entwickelt werden kann. Einziger Nachteil der T-Watch 2020 ist, dass sie nicht wasserdicht ist. Ob das ein KO-Kriterium ist, muss sich im Praxiseinsatz auf dem Boot noch zeigen. Bleibt zu hoffen, dass Liligo in Zukunft auch eine wasserdichte T-Watch rausbringt.

Links

Projekt-Homepage: https://github.com/JohnySeven/TWatchSK

TWatchSKDesigner: https://github.com/JohnySeven/TWatchSKDesigner#twatchskdesigner

Lillygo T-Watch 2020: http://www.lilygo.cn/prod_view.aspx?TypeId=50053&Id=1380&FId=t3:50053:3

Bilder

Abb. Lilygo T-Watch 2020 (Lilygo)

Abb. Geöffneter Deckel, rechts Lithium Batterie

Magnetix – ein digitaler Kompass mit NMEA2000

Warum

Ich fand die Idee schon immer spannend, dass auf meinem Plotter nicht nur dann der Kurs angezeigt wird wenn sich das Boot in Bewegung setzt, sondern auch, wenn es ruhig vor sich hindümpelt.

Nach der Suche im I-Net bei unterschiedlichen Herstellern war schnell klar, dass ich bei aktuellen Preisen vielleicht doch keinen E-Kompass an Bord brauche. Durch die Corona-Einschränkungen und dem mehr an Freizeit, die zu Hause verbracht wurde, kam die Idee auf, den Kompass selber zu bauen.

Der Bau des elektronischen Kompasses mit einem Ausgang in das NMEA2000 Netzwerk wurde inspiriert durch einen Beitrag von Andreas in dem “segeln-forum.de” Forum.
Durch viele Tipps in unterschiedlichen Foren ist es geglückt. Der Kompass ist fertig, aber noch (Stand:2022.01) nicht auf dem Boot getestet.

Beschreibung

Magnetix ist ein elektronischer Kompass, der seine Daten auf den MNEA2k-Bus überträgt. Als Basis dient ein CMPS14 als Sensor, ein ESP32 als Rechenknecht, ein Waveshare SN65HVD230 (nicht vergesse den Widerstand herauszubrechen) als Bindeglied zum Bus und ein LM2596 als Spannungswandler. Für die Anzeige im Gehäuse wird ein 0.91 Zoll OLED mit 132×32 Pixel verwendet.

Das Gehäuse für die Elektronik ist ein Bocube von „www.bopla.de“. Für den Sensor wurde sowohl die Halterung als auch das Gehäuse 3d-gedruckt. Die Halterungen für das OLED und die Touchsensoren (VA Schrauben) sind ebenfalls mit einem 3-Drucker erstellt worden.

Die Verbindung zwischen dem Kompass-Sensor und dem ESP erfolgt über ein KAT5 Netzwerkkabel, bei dem immer zwei Kabel zu einem Paar verbunden wurden. Obwohl das Protokoll zwischen dem CMPS und dem ESP ein Kurzstreckenprotokoll (I2C) ist, habe ich bei einer Kabellänge von ~70cm keine Probleme

Die Stromversorgung erfolgt über den NMEA – Bus und beträgt ~1LEN. Als Verbindung zum Netzwerk wird ein Einbaustecker der Firma Techno-Spark verwendet.

Der ESP bekommt die Daten über den I2C – Bus, wandelt das Ganze in einen NMEA2K Datensatz (127250) um und schickt es an das Netzwerk.

Der Kompass identifiziert sich am Bus als „Magnetix Alpha“ und kann auch unter diesem Namen in den Quellen des Netzwerks gefunden werden.

Variablen im Code

Kompletter Quellcode https://open-boat-projects.org/wp-content/uploads/2022/01/compass_NMEA2k_V05_01.zip
https://open-boat-projects.org/wp-content/uploads/2022/07/compass_NMEA2k_V05_02.zip
devitation []
ist ein Array mit 36 möglichen Einträgen. Darin kann eine Deviationstabelle hinterlegt werden, die bei den jeweiligen Kursen automatisch den ausgegebenen Kurs korrigiert.
CorrectionMountingAngle
Damit kann eine – horizontale – Korrektur für eine Abweichung der Kompasslinie zur Bootsachse eingestellt werden.

[-] Werte für eine Korrektur nach Backbord

[+] Werte für eine Korrektur nach Steuerbord

Bedienung

Die Bedienung beschränkt sich auf die zwei Touchflächen(Schrauben):

Touchfläche Funktion
1 Autokalibrierung an / aus
2 Autokalibrierung aus Durchgeführte Kalibrierung speichern
1 & 2 neue Kalibrierung anstoßen

Display

Das Display ist in drei Bereiche gegliedert:

Links (in 90° gedrehter Schrift)
Aktuelle Funktion des Sensors
„Calib“ der Sensor befindet sich gerade in der Kalibrierung, die durch Touch 1&2 angestoßen wurde.
„inacc“ wenn der Sensor nicht komplette kalibriert ist, (nicht alle Sensor Rückmeldungen 1 sind) erscheint „inaccurate“. Auf ein Ausschalten der HDM Daten wurde verzichtet, da es sehr oft zu Meldungen 0 kommt.

Evtl. muss dass nach Feldversuchen an Bord angepasst werden

„ON“ Der Sensor befindet sich im „autocalibration“ Modus
„OFF“ Der „autocalibration“ Modus ist ausgeschaltet
Mitte
S Status des Sensorsystems gefolgt von zwei Zahlen
A ‚Status des Beschleunigungssensors
M Status des magnetischen Sensors
Die drei Angaben werden jeweils durch die folgenden Zahlen präzisiert:
00 nichts ist OK
11 alles OK
01 oder 10 teilweise OK
(was diese Zahlen genau bedeuten ist aus der Dokumentation des CMPS14 leider nicht eindeutig ersichtlich)
Rechts vom Strich
M Magnetischer Kurs  (nach dem Druck auf T2 erscheint für 2sec. “…stored…” [v5.02])
R Roll des Sensors
P Pitch des Sensors

Auf- und Zusammenbau

Aufgebaut habe ich das ganze in einem Standard Gehäuse in dass ich eine Grundplatte als Träger für die Lochplatte und den Spannungswandler gebaut habe. Das einzige was beim Zusammenbau zu beachten ist, ist dass auf dem CAN.Modul (Waveshare SN65HVD230) der Abschlusswiderstand herausgebrochen werden muss. Sonst terminiert der Waveshare SN65HVD230 den kompletten NMEA Bus. Die Verkabelung kann in dem Schaltplan nachgesehen werden.

Leider habe ich in der ersten Version meine Halterungen für das Display und die Touchflächen bündig an die Oberkante des Gehäuses gesetzt. Da der Deckel sich aber komplett über das untere Gehäuse “stülpt” ging er nicht mehr zu. 🙁

Updates

2022-03-01 Neue Halterung für das Gehäuse mit einer Wandhalterung um einen falschen horizontalen Einbau auszugleichen -> Thingiverse
2022-07-02 Nach einigen Tests ist mir aufgefallen, dass der Sensor nach einem Stromverlust (trotzdem er die Kalibrierung gespeichert hatte) wieder bei Null anfängt. Ich habe die Touchflächen jetzt so umgestellt dass T2 die vorher durchgeführte Kalibrierung abspeichert. Nach den ersten Proben mit einem Neustart von Magnetix scheint es jetzt zu funktionieren.  (V5.02)

Libraries

die verwendeten Libraries erscheinen im Kopf der INO Datei und werden hier nicht weiter behandelt.

Links und Materialien

Alle 3-D Druck Bauteile https://www.thingiverse.com/thing:5207953
ESP-32 Dev Kit C V4 https://www.az-delivery.de/products/esp-32-dev-kit-c-v4
CMPS14 Data Sheet
Waveshare SN65HVD230 https://www.amazon.de/gp/product/B00KM6XMXO/ref=ppx_yo_dt_b_asin_title_o01_s01?ie=UTF8&th=1
0,91 Zoll OLED I2C Display 128 x 32 Pixel https://www.az-delivery.de/products/0-91-zoll-i2c-oled-display
LM2596S DC-DC Netzteil Adapter Step down Modul https://www.az-delivery.de/products/lm2596s-dc-dc-step-down-modul-1
PCB Board Set Lochrasterplatte Lochrasterplatine Leiterplatte https://www.az-delivery.de/products/pcb-board-set-lochrasterplatte-platine-leiterplatte-4×4-stuck
Gehäuse https://www.bopla.de/gehaeusetechnik/product/bocube/pc-ul-94-v0-glasklarer-deckel.html

meine Maße finde ich allerdings in der dortigen Liste nicht wieder!

PG – Durchführungen https://www.conrad.de/de/p/kvpg9gr-kabelverschraubung-verschraubbar-mit-zugentlastung-pg9-pg9-polyamid-grau-1-st-1521121.html

(an die Mutter denken)

Micro-C Einbaustecker https://technospark.de/nmea-2000-panel-mount-connector?number=SW1153
Grundlagen Diesjährige Winterbastelei: Ein NMEA Heading Sensor oder auch elektronischer Kompass Pitch und Roll Kompensiert

https://www.segeln-forum.de/thread/66453-diesj%C3%A4hrige-winterbastelei-ein-nmea-heading-sensor-oder-auch-elektronischer-komp/?pageNo=1

Touchfunktionen https://www.wiegleb.org/2018/09/22/esp32-ttgo-mit-touch-funktion/
NMEA Grundlagen AK-Homberger Workshop (ESP -> NMEA2k)

https://github.com/AK-Homberger/NMEA2000-Workshop

Beispiele I2C NMEA https://www.robot-electronics.co.uk/htm/arduino_examples.htm#CMPS12/11%20I2C

https://www.robot-electronics.co.uk/files/arduino_cmps12_i2c.ino

Gallerie

Luftdruck Füllstandssensor

Abb. Steuerbox mit Pumpe, Drucksensor und Ventilen

In der Facebook Gruppe Raspberry Pi for Boats habe ich eine coole Lösung für eine Füllstandmessung gesehen. Erik aus Finnland hat mit einem Luftdrucksensor eine Überwachung für 4 Tanks konstruiert. Das Funktionsprinzip basiert auf der Verdrängung von Flüssigkeiten in einem Messrohr. Es baut sich dann ein entsprechender Luftdruck im Messrohr aus der proportional zur Füllstandhöhe ist. Das System benutzt eine Pumpe die in einem Schlauchsystem so lange Druck aufbaut bis die Luft am Schlauchende im Tank ausströmt. Je nach Schlauchlänge arbeitet die Pumpe zwischen 5…10 s. Danach wird der statische Druck im Schlauchsystem gemessen, der proportional zum statischen Druck einer Flüssigkeitssäule ist. Damit man 4 Tanks kontrollieren kann, sind im System 5 Ventile verbaut, die ein Verbindung zum jeweiligen Tank herstellt von dem man den Füllstand ermitteln möchte. Mit dieser coolen Lösung umgeht er das Problem des Druckverlustes im Schlauchsystem, weil er vor jeder Messung kurz die Pumpe anlaufen lässt und die entwichene Luft nachfüllt. Ich hatte damals auch mit Schlauchsystemen experimentiert und die Lösung für unbrauchbar gehalten, weil ich den Druckverlust nicht kompensieren konnte. Das Problem war, dass Luft eine sehr geringe Dichte hat und durch Schläuche hindurch diffundieren oder an Schlauchverbindern entweichen kann. Der Luftdruck lässt sich dann nicht über mehrere Tage oder Wochen aufrecht erhalten. Man kann das umgehen indem man durchgängige Metallleitungen ohne Verbinder benutzt, was das Ganze dann aber wieder aufwändiger werden lässt. Ich hatte mich damals in meinem Projekt zur Motordiagnose entschieden, den Drucksensor direkt im Tank einzubauen und die Flüssigkeitssäule direkt zu messen.

Die Lösung von Erik hat den Vorteil, dass man keine gefährlichen Spannungen am Tank hat und man im Prinzip beliebig viele Tanks mit der Methode überwachen kann. Als Auswerteeinheit benutzt er einen Raspberry Pi und zeigt die Messergebnisse auf einer Webseite an. Die ganze Elektronik hat er auf einer einfachen Streifenleiterplatte untergebracht. Das Projekt hat Erik auf seiner Homepage beschrieben.

Im Segeln-Forum findet man eine interessante Diskussion mit weiterführenden Informationen zu diesem Thema.

Abb. Pneumatischer Systemaufbau

 

Abb. Schlauchende im Tank

 

Abb. Pumpen- und Ventilansteuerung

Abb. Anzeige- und Bedieneinheit

Volvo Penta NMEA2000 Interface

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Disclaimer: Die Beschreibungen der Verdrahtung und der Pinbelegungen entsprechen dem, was ich in meinem Boot vorgefunden habe. Deshalb muss man, wenn man das Interface nachbauen möchte, sicherstellen, dass die Verdrahtungen und Pinbelegungen auf dem eigenen Boot identisch sind oder das Interface entsprechend anpassen. Die gesamte Beschreibung dieser Lösung ist in einem experimentellen Zustand und kommt ohne jegliche Gewährleistung. Änderungen an der Verkabelung des Bootes oder der elektrischen und elektronischen Gegebenheiten können zu Schäden oder kritischen Situationen führen. Das geschieht auf eigene Gefahr.

 

Allgemeines

Die Basis-Installation eines Volvo Penta-Motors (Motoren D1 und D2) mit EVC besteht aus verschiedenen Sensoren am Motor, die an das EVC/MDI (electronic vessel control/motor data interface) angeschlossen sind. Diese Daten werden vom MDI über einen CAN-Bus an das Drehzahlinstrument geliefert. Häufig gibt es nur den Drehzahlmesser mit einem kleinen LCD-Display um Daten anzuzeigen. Weitere Instrumente können aber erworben und hinter dem Drehzahlmesser über den sog. Easy-Link angeschlossen werden.

 

 

 

Die Drehzahl wird kontinuierlich angezeigt. Weiter Werte, wie etwa Kühlwassertemperatur und Ladespannung werden nur im Fehlerfall alarmiert, aber nicht durchgehend angezeigt. Das hier beschriebene Interface verbindet den CAN-Bus des Motors mit einem NMEA2000-Bus. Dabei werden die Informationen im VP-CAN-Bus die als J1939-Datagamme vorliegen gelesen, ausgewertet, und als NMEA2000-Datagramme auf den NMEA2000-Bus geschrieben. Die bisher implementierten Daten sind

  • Motordrehzahl
  • Ladespannung
  • Kühlwassertemperatur
  • Motorstunden

Im NMEA2000-Bus können die Informationen z.B. von einem Plotter angezeigt und mit Warnleveln versehen werden.

Bei einer Überführung meines Bootes über die Unterems Richtung DEK hat mich das vor sehr großen Problemen bewahrt. Durch die vielen Sedimente in der Ems war der äußere Kühlkreis zunehmend verstopft. Über meinen Plotter (MFD) konnte ich den Temperaturanstieg frühzeitig bemerken, und entsprechend reagieren. Ohne das Interface und die Anzeige im MFD wäre irgendwann der Alarm gekommen, und dann hätte ich kaum noch Handlungsoptionen gehabt, dass es keine Möglichkeiten gegeben hätte, festzumachen oder zu ankern. Ich hätte mit dem Risiko der Überhitzung der Maschine weiterfahren müssen.

 

Bestandteile

Das Volvo Penta – N2K Interface besteht aus Hardware- und Softwarekomponenten.

Hardware

Um das Interface physisch mit dem VP-CAN-Bus des Motors zu verbinden, benötigt man ein Adapterkabel mit Y-Verzweigung. Die Verbindung des Kabels vom MDI zum Drehzahlmesser sind sog. 6-polige ‘Deutsch-Stecker’, male und female. ( z.B. https://www.kabelschuhe-shop.de/KALI-1206-DEUTSCH-DT-Steckverbinder-Set-6-polig). Man verbindet die sechs Pins des Steckers mit denen der Buchse. Zusätzlich leitet man 12v+, GND Can high und CAN low aus.

Um das Interface physikalisch mit dem N2K-Bus (entweder Seatalk NG oder NMEA2000) zu verbinden, benötigen man ebenfalls ein geeignetes Kabel. Mein Interface ist mit einem Raymarine Seatalk NG-Netzwerk verbunden. Also habe ich ein STNG-Standard-Spurkabel durchgeschnitten, um ein Kabel mit einem Stecker und einem offenen Ende zu bekommen.

 

CAN-Bus-Transceiver

Um das Interface auf Protokollebene mit dem CAN-Bus des Motors zu verbinden, verwende ich einen SPI-MCP2515-CAN-Transceiver-TJA1050. Dieser Transceiver wird von der MCP_CAN_lib von Cory J. Fowler gesteuert.

Um das Interface auf der Protokollebene an den N2K-Bus anzuschließen, verwende ich einen Waveshare SN65HVD230. Dieser Transceiver wird von der NMEA2000-Bibliothek von Timo Lappalainen gesteuert.

Da der ESP32 eine Spannungsversorgung von 5V benötigt und der CAN-Bus mit 12V versorgt wird, benötigt man zusätzlich einen Stepdown-Converter auf 5V.

 

 

Software

Den Code gibt es hier: https://github.com/buhhe/VolvoPenta-N2K_Interface

Er basiert auf Code von:

Timo Lappalainen https://github.com/ttlappalainen

Andreas Koritnik https://github.com/AK-Homberger

Cory J. Fowler https://github.com/coryjfowler

 

Diese Bibliotheken werden benötigt:

https://github.com/coryjfowler/MCP_CAN_lib

https://github.com/ttlappalainen

 

 

Volvo Penta – N2K Interface: Vorgehen

  1. Besorgen Sie sich die Hardwarekomponenten
    • ESP32 Entwicklungsmodul
    • MCP2515-CAN-Transceiver
    • SN65HVD230 CAN-Sender/Empfänger
    • DC-DC Abwärtswandler 5V
    • Ein Paar 6-polige “Deutsch-Stecker” (Stecker/Buchse)
  2. Erstellen Sie das Y-Verzweigungskabel. (Siehe Seite 3)
  3. Führen Sie die Verkabelung durch. (Siehe Seite 4)
  4. Besorgen Sie die benötigten Bibliotheken.
  5. Kompilieren und flashen Sie die Software.
  6. Installiere alles auf deinem Boot.
  7. Viel Spaß!

 

Anschluss des Interface an den VP CAN-Bus

 

Der Drehzahlmesser mit integrierter LCD-Anzeige wird über einen Kabelbaum und einen 6-poligen Deutsch-Stecker mit dem MDI des Motors verbunden. Die Verbindung heißt bei Volvo Penta „Multi-Link“. Die Daten werden als CAN-basierte J1939-Datagramme bereitgestellt.

 

 

Für den Anschluss an den Bus benötigten man ein Y-Verzweigungskabel. Das Kabel wird zwischen dem Stecker des Kabelbaums und dem Tachometer angeschlossen.

 


Pin-Belegung:

  • 1 nicht belegt
  • 2 CAN low
  • 3 nicht belegt
  • 4 Minus
  • 5 CAN high
  • Plus, 5V

 

Verkabelung

 

Ventus W132 – Umbau zum NMEA2000 Windsensor

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb.: Außenansicht

  • NMEA0183 und NMEA2000
  • Nur drei weitere Teile (ESP32, Spannstift, CAN BUS) nötig
  • Winkelauflösung in 0,1°-Schritten
  • Darstellung der Daten im Browser möglich (im AP-Modus auch ohne fremdes Netzwerk)
  • Code vollständig kommentiert auf GitHub

Dieses Projekt beschreibt den Umbau des Ersatzwindmessers Ventus W132 mit minimalem Materialaufwand. Das gesamte Projekt lässt sich, inklusive Kauf des W132, für weniger als 50€ umsetzen.

Die ausführliche Dokumentation zum Umbau sowie die kommentierte Software befinden sich auf GitHub: https://github.com/jukolein/W132.

Der entsprechende Thread im SegelForum befindet sich hier: https://www.segeln-forum.de/board194-boot-technik/board195-open-boat-projects-org/81141-boots-windsensor-ventus-w132-f%C3%BCr-50-euro/.

Da hierbei bereits bestehende Hardware modifiziert wird, entfallen viele kritische Arbeitsschritte wie das Drucken des Gehäuses oder die Nachbearbeitung für Witterungsbeständigkeit.

Die Windgeschwindigkeit wird über einen Hallsensor, die Richtung mittels magnetischem Rotationssensor gemessen. Dies ermöglicht gerade hinsichtlich der Windrichtung extrem genaue Angaben.

Die Größe des Gehäuses erlaubt den Einsatz eines ESP32, womit die Erstellung und Aussendung nicht nur von NMEA0183-Datagrammen via WiFi, sondern erstmals auch von NMEA2000-Daten möglich wird.

Zusätzlich können die Daten grafisch im Browser dargestellt werden. Über eine Einstellungsseite kann etwa der Sensor kalibriert oder das Aussenden von NMEA2000-Daten aktiviert/deaktiviert werden .

Auch eine Softwareaktualisierung  über das Netzwerk ist möglich.

 

Abb.: Schaltbild

 

Abb.: Materialliste

 

Abb.: Einstellungen

Wetterdaten per SMS und Satellit

Philippe aus Frankreich hat uns ein interessantes Projekt vorgestellt wie man als Blauwasser-Segler mit einem günstigen Satelliten-Kommunikationsgerät per SMS an Wetterdaten an jedem Punkt der Erde herankommt. Wir wollen es hier einmal vorstellen. Wer weitab vom Festland mit seinem Boot unterwegs ist benötigt täglich verlässliche Wetterdaten zur Routenplanung. Die Wetterdaten lassen sich auf unterschiedliche Art und Weise beschaffen:

  • Internetverbindung über Satellit
  • Kurzewelle Pactor-Verbindung zum Festland
  • Kurzewelle Wetterfax
  • Langwelle Kurzform-Wetterdaten

Im Zeitalter von überall verfügbaren Internet besteht aber der hohe Kostenaufwand für eine Satellitenanlage mit entsprechendem Datendurchsatz. Sowohl die Hardware ist teuer als auch die Datenvolumen. Funkgeräte für Kurzwelle sind ähnlich teuer wie Satellitenanlagen und benötigen viel Strom. Allen ist gemeinsam, dass sie viel Platz und Energie für die Datenübertragung der Wetterdaten benötigen.

Abb. Kurzwelle-Wetterdaten

Philippe hat einen günstigen und einfachen Weg gefunden wie man mit einem günstigen Satelliten-Kommunikationsgerät Wetterdaten beziehen kann. Satelliten-Kommunikationsgeräte wie das InReach mini  von Garmin sind kleine Satelliten-Handys mit eingeschränkter Funktionalität mit denen kein Sprachbetrieb möglich ist, aber ein niedrig priorisierter langsamer Datenaustausch möglich ist. Solch ein Gerät bekommt man ab ca. 350 Euro. Es lassen sich damit bidirektional Kurznachrichten wie SMS, Mail, versenden. Neben der Übertragung der GPS-Position als Position-Tracking kann das kleine Gerät auch zum Empfang einfacher Wetterdaten und als SOS-Notrufsender verwendet werden. Aufgrund der eingeschränkten und einfachen Funktionalität werden zum Gerät günstige Datenvolumen angeboten mit einer Monatsgebühr von ca. 60 Euro.

Abb. InReach mini Satelliten-Kommunikationsgerät

Die Grundidee der Wetterdatenbeschaffung besteht darin eine SMS mit der GPS-Position und dem gewünschten Geobereich der Wetterdaten an eine Landstation zu senden, die dann als Antwort die gewünschten aktuellen Wetterdaten oder Daten der Wettervorhersage per SMS zurücksendet. Als Landstation fungiert ein gewöhnliches Handy, dass mit Hilfe einer Server-App auf SMS Nachrichten antworten kann und Wetterdaten aus dem Internet bezieht. Eingehende SMS mit Anfragen werden vom Server bearbeitet und die nötigen Wetterdaten bei stormglass.io herunter geladen und in einzelne SMS Mitteilungen zerlegt und zum anfragenden Handy zurück gesendet. Da eine SMS-Nachricht nur 160 Zeichen übertragen kann, müssen die Anfragedaten und Antwortdaten entsprechend kompakt aufbereitet werden. Dazu hat Philippe drei Apps geschrieben die eine Kodierung bzw. Dekodierung der SMS-Nachrichten ermöglichen als auch eine Serveranwendung zur Bereitstellung der Wetterdaten. Als Anfragedaten werden der aktuelle GPS-Standort, der Seebereich und die Art der Darstellung in Form eines Distanzfaktors übermittelt. Mit dem Distanzfaktor kann die Darstellungsform der Wetterdaten verändert werden. Entweder auf den Orts zentriert oder vorausschauend in Fahrtrichtung.

Abb. Funktion des Distanzfaktors (links: 0.0, mitte: 0.5, rechtes: 1.0)

Mit der Kodierung-App  werden die Anfragedaten Base64 kodiert und in Form eines Text-Strings ausgegeben, den man in das Satelliten-Kommunikationsgerät InReach mini übertragen kann. Für das InReach mini gibt es eine weitere App mit der man die Bedienung des Gerätes vornehmen und die SMS übertragen kann. Nach einer gewissen Antwortzeit vom Satellitensystem, die zwischen 5…20 min dauern kann, erhält man eine gewisse Anzahl von Base64 kodierten SMS-Antworten die man wieder mit der Dekodierungs-App umwandeln kann.

  

Abb. Kodierungs- und Dekodierungs-App

Abb. Nicht dekodierte SMS-Antworten für mehrere Datenpunkte

Die SMS-Antworten enthalten folgende Informationen in Form von KML-Daten:

  • Zeitstempel ( YYYY-MM-DD HH:mm UTC)
  • Luftdruck in hPa
  • Sicht in Seemeilen
  • Wolkendecke in 1/8 (0 = klarer Himmel, 8 = bedeckter Himmel)
  • Lufttemperatur in Grad Celsius
  • Richtung (Wind aus in °) und Windgeschwindigkeit mit Böen in kt
  • Richtung (Strömung kommend in °) und Geschwindigkeit der Meeresströmung in kt
  • Wellenrichtung und Dünung in Grad (ausgehend in °)
  • Wellenhöhe (gemessen zwischen Kamm und Tal) in Metern
  • Wellenperiode (Anzahl der Sekunden, die den Durchgang von 2 aufeinander folgenden Spitzen trennen) in Sekunden

Die KML-Daten lasen sich dann in beliebigen Programmen wie Google Maps, Google Earth o.ä. einfügen und visualisieren. Es gibt auch kostenlose Anwendungen für Android und iOS wie z.B. Guru Maps mit denen sich die Wetterdaten auch in Offline-Karten darstellen lassen.

Abb. Dekodierte KML-Daten

Abb. Guru Maps

Abb. Informationen des Datenpunktes

Zusammenfassung

Mit dem von Philippe vorgestellten System können kostengünstig Wetterdaten via Satellit empfangen werden. Das Equipment besteht aus einem kleinen Satelliten-Kommunikationsgerät und einigen Apps sowie einem Handy mit Internetzugang, das als Landstation zur Bereitstellung der Wetterdaten dient. Die Apps übernehmen sowohl die Kodierung als auch Dekodierung der Daten und ermöglicht die Anzeige der Wetterdaten in einer Offline-Karte auf einem Handy oder Tablett. An dieser Stelle sei aber erwähnt, dass keine umfangreichen großräumigen und detaillierten Wetterdaten empfangen werden können wie bei offiziellen Wetterkarten. Jede Antwort-SMS entspricht dann genau einem Datenpunkt in der Wetterkarte. Sinnvoller Weise kann man nur wenige Wetterdaten abrufen, die das nähere Umfeld abdecken in dem man sich mit seinem Boot bewegt. Das vorgestellte System lässt sich gut auf kleinen Booten verwenden wo wenig Platz zur Verfügung steht. Neben der SOS-Notruffunktion kann das InReach mini auch noch für andere Arten der Kommunikation oder des Trackings verwendet werden und ist eine sinnvolle Ergänzung des Equipments an Bord. Dadurch das die Server-App auf einem eigenen Handy an Land läuft, hat man das komplette System in der Hand und ist nicht auf fremde teure Dienstleister angewiesen.

Wer möchte, kann die Abfrage der Wetterdaten auch mit einem gewöhnlichen Handy machen und so die gesamte Funktionalität auch ohne Satelliten-Kommunikationsgerät testen. Dazu schickt man eine SMS an das Handy mit der Server App und erhält die Wetterdaten als Rückantwort.

Das ist eine sehr, sehr coole Idee…. Viel Spaß beim Testen.

Link

Webseite: https://mikeno.fr/meteo-sms-en.html

Quellcode und App für Android

Quellcode für iOS

 

Windsensor Yachta

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb: Windsensor Yachta

Der Windsensor Yachta ist eine Weiterentwicklung eines Windsensors vom User Yachta der bei Thingiverse vorgestellt wurde. Das technische Funktionsprinzip basiert auf einem Hallsensor für die Messung der Windgeschwindigkeit und auf einem magnetischen Rotationssensor zur Messung der Windrichtung. Udo aus dem Segeln-Forum hat die Idee aufgegriffen und einige Verbesserungen am Windsensor vorgenommen. Das Schalenrad des Windrades wurde in mehrere Teile zerlegt, so dass der 3D-Druck einfacher wird. Zusätzlich hat er die Elektronik überarbeitet. Dabei ist ein anderer magnetischer Rotationssensor ausgewählt worden, der einfacher zu beschaffen ist. Als Auswerte- und Kommunikationseinheit wird der bei Bastlern beliebte ESP-12E verwendet. Neben dem Yachta Windsensor hat Udo auch noch einen weiteren Windsensor neu konstruiert und einige Punkte im mechanischen Aufbau weiter verbessert. Die Zielsetzung bei Udos Konstruktionen war, dass sich die Windsensoren einfach nachbauen lassen ohne Spezialteile aus Metall zu benötigen. Alle nötigen Teile kann man als Hobbyist im Fachhandel und im Baumarkt beziehen.

Sowohl Udo als auch Jukolein haben eine Firmware für den Windsensor Yachta geschrieben die unterschiedliche Funktionalitäten aufweisen. Mit beider Firmware können die Messdaten als NMEA0183 Telegramme per WiFi übertragen und in entsprechender Software wie z.B. AVnav, OpenCPN verarbeitet werden. Bei der Firmware von Jukolein können die Messdaten auch auf einer Webseite angezeigt werden. Die Firmware von Norbert die für den Windsensor WiFi 1000 verwendet wird, kann auch für den Windsensor Yachta genutzt werden. Diese Firmware ist universell und unterstützt auch andere kommerzielle und nicht kommerzielle Windsensoren. Von der Funktionalität her bietet diese Firmware die größten Möglichkeiten und besitzt ebenfalls eine Weboberfläche zur Visualisierung und Bedienung.

Abb: Platine Windsensor Yachta

Abb: Eingebaute Platine

Die Platine von Udo wurde noch einmal von Norbert überarbeitet und in einigen Punkten verbessert. Die Platine kann unkompliziert über das Internet bei Aisler in kleinen Stückzahlen bezogen werden. Alle notwendigen Fertigungsdaten sind bei Aisler hinterlegt. Der Bestellvorgang ist denkbar einfach.

Dieser Windsensor verdeutlicht sehr anschaulich welche Möglichkeiten DIY-Projekte mit Open Software und Open Hardware bieten. Ohne die Offenheit wäre eine Weiterentwicklung und Verbesserung durch unterschiedliche Personen kaum möglich gewesen.

Eigenschaften Windsensor Yachta

  • Messung von Windspeed 0…75 kn und Windrichtung 0…360°
  • Winkelauflösung 0,1°
  • Robuste Mechanik (3 Kugellager)
  • Ohne Spezialteile aus Metall
  • Alle Bauteile findet man im Fachhandel und Baumarkt
  • Einfache 3D-Teile
  • Gewicht ca. 210g
  • Wetterfest und UV-stabil
  • Keine Kabel für Sensorsignale notwendig
  • Digitale Signalübertragung per WiFi
  • Versorgungsspannung 6…25V
  • Stromaufnahme 30mA @ 12V (0,36W)
  • 12V Versorgung  über Toplicht möglich
  • ESP8266 für WiFi und Datenübertragung
  • Aktualisierungsrate 1 Messwert pro Sekunde
  • Kein Einbauinstrument notwendig
  • Visualisierung in OpenPlotter auf einem  Laptop, Handy oder Tablett
  • Webinterface zur Bedienung
  • Keine Extrasoftware notwendig (Display ist die Anzeige)
  • Unterstützt das NMEA 0183 Protokoll
  • Firmwareupdate via Internet möglich

Firmware Eigenschaften

Udo Firmware

  • Webkonfiguration für IP Einstellungen Port 80
  • UDP Port 2948
  • UDP NMEA0183 Telegramm MWV

Jukolein Firmware

  • Webkonfiguration und grafische Visualisierung
  • Webserver Port 80
  • UDP Port 8080
  • TCP Port 8080
  • UDP/TCP NMEA0183 Telegramm MWV
  • Firmwareupdate OTA via Arduino IDE

Wifi 1000 Firmware

  • Webkonfiguration und grafische Visualisierung
  • Webserver Port 80
  • TCP Port 6666
  • TCP NMEA0183 Telegramme MWV, VWR, VPW
  • TCP NMEA0183 kundenspezifische Telegramme INF, WST, WSE
  • JSON Schnittstelle über http://192.168.4.1/json
  • Firmwareupdate via Internet über GitLab
  • Android App

Nutzung

Der Windsensor Yachta kann gut in Kombination mit einem Raspberry Pi mit z.B. OpenPlotter oder AVnav benutzt werden. Der Raspberry Pi stellt dann einen Access Point im WiFi Netzwerk zur Verfügung. Der Windsensor verbindet sich mit dem WiFi Netzwerk und überträgt die NMEA0183 Datentelegramme zum Raspberry Pi. Alle Endgeräte verbinden sich ebenfalls mit dem WiFi Netzwerk und könne die Messdaten die von OpenPlotter oder AVnav aufbereitet wurden grafisch anzeigen.

Abb: Verbindungsmöglichkeiten

Eine direkte Kommunikation vom Handy mit dem Windsensor ist ebenfalls möglich, wenn keine Messdatenverarbeitungs-Software benutzt wird. In der Firmware des Windsensors ist ein kleiner Webserver implementiert der die Messdaten direkt anzeigen kann. Die Leistungsfähigkeit ist aber etwas geringer als bei einem Raspberry Pi. Es lassen sich sinnvoller Weise nur 2…3 Endgeräte gleichzeitig mit dem Windsensor verbinden und Daten anzeigen. Des weiteren gibt es auch eine Android-WebApp mit der sich die Messdaten anzeigen lassen. Die WebApp ist ein rahmenloser WebBrowser der die Inhalte der Webseiten anzeigt und gleichzeitig dafür sorgt, dass sich der Bildschirm des Handys nicht automatisch ausschaltet, solange die App läuft.

Nachbau

Für den Nachbau wurde ein Repository bei GitLab angelegt. Dort sind alle Fertigungsunterlagen zu finden. Die mechanische Zusammenbauanleitung besteht aus einer Bilderserie, die die einzelnen Schitte des Zusammebaus zeigen. Am einfachsten ist es, wenn man sich das komplette Repositors als Zip-Datei herunterläd. Die Platine kann mit Hilfe der Gerber-Daten bei einem beliebigen Platinenhersteller in Auftrag gegeben werden. Der einfachste Weg der Platinenbestellung geht über Aisler, da dort schon alle Gerber-Daten hinterlegt sind. Eine kleine Serie von bestückten und programmierten Platinen wurde aufgelegt. Bei Interesse können Sie hier eine Nachricht über das Kontaktformular hinterlassen.

Achtung: Wer die Platine selber bestückt, sollte darauf achten, dass die Ausgangsspannung des DC/DC-Wandlers vor dem Einlöten auf 3.3V eingestellt wird. Anderenfalls wird sonst der ESP-12E durch Überspannung zerstört.

Eine ausführliche Zusammenbauanleitung ist hier zu finden: https://open-boat-projects.org/de/zusammenbauanleitung-windsensor-yachta/

 

Universelle Windsensor Firmware

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Die universelle Windsensor Firmware unterstützt verschiedene Windsensoren. Sie basiert auf der Firmware zum DIY Windsensor WiFi 1000 und wurde entsprechend um weiter Windsensor-Typen erweitert. Dabei können unterschiedliche Sensorarten, wie analog, magnetisch und digital angebunden werden. In der Firmware wird der entsprechende Windsensor ausgewählt. Weitere Einstellungen müssen nicht vorgenommen werden. Durch die Unterstützung kommerzieller Sensoren können deren Produkteigenschaften verbessert werden, da neben der kabelgebunden Datenübertragung auch eine Übertragung per WiFi möglich ist.

Folgende DIY Windsensoren werden derzeit unterstützt:

WiFi 1000 (ESP8266, 2x Hallsensor)
Yachta V1.0 (ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)
Jukolein V1.0 (ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)
Ventus W132 (mit Änderungen am Windsensor, externes Board, ESP8266, 1x Reed-Schalter, 1x AS5600 Magnetfeld-Rotations-Sensor, 1x BME280 Umweltsensor)

Zukünftig sollen folgende kommerzielle Windsensoren dazu kommen:

Davis Vintage Pro 2 (keine Änderungen am Windsensor, externes Board, ESP32, 1x Analog, 1x Hallsensor)
NASA / Clipper Windsensor (neues PCB-Borad im Windsensor, ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)

Anschluss-Schema

Abb: Wemos D1 mini

Eingangsbelegung

Sensor-Typ Windgeschwindigkeit Windrichtung Temperatur
WiFi 1000 GPIO5 Hall-Sensor GPIO4 Hall-Sensor GPIO12 (1Wire) optional
Yachta V1.0 GPIO2 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire)
Jukolein V1.0 GPIO2 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire)
Davis Vintages Pro 2 GPIO7 Hall-Sensor A0 (Analog) GPIO12 (1Wire) optional
Ventus W132 GPIO14 Reed-Schalter*** GPIO5 (SCL) AS5600* ,BME280**

GPIO4 (SDA) AS5600* ,BME280**

GPIO12 (1Wire) optional
NASA/Clipper V1.0 GPIO7 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire) optional

Anmerkung: *AS5600 I2C-Adresse 0x36, ** BME280 I2C Adresse 0x76, ***Pullup 10k und 100n Entstör-Kondensator

Fernbedienung für Raymarine Evo Pilot

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb: Fernbedienung für Raymarine Evo Pilot

Der User matztam aus dem segeln-forum hat eine Fernbedienung für den Raymarine Evo Pilot vorgestellt. Die Fernbedienung funkt auf 433 MHz und setzt die empfangenen Signale in das NMEA2000 Netzwerk um. So lassen sich die Einstellungen für den Autopiloten von Raymarine sehr komfortabel mit vornehmen. Die Fernbedienung besteht aus zwei Teilen. Einmal aus dem Hand-Bedienteil und zum Zweiten aus einem Funk-Empfänger QIACHIP RX480E / TX118SA. Das Gehäuse der Fernbedienung besteht aus 3D-gedruckten Teilen. Die gummierten Tasten ebenso. Die Front- und Rückseite wurden aus Plexiglasplatten ausgelasert. Ein Arduino STM32F103 dekodiert die empfangenen Funksignale und leitet sie dann in das NMEA2000 Netzwerk ein. Die Fernbedienung besitzt eine kontaktlos ladbare Batterie (Qi) wie auch Handys aufgeladen werden können.

Bei Github findet man zum Nachbau der Fernbedienung alle nötigen Unterlagen.

https://github.com/matztam/raymarine-evo-pilot-remote

Die Fernbedinung besitzt folgende Merkmale:

  • Funktechnik 433 MHz
  • Tasten: +1, -1, +10, -10, Stand By, Auto, Wind, Track
  • LiPo-Akku
  • Qi Ladetechnik (kontaktlos)
  • Empfangseinheit
    • Arduino STM32F103
    • NMEA2000
    • Bussteckverbinder

Abb: Gehäuse-Stack

Abb: Gummitasten 3D gedruckt

Abb: Gehäuse-Zwischenteile

Abb: Platine mit Tasten

Abb: Qi-Ladeelektronik