Fish finder integration

387 views
Skip to first unread message

Michael Scherer

unread,
Jun 15, 2015, 7:49:13 PM6/15/15
to sig...@googlegroups.com
Hello all,

In my "spare" time I've been working on reverse engineering a wifi fish finder. I believe I've deciphered enough of the protocol to release a beta reference implementation for interfacing with the device; however, I'd be interested in integrating it with an existing platform so that it's more useful to the general community. I'm presently debating either doing an OpenCPN plugin or making a daemon for Signal K.

From the device, I have identified the following information:
- device serial number
- minimum/maximum range
- depth
- water temperature
- battery voltage
- water column

And have a means of controlling:
- range (auto range or fixed)

There's still a fair number of magical bytes that I don't understand yet (and perhaps could vary based on the model). I'm still holding out hope I'll find a salinity/conductivity field in there somewhere :)

I did some initial research into the protocol but there are a few gaps I was hoping you guys could fill in for me:

1) Is there a means to transmit raster data (i.e. the water column)?
2) Is there any means for device control (e.g. if the user wanted to change the ranges, gains, start/stop transmitting, etc.), or would that more or less depend on the UI publishing some other arbitrary structure that the device daemon knows to look for?
3) Is there some way to represent device health/meta info (e.g. battery voltage & serial number of device) in this protocol?

rob...@42.co.nz

unread,
Jun 16, 2015, 6:07:03 PM6/16/15
to sig...@googlegroups.com
Micheal,
Fantastic work! Hacking a depth sounder protocol is rather cool.

Answering your queries:

Signalk is aimed as an extensible generic open protocol, so if it doesnt cover your needs, just submit extensions. OpenCPN have stated they will release support for signalk, so that should be covered too.

Presumably you have a application or driver that can decode the data, so that is what would actually provide a Signal K eg tnterface. The 'plugin' would talk to a signalk server, rather than to OpenCPN allowing any signalk client to benefit.

1) We have discussed raster and other special data for radar, the short answer is that signal k should provide the meta data to connect to a stream of raster or other data. So basically you would make the raster available as a url or port somewhere and the gui would connect to it to receive and display the stream. It waiting for a practical use case - sounds like you have one :-)

2) At the high level we possibly need to add some depthsounder control keys to the current depth structure. Then a gui could control the depth sounder in a generic way. At the device level signalk also has a _system key, which can be used a bit like the linux proc filesystem to control devices directly. So you could send fishfinder._system.range=20, and your device driver would convert that to the proper wire format message.

3) Signalk has a .meta key which holds information about a key, primarily to allow alarms to be set on a keys value, and for a gui to auto-configure to the keys requirements (like label='Depth', units = 'Meters'). We have also discussed the need for an inventory for equipment, where serial numbers etc are stored, but maybe there is a case for 'health' or diagnostics too.

Anyway it would seem that extending signal k depth keys would be a good start, and looking at a practical implementation to handle the raster data is needed.

If you are keen, we are happy to help

Robert

Bartek Wilczynski

unread,
Feb 6, 2018, 8:56:27 AM2/6/18
to Signal K
Hi, 

Is there any follow up to this thread? I'd be very much interested in any working code prototype as I'm now building a boat NMEA router based on Raspberry Pi and I'm looking for a cheap echo sounder I could integrate with it. 

any info would be appreciated.

best 
Bartek Wilczynski

Michael Scherer

unread,
Feb 6, 2018, 10:25:09 AM2/6/18
to sig...@googlegroups.com
Hello Bartek,

Yes, I've posted the code on github:


There's recently been some movement on it, someone has contributed data from an SP200 and so the library is a bit more flexible now. The code is delivered with both a GUI to see the full water column, and there's also a (really simple) daemon that outputs NMEA0183 DPT sentences to standard out. It would be really cool to have a Signal K daemon as well :)

- Michael

Michael Scherer

--
You received this message because you are subscribed to a topic in the Google Groups "Signal K" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/signalk/EB8WWJuj4_Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to signalk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages