This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Alternative SeaTalk wiring
#1
Exclamation 
TL;DR: On the MacArthur HAT, connect SeaTalk 12V to MacArthur SeaTalk1 DATA, SeaTalk DATA to MacArthur SeaTalk1 GND, set ST GND jumper to OPEN position.

This statement by Sailoog in a post on another thread, got me thinking about how SeaTalk actually works.

Quote:[...] maybe we should replace the 4K7 resistor in the MacArthur HAT by a variable resistor.

Seatalk1 devices wait for the idle state (+12V for at least 10/4800 seconds) of the bus to send data, if you do not use the correct resistor for your bus, you may have been forcing a "busy" state (near to 0V) unintentionally. You will notice that because your device (any Raymarine MFD) will stop sending data to the bus when using the wrong resistor.

Based on the above statement, here's a simplified schematic of how a SeaTalk device works internally:

   

Inside the SeaTalk device, a pull-up resistor of several 10K keeps the data line high when idle. When TX outputs a one, the NPN transistor turns on and pulls the DATA line low. Conversely, when TX is outputting a zero, the transistor is turned off and the pull-up resistor pulls the DATA line high. This is very similar to how I2C works.

The SeaTalk device monitors the state of the data line via its RX input. If DATA is low while the SeaTalk device is idle, this indicates another device on the bus is talking. If DATA is low while TX is transmitting a zero, this indicates that a bus conflict with another device occured. 

Note, that when multiple devices are connected to a SeaTalk bus, their pull-up resistors will be in parallel, lowering their combined value. Also note, that the threshold that RX uses to distinguish between low and high is not known. It could be 6V, but it could also be 10V or 1V.

Here is the circuit we currently use to receive SeaTalk data. It can be found in similar form around the internet.

   

When SeaTalk is idle (12V), the optocoupler conducts. R1 together with the pull-up resistor(s) inside the SeaTalk device(s) will create a voltage divider, pulling DATA below 12V. The actual voltage on the DATA line depends on the forward voltage of the optocoupler (~2V), the value of R1, and the pull-up resistor(s) inside the SeaTalk device(s). If R1 is too low, our circuit will pull the DATA line below the RX threshold where the SeaTalk device decides that the bus is busy, resulting in no data being sent.

Unfortunately, the correct value for R1 depends on the specific setup, as we don't know the value of the pull-up resistor inside the SeaTalk device, the device's RX threshold, nor how many devices are connected to the bus. To make this work in all setups, we'd have to add a variable resistor for the user to tweak until it works in their environment. And even then, it might stop working when adding another device, or at full moon.

Here's what I think is the correct, or at least a more robust way to receive SeaTalk data via an optocoupler:

   

The positive side of the optocoupler is connected to 12V. When the SeaTalk DATA line is high (idle), the optocoupler is off and DATA_RX will be high. When a SeaTalk device pulls the DATA line low, the optocoupler turns on, and DATA_RX goes low. The DATA line will stay near 0 as the SeaTalk device is able to sink the few mA of current flowing through the optocoupler.

In this circuit, the exact value of R1 is not very critical. R1 needs to keep the current in the range of the optocoupler, and the sink capability of the SeaTalk device. Anything in the range of 3-10K is probably ok, limiting the current to 1-3 mA.

As a side note, in a variation of this circuit, the activity LED D1 could be on the left side of the optocoupler, either between 12V and optocoupler or between optocoupler and R1. In that scenario, R3 is omitted.

In summary, MacArthur users should use the following connections for SeaTalk1:

SeaTalk 12V -> MacArthur SeaTalk1 DATA
SeaTalk DATA -> MacArthur SeaTalk1 GND
MacArthur ST GND jumper: OPEN

MacArthur beta testers that use SeaTalk: Please let us know if that works (or doesn't) in your setup!
Reply


Messages In This Thread
Alternative SeaTalk wiring - by Adrian - 2023-05-03, 06:52 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-05-04, 11:23 AM
RE: Alternative SeaTalk wiring - by holgerw - 2023-05-04, 10:00 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-05-05, 10:14 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-05-07, 09:27 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-05-08, 05:02 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-05-19, 08:21 PM
RE: Alternative SeaTalk wiring - by Adrian - 2023-05-19, 10:09 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-05-20, 10:36 AM
RE: Alternative SeaTalk wiring - by Adrian - 2023-05-26, 11:29 PM
RE: Alternative SeaTalk wiring - by Adrian - 2023-05-27, 06:10 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-06-01, 04:50 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-06-01, 06:39 PM
RE: Alternative SeaTalk wiring - by Adrian - 2023-06-01, 08:31 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-06-02, 01:36 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-06-02, 04:43 PM
RE: Alternative SeaTalk wiring - by Adrian - 2023-06-03, 07:52 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-06-19, 06:17 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-06-21, 05:31 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-06-21, 06:06 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-07-18, 03:05 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-18, 03:26 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-18, 03:38 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-07-18, 07:29 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-19, 12:11 PM
RE: Alternative SeaTalk wiring - by TVR - 2023-07-18, 09:11 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-19, 11:41 AM
RE: Alternative SeaTalk wiring - by TVR - 2023-07-19, 12:38 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-07-19, 09:38 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-19, 12:44 PM
RE: Alternative SeaTalk wiring - by TVR - 2023-07-19, 12:48 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-19, 02:01 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-19, 01:54 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-20, 10:19 AM
RE: Alternative SeaTalk wiring - by Duncan - 2023-07-21, 12:11 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-21, 12:17 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-22, 11:14 AM
RE: Alternative SeaTalk wiring - by Adrian - 2023-07-30, 12:02 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-07-30, 10:53 AM
RE: Alternative SeaTalk wiring - by holgerw - 2023-07-30, 08:01 PM
RE: Alternative SeaTalk wiring - by Adrian - 2023-07-30, 09:00 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-08-05, 06:05 PM
RE: Alternative SeaTalk wiring - by Duncan - 2023-08-20, 08:56 PM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-08-21, 11:35 AM
RE: Alternative SeaTalk wiring - by JaHo - 2023-09-01, 10:03 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-10-30, 10:57 AM
RE: Alternative SeaTalk wiring - by Sailoog - 2023-10-30, 11:01 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)