Hacking an Airmar DST800 Ultrasonic Transducer

Letztes Jahr musste ich das Echolot wegen eines Winterlager-Schadens ersetzen – mit dem Resultat dass sich das gute Stück nicht mehr kalibrieren lässt: Stellt man das Offset zwischen Kiel und Sensor ein, so stellt sich das sofort wieder zurück. Nervend!

Großes Rätselraten – und auf Nachfrage beim Händler meines Vertrauens wurde mir klar, dass wegen eines Firmwareupdates diese Sensoren nicht mehr mit meinem recht alten NMEA Netzwerk bzw. der Bildschirme kompatibel ist. Hintergrund: Der Offsetparameter wird nicht wie erwartet im Display hinterlegt, sondern im Sensor Eeprom gespeichert. Seltsame Architekturentscheidung – aber so ist es nun einmal.

Da ich den alten Sensor noch rumliegen hatte, hat mich die Neugier gepackt. Also schnell ein ESP32 (da dieser nicht nur Wifi sondern auch CAN unterstützt) genommen und ein flugs kleines NMEA2000 Netzwerk simuliert.

Can-H und Can-L mit jeweils 120 Ohm terminiert, und ein kleiner SN65HVD230 als entkoppelter Tranceiver mit 3.3V Kompatibilität angeschlossen.

Dank der NMEA2000 Library von Timo Lappalainen ist die ganze Geschichte nicht sonderlich komliziert – und schon kann ich die NMEA Nachrichten mitlesen, die von / zum Sensor fliegen:

31132 : Pri:6 PGN:128275 Source:35 Dest:255 Len:14 Data:FF,FF,FF,FF,FF,FF,15,34,2D,0,15,34,2D,0
31140 : Pri:6 PGN:128275 Source:35 Dest:255 Len:14 Data:FF,FF,FF,FF,FF,FF,15,34,2D,0,15,34,2D,0
31622 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:4,C0,5D,75,FF,7F,FF,FF
32122 : Pri:3 PGN:128267 Source:35 Dest:255 Len:8 Data:0,84,1,0,0,50,FB,FF
32124 : Pri:2 PGN:128259 Source:35 Dest:255 Len:8 Data:2,0,0,FF,FF,FF,FF,FF
32125 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:5,C0,5D,75,FF,7F,FF,FF
32131 : Pri:6 PGN:128275 Source:35 Dest:255 Len:14 Data:FF,FF,FF,FF,FF,FF,15,34,2D,0,15,34,2D,0
32622 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:6,C0,5D,75,FF,7F,FF,FF
32737 : Pri:5 PGN:130312 Source:22 Dest:255 Len:8 Data:1,1,4,7D,73,FF,FF,FF
32737 : Pri:5 PGN:130311 Source:22 Dest:255 Len:8 Data:1,C4,7D,73,FF,7F,FF,FF
32739 : Pri:5 PGN:130310 Source:22 Dest:255 Len:8 Data:1,C1,70,FF,FF,FF,FF,FF
33123 : Pri:3 PGN:128267 Source:35 Dest:255 Len:8 Data:1,84,1,0,0,50,FB,FF
33124 : Pri:2 PGN:128259 Source:35 Dest:255 Len:8 Data:3,0,0,FF,FF,FF,FF,FF
33125 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:7,C0,67,75,FF,7F,FF,FF
33132 : Pri:6 PGN:128275 Source:35 Dest:255 Len:14 Data:FF,FF,FF,FF,FF,FF,15,34,2D,0,15,34,2D,0
33623 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:8,C0,67,75,FF,7F,FF,FF
34123 : Pri:3 PGN:128267 Source:35 Dest:255 Len:8 Data:FF,FF,FF,FF,FF,50,FB,FF
34124 : Pri:2 PGN:128259 Source:35 Dest:255 Len:8 Data:4,0,0,FF,FF,FF,FF,FF
34125 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:9,C0,67,75,FF,7F,FF,FF
34132 : Pri:6 PGN:128275 Source:35 Dest:255 Len:14 Data:FF,FF,FF,FF,FF,FF,15,34,2D,0,15,34,2D,0
34202 : Pri:7 PGN:130944 Source:35 Dest:255 Len:20 Data:87,98,FF,8,1,0,2,0,3,0,4,0,5,0,6,FF,7,0,8,0
34623 : Pri:5 PGN:130311 Source:35 Dest:255 Len:8 Data:A,C0,5D,75,FF,7F,FF,FF
35123 : Pri:3 PGN:128267 Source:35 Dest:255 Len:8 Data:FF,FF,FF,FF,FF,50,FB,FF

Die Dekodiererei geht von Hand gut aber ist umständlich. Also wird flott auf das Actisense Format umgestellt, damit mittels NMEA Reader wesentlich praktischer auf die COM Schnittstelle zugegriffen werden kann.

Und da sieht man schon PGN 128267, welches als Tiefeninformation im NMEA2000 Standard definiert ist.

Besonders spannend wird es hier bei Segment / Feld Nummer 3 – laut NMEA ein Offset Wert. Also wird das kurzerhand mal ausgelesen und tatsächlich steht hier -1,2 Meter im Eeprom. Voila!

Jetzt nur noch ein paar Zeilen geschrieben, die PGN 128267 mit dem richtigen neuen Offset versorgt. Das Funktioniert über die PGN 126208 (” “Complex Request Group Function”) – und schon bin ich in der Lage den Sensor wieder mit meinem alten Material zu verwenden :)

Leave A Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.