2021-09-13, 11:02 AM
Hi!
I'm desperate about making the Seatalk work on my Raspberry, so may be someone here will have an idea about what is wrong.
I have build the optocoupler interface described at https://github.com/SignalK/signalk-serve...k(GPIO).md
with the optocoupler circuit below. I measured with an ohmmeter the resistance on the board and they are 3K as in Github optocoupler.
I have at least 4 Seatalk instruments daisy-chained with official cables. On one of the cable there is a splice that connect to the autopilot course computer ST100/300 where I took out the Seatalk input signal to the Optocoupler.I also tried to connect the optocoupler directly to another instrument ST output, with the same results.
I connected the circuit with a 4660 Ohm resistor to a Raspberry Pi zero W (headless, running Signalk server) and created the connection as describer in Github (GPIO 4 / inverted).
I have no signal in Signalk, nor with the tool STALK_read.p.
Then I measured the voltage (with a voltmeter, I don't have an osciloscope) at the Seatalk connector (with the optocoupler disconnected): I can see a fluctuating voltage between 11V and 12V so I conclueded that that was actually ST data (plus as the autopilot ST100/300 works fine, I gess it can be concluded that it receives correct ST data).
Then I measured the voltage when the optcouper is connected at the same point: I can see fluctuating voltage around 5V to 6V.
Then I measured the voltage at the GPIO pin and could see a fluctuating voltage of 1.5-1.7 V.
So I imagined that for some reason, the voltage at the GPIO was not suffisant to pull the signal down (I've read somewhere on line that you need at least 1.8V to change GPIO inputs). So I replaced the 4660 resistor with 4000, then 3000 to see what happens. With 3000 the STALK_read.p started to display STALK messages (that I'm unable to decode) and the SIgnalK server started to show only 2 data (Magnetic deviation and depth). Nothing else (on top of that the only instrument which is not connected is the depth sounder ;-).
I tried to remove the invert setting but it didn't change anything (Is there a possibility that I burnt the GPIO doing that?).
- What is not working? the optocoupler part? The raspberry?
- Is the Raspberry pi zero fast enough to decode the ST data flow ? (I believe 4.8 kbauds is not that fast for a pi zero.
- Why do I receive only 2 paths or are they just badly decoded?
Any idea?
Thanks!
BTW I'm in barcelona if any need for testing on a boat!
Ray
I'm desperate about making the Seatalk work on my Raspberry, so may be someone here will have an idea about what is wrong.
I have build the optocoupler interface described at https://github.com/SignalK/signalk-serve...k(GPIO).md
with the optocoupler circuit below. I measured with an ohmmeter the resistance on the board and they are 3K as in Github optocoupler.
I have at least 4 Seatalk instruments daisy-chained with official cables. On one of the cable there is a splice that connect to the autopilot course computer ST100/300 where I took out the Seatalk input signal to the Optocoupler.I also tried to connect the optocoupler directly to another instrument ST output, with the same results.
I connected the circuit with a 4660 Ohm resistor to a Raspberry Pi zero W (headless, running Signalk server) and created the connection as describer in Github (GPIO 4 / inverted).
I have no signal in Signalk, nor with the tool STALK_read.p.
Then I measured the voltage (with a voltmeter, I don't have an osciloscope) at the Seatalk connector (with the optocoupler disconnected): I can see a fluctuating voltage between 11V and 12V so I conclueded that that was actually ST data (plus as the autopilot ST100/300 works fine, I gess it can be concluded that it receives correct ST data).
Then I measured the voltage when the optcouper is connected at the same point: I can see fluctuating voltage around 5V to 6V.
Then I measured the voltage at the GPIO pin and could see a fluctuating voltage of 1.5-1.7 V.
So I imagined that for some reason, the voltage at the GPIO was not suffisant to pull the signal down (I've read somewhere on line that you need at least 1.8V to change GPIO inputs). So I replaced the 4660 resistor with 4000, then 3000 to see what happens. With 3000 the STALK_read.p started to display STALK messages (that I'm unable to decode) and the SIgnalK server started to show only 2 data (Magnetic deviation and depth). Nothing else (on top of that the only instrument which is not connected is the depth sounder ;-).
I tried to remove the invert setting but it didn't change anything (Is there a possibility that I burnt the GPIO doing that?).
- What is not working? the optocoupler part? The raspberry?
- Is the Raspberry pi zero fast enough to decode the ST data flow ? (I believe 4.8 kbauds is not that fast for a pi zero.
- Why do I receive only 2 paths or are they just badly decoded?
Any idea?
Thanks!
BTW I'm in barcelona if any need for testing on a boat!
Ray