Raspberry Schnitstellen Openplotter / signalk >>MarineControlServer

  • Hello everyone!


    I'm new to all of this boat thing and I recently bought a sailboat that has a MCS with a PI4 on it.


    I made it work with the AIS data to read on my Navionics and it works pretty well (McMurdo Smartfimd M10 - NMEA0183).


    Now the problem is a little bit darker: I need to read my depth transducer signal.


    I have a Nexus Depth Transducer, the old one, maybe 199X, with a blue dot, I think it is 185khz (not sure)


    Black_box_blue_dot.jpg


    Is it possible to read that kind of signal on the MCS so I can display the value?


    I have tried the digital input with one of the wires that comes to the display - my display shows depth, speed and temperature - I discovered that the wire I was reading was the temperature sensor, I got a timestamp but just it


    I really need to make it work as there is no more display replacement and mine is dead (just the display, the rest works)


    Any tips in how to deal with it and, if possible to read, how do I configure the MCS/SignalK would be great!


    Thanks!!


    MCS V1.5

    RPI 4 + open plotter os

    SignalK 2.6.2

    Nexus Depth Transducer

    Display Sea Data Silva Star (depth, speed and water temperature log)

  • Das wird wohl etwas schwierig, ich denke die NMEA Übersetzung macht hier sowas wie ein Server.


    Auf jeden Fall hat den wohl schon jemand analysiert:

    | Details | Hackaday.io
    <h1>Background</h1> <p>My wife and I race and cruise our 1987 J/35 sailboat on Lake Erie . The J/35 is an amazing boat and a very competitive racer that…
    hackaday.io


    und auch ein Programm geschrieben für einen Arduino um die Daten in NMEA zu übersetzen. Also mit Softwareverständniss sollte das zu machen sein.


    Viel Erfolg, ich würd da aber eher einen neuen Transducer einbauen.

  • Hi,


    Herzlich willkommen hier im Forum. Wenn Du im Boot den Nexus Classic Server hast, dann kannst Du darüber die Daten mit dem MCS auslesen. Im vorigen Link findest Du ein Bild dazu. Du musst die Klemmen OUT 20 mA und RETURN GND von NMEA0183 benutzen.


    4406331618865907560.jpg


    Man könnte die Rohsignale der Sensoren auch selber mit einem Wemos D1 Mini aufbereiten und dann via NMEA0183 zur Verfügung stellen. Es soll sich um Frequenzsignale handeln, die proportional zum Messwert sind. Das lässt sich Recht einfach umwandeln.


    Am Nexus Server werden alle Sensoren angeschlossen und die Informationen können über RS485 an mehrere Multifunktionsdisplays ausgegeben werden. Bei normalen Anzeigen funktioniert das vermutlich nicht, da sie die Sensorsignale direkt umwandeln und anzeigen. Dann bleibt nur der Weg über den Wemos.

  • Hello! Thanks for the reply

    I did read that blog like 3 times but this is way too much for me to understand with the few data provided in the blog hehe

    The new transducer is not an option because I'm in a budget 😥

  • Hi! Thank you very much for the reply


    I do not have that server and I cannot find it anywhere to buy, unfortunately


    About that WeMos D1 Mini, could you provide more data in how to do it?

    Luckily I have 2 or 3 of it lying around here in the boat

    Would be wonderful if you could help me in this project or point me the direction!!!

    Btw, I'm a programmer, so I can handle it I think

  • Hier ist ein Füllstandsensor beschrieben.



    DIY Ultraschall Füllstandsmessung – open-boat-projects.org


    Anstatt des Füllstandes kann man auch andere Daten nach NMEA0183 konvertieren. Man benötigt dann eine Frequenzmessung und eine Art Kalibrierung für den Messwert. Die Arduin-Lib hat entsprechende Funktionen mit denen man das machen kann.

  • Wollte mich mal ran machen das Postinstall auf 64 bit und bookworm anzupassen. Hat schon jemand Erfahrungen gesammelt ob SignalK sauber läuft? Dann wäre die einzige Erweiterung für mich statt in /boot/config.txt in /boot/firmware/cofig.txt zu schreiben?

    Gruß

    Thomas

  • Hat schon jemand Erfahrungen gesammelt ob SignalK sauber läuft?

    Moinsen,

    auf dem Schreibtisch mit Daten aus dem Simulator laufen die seriellen Schnittstellen des MCS auf Bookworm mit OP4 Beta. Allerdings läuft das Script zum Herunterfahten nicht, das läuft aber auf Bullseye mit 64bit auch nicht.

  • Und was ist mit den anderen Schnittstellen z,B. can Daten Ein und Ausgaben sowie one Wire und I2C. Wenn du in die Liste schaust funktionieren viele Sachen von Signalk noch nicht mit 64 bit.

  • Werde mir mal ein 64bit System fertig machen und mal schauen. Muss das System bei mir auf dem Boot eh mal wieder updaten, da war ich schon 3 Jahre nicht mehr dran, das läuft seid dem einfach so vor sich hin... :Mauridia_44:


    Und was ist mit den anderen Schnittstellen z,B. can Daten Ein und Ausgaben sowie one Wire und I2C. Wenn du in die Liste schaust funktionieren viele Sachen von Signalk noch nicht mit 64 bit.

    Der CAN selbst sollte ja eig. keine Probleme machen, da vom System übernommen. Auch die 1-wire Sensoren werden beim MCS Plugin "nur" aus dem System übernommen. Die werden vom System ausgelesen und erkannt. Mit der Einbindung hat SignalK ja nichts zu tun. Das Plugin des MCS selbst macht ja nicht viel außer Postinstall also Systemeinrichten. Sonst wird es ja nur benötigt um die 1-wire Daten vom System in SignalK zu "Schaufeln" und ggf. Umrechnungen für die 4 digitalen Eingänge. (Drehzahlberechnung usw.)



    Moinsen,

    auf dem Schreibtisch mit Daten aus dem Simulator laufen die seriellen Schnittstellen des MCS auf Bookworm mit OP4 Beta. Allerdings läuft das Script zum Herunterfahten nicht, das läuft aber auf Bullseye mit 64bit auch nicht.

    Das Script von dem alten OP Plugin oder von SignalK? Das OP-Plugin wird ja schon ewig nicht mehr gepflegt nach der Integration direkt in SignalK... sind da Unterschiede beim systemd im 64bit??

  • Habe es bei mir mal ausprobiert und das schreiben der config.txt nach einem check ob /boot/firmware existiert angepasst. Somit sollte es auch auf allen anderen Systemen weiter laufen. Schnittstellen usw wurden alle sauber angelegt. (CAN, 1-wire, I2C, Uart) Sehe also irgendwie keine Probleme warum etwas nicht funktioniert. I2c, 1-wire und Uart habe ich getestet. CAN schaue ich noch einmal wenn ich Zeit habe und dann update ich das Plugin.

    Das ist eig. das einzige was ich angepasst habe: https://github.com/Thomas-GeDa…ec8e64/postinstall.js#L38


    Und was ist mit den anderen Schnittstellen z,B. can Daten Ein und Ausgaben sowie one Wire und I2C. Wenn du in die Liste schaust funktionieren viele Sachen von Signalk noch nicht mit 64 bit.

    Welche Liste? Wie kommst Du zu der Annahme das irgendetwas nicht sauber läuft mit SignalK? Bei mir ging es auf anhieb. Frisches Bookworm 64bit und SignalK aufgespielt.... Lief direkt alles.

  • Was sich noch rausgestellt hat; rpi-gpio läuft auch nicht mehr richtig auf Bookworm. (Wird für das lesen der Eingänge In1-In4 genutzt) Scheint an der Portnummerierung zu liegen. Hab ich jetzt auf gpiozero geändert was erstaunlich performant läuft. Bis 10kHz liest er die Eingänge sehr sauber was für die meisten hochdrehenden Motore (Drehzahl) wohl reichen sollte...

    pigpio wird für den Pi5 noch nicht unterstützt da neuer Chip. Aber "nur" für ST1 wichtig was direkt in Signalk implementiert ist. Aber da wird nur warten helfen bis es Updates für pigpio gibt....

  • Habe alles aktualisiert und auf Bookworm 64bit getestet. Wenn es irgendwo Probleme gibt, gern melden.

    Thomas

  • Hallo,

    ich habe mir ein MCS bestellt, befinde mich aber noch ganz an Anfang der Schnittstellen Thematik.

    Beim Open Boat Projekt wurde dieser Batteriemonitor (https://open-boat-projects.org/de/wifi-batteriemonitor/) vorgestellt, allerdings ist einiges an Lötarbeit zu verrichten und es wird ein Umweg über ein D1 Mini genommen.

    Ist es möglich den Batteriemonitor direkt an das MCS anzuschließen um z.B. die Verbraucherbatterie zu überwachen?

    Wenn ja, wie schaut die Verkabelung aus?

    Wäre, denke ich, eine günstige Möglichkeit die Batterie in das System zu bekommen.

    Ich weiß nicht ob hier Links zu einem Shop erlaubt sind, deshalb ein paar Screenshots im Anhang.

    Gruß

    AndiScreenshot_2024-04-23-13-10-40-706_com.android.chrome-edit.jpg

    Screenshot_2024-04-23-13-10-56-432_com.android.chrome-edit.jpg

    Screenshot_2024-04-23-13-08-21-413_com.android.chrome-edit.jpg

    Screenshot_2024-04-23-13-07-46-889_com.android.chrome-edit.jpg

    Edited once, last by Hartholz ().

  • Hartholz

    Theoretisch wäre es möglich per Kabel eine Verbindung über USB zum MCS herzustellen. Ich hatte schon überlegt dafür ein Plugin für SignalK zu schreiben, habe dafür aber keine Zeit gefunden. Aktuell bleibt nur der Weg über den Wemos D1 mini. Vielleicht magst Du Dich ja an einem Plugin versuchen. Da musst Du auch nichts löten. Das ist nur programmieren.

  • glowntiger : Hallo Thomas,

    habe mir gerad mal Deine Änderungen angeschaut - die sollen ja auch in unser Image.

    Du hast jetzt beim can die Zeile

    Code
    pre-up ip link set can0 type can restart-ms 100

    'rausgenommen.

    Hast Du da neue Erkenntnisse?

    Das war ja das Handling um nach Bus-Problemen wieder sauber aufzusetzen.

  • Norbert

    Programmieren ist nicht mein Ding, dann lieber Löten :O .

    Ich dachte nur, das der RS485 Ausgang vom Batteriemonitor und die von Glowntiger im 1. Beitrag beschriebenen

    "-6x RS422/485 (NMEA0183) Kompatibel mit einem SC16IS752",

    jetzt 4 Anschlüsse, kompatibel sind.

    Edited once, last by Hartholz ().