Go Down

Topic: Asynchronous SeaTalk (Read 20 times) previous topic - next topic

Nick Gammon

In any case, good luck with your project. Thanks, Nick for your efforts.  

My pleasure. Hopefully it will come in handy one day.

Meanwhile in your case I would be throwing hardware debugging at it, like a logic analyzer. You will see clearly what is being sent. Possibly supplemented with a scope to make sure the voltages are correct.


Ah but Nick,
I live on a boat.  We've had to raise the bootline three times since we moved aboard 8 years ago.  it isn't all electronics.  I know i can get scopes which use pcs for displays, but that might be a bit much for the local Chancellor of the Exchequer.

I'm beginning to have more confidence that I'll be able to make something work.  Until I saw the dos program printing out datagrams and realized that i couldn't have both the bridge and the converter on the seatalk bus and still have enough signal to read, i was just flailing.

it is useful to know that one's hardware is percolating before all sorts of time is spent troubleshooting software that will never work before a signal shows up.

it's all fun.  once this project works and I've made final hardware, it's on to using an accelerometer to provide altitude leveling for the tv satellite antenna.  It has great azimuth control, but to keep the costs down no altitude.  idea is you set it for the latitude you're at which here in NA in the lower lattitudes works great - farther north the twitchier.

best regards,   john ferguson


Feb 22, 2012, 12:25 am Last Edit: Feb 22, 2012, 02:12 pm by jferg Reason: 1
I think I've got it.  I very carefully built the hardware seatalk-rs232 converter - used a better PNP transistor - it's listen only.  Then I built a better rs232 to ttl converter with a max232 AND built a 12 volt to 5 volt supply - 5 volts from arduino isn't enough to drive the max232. I'm bringing the ttl data into my Mega on Serial1 and it's displaying.

I'm getting good SeaTalk data coming into the Arduino, and it looks like an UNO would be fine assuming it can hold the code.  All I need now is to parse the two datagrams I'm interested in.  

my recommendation to anyone thinking of doing this is FIRST get the hardware sorted out.  Build the SeaTalk to RS 232 converter shown on Thomas Knauf's site, and using Seamon1.exe in DOS, (you'll need a machine with a real serial port for this) keep working on your wiring until you get recognizable datagrams.  An unbelievable amount of time can be wasted in tail-chasing if you aren't getting a signal. :D - I know, I've already wasted it.


in reviewing older comments, you asked why not just connect the seatalk devices to separate ports, if i understood you correctly.  their output wouldn't change and the collision and retransmission events when they are on a single bus do not prevent an adequate flow of data.  Seatalk runs at 4800 bps.  Getting a usable sentence every few seconds is plenty good enough for this application - movement of a boat at anchor.  likely also good enough for 6 knot boat underway. 

i apologize for being a little slow, but it appears that setting  arduino Serial1 (seatalk listener port)  to 9 bit and then reading the 9th bit has nothing to do with parity.  If the 9th bit is up,  then the byte is a "command" byte and the first byte of a datagram.  If there is only a space there, then the byte is not a command byte and is either nothing, or a databyte.

this is very hard for me.

Nick Gammon

True, it looks like they are using the 9th bit in that way. However that bit is in the "place" where parity bits used to be (and still are). It appears that you either can use the 9th bit for data, or parity, but not both (which would require a 10th bit, if you had 9 data bits AND parity).

Go Up