SignalK - anyone actually using it?

You wouldn't put the switch in the bilge, you'd run a cable (with PoE) to each of two transducers whereever they happened to be situated. Calling high-IP switches expensive is ironic given the costs of integrated CAN systems like eg Raymarine cables.

Yes but don't want one cable per device, I want a daisy chain.
If I changed the systems on my modest 32' boat to ethernet I would need an 8 or 9 way switch.
If I changed to a CAN BUS based system I could just run 4 x 0.5mm2 wires in a daisy-chained harness plus one short point to point ethernet cable if I chose to add RADAR.

CAN BUS runs quite happily over individual wires in a harness alongside high voltage and high currents. Raymarine's choice of cable and connector system and cost is a separate issue.

Ethernet connectors on flexible cables with waterproof connectors are not cheap either and threading them is more difficult.


Ethernet is a far more robust protocol wrt EMC than CAN which relies on passive pull-ups on the data lines.

You're correct about the pull-up (actually one is a pull down) but your conclusion is wrong. CAN BUS was developed by Bosch for automotive use which is an environment similar to a small boat. The EMC requirements are much more stringent than for ethernet. Ethernet is being developed for automotive use; EMC and reliability issues are being addressed. But that's not what is in a cheap as chips switch, R-Pi or an off the shelf PC.


Ethernet has all the benefits of TCP/IP as well in terms of error crrection and automatic packet re-transmission so an altogether safer protocol wrt data loss.

I agree that this is suitable for high bandwidth data but the need for that on a small boat is limited.

Ethernet switches are cheap as chips and can be daisy chained, compare the cost of an ethernet switch with a Raymarine backbone extender for instance. Multi drop can be nice but is not essential and star wiring has the advantages of fault-resilience and adaptability.

Star wiring is one way to increase fault reliance, there are others.


Or, translating, CAN is not fast enough to cope with marine application data rates.

Or, good engineering is rarely one-size fits all;)

Multi-protocol systems with multiply-wired connections are a complete kludge and will hopefully come to an end as soon as someone in the industry comes to their senses and proposes a standard N3k based on ethernet with PoE.

Boo2

Multi-protocol and multi-wired (I think you're referring to daisy-chaining) does not automatically lead to a kludge.

I've followed quite a few of the Signal-K forum threads; most current interest seems to be in interpreting and transferring the data made available via Signal-K. But unless someone starts making transducers that generate S-K data then it will only ever be useful after it has been translated by a gateway of some sort. At the level of transducer data I still think CAN BUS is a better choice.

I did some rough calculations for S-K over CAN BUS at 250kbaud. Using the cut-down protocol (sorry I've forgotten the correct term); heading, depth, wind speed, wind direction, log & position can be transmitted fast enough to be useful without filling up the available bandwidth. It will fit.
 
Drifting a tiny bit and not knowing much about wifi...
Could a device like a esp8266 take nmea0183 data and spit it out over wifi to a raspi running signalk?
One on each sensor on the boat so no need to run data cables everywhere, just power?
 
Drifting a tiny bit and not knowing much about wifi...
Could a device like a esp8266 take nmea0183 data and spit it out over wifi to a raspi running signalk?
One on each sensor on the boat so no need to run data cables everywhere, just power?


I guess yes but why would you?
If you have to run 2 core for power I would far sooner run 4 core for power and signal than have the unreliability and added cost of wifi
 
If you have to run 2 core for power I would far sooner run 4 core for power and signal than have the unreliability and added cost of wifi

The way things are going, the wifi probably ends up cheaper than the cable :p

(But yeah, I'd prefer the reliability of a wired connection.)

Pete
 
I guess yes but why would you?
If you have to run 2 core for power I would far sooner run 4 core for power and signal than have the unreliability and added cost of wifi
Running 1 x 2 core to power various instruments is a lot easier and tidier the getting all the data lines back. Plus gets rid of the need for a multiplexer.
The wifi modules cost pennies.
 
Running 1 x 2 core to power various instruments is a lot easier and tidier the getting all the data lines back. Plus gets rid of the need for a multiplexer.

Errm, I believe Nick's whole point is that with CanBus there is neither a multiplexer nor "all the data lines" - just one data pair daisy-chained between the nodes.

Pete
 
Errm, I believe Nick's whole point is that with CanBus there is neither a multiplexer nor "all the data lines" - just one data pair daisy-chained between the nodes.

Pete
I wasn't actually thinking of canbus but older devices....

Could a device like a esp8266 take nmea0183 data and spit it out over wifi to a raspi running signalk?

Might be an easy way to get data out of existing standalone instruments which output nmea 0183 but don't have any data lines run in.
 
More drift---
Struggling getting data which doesn't have an NMEA 0183 sentence out of signal K - can NMEA 2000 be transmitted down a serial connection?
If so what would it look like?
Ta
 
Struggling getting data which doesn't have an NMEA 0183 sentence out of signal K - can NMEA 2000 be transmitted down a serial connection?

Before someone points out that NMEA protocols define the whole stack so of course "NMEA 2000" runs over CAN rather than a serial line, I'm of course assuming that you mean the application layer NMEA 2000 data.

Given a slow enough data rate you can transmit anything down a serial line. If you look at Antisense's NGT-1, that takes PGNs off an N2K network and chucks them over serial. I've not really looked at N2K but I believe the NGT-1 used to be a standard component used with CANboat so is probably the standard way of getting N2K into a Signal K server. I'd say find the N2K provider code for one of the Signal K servers, look at what it's doing and your task *might* be as trivial as writing a block of data in the appropriate format (see the Signal K N2K provider code or CANboat) over serial. Or post on the SignalK google group if you're not a big java or javascript fan.

There should be other ways to do this, but despite your idea sounding like crazy talk when I started typing, after a few revisions of this post (the last one deleting a rambling discussion of the "native" alternatives) it actually seems a perfectly reasonable idea.
 
Last edited:
There should be other ways to do this,
Indeed there are :cool:
This blog should be updated soon showing how,
http://blog.emilecantin.com/web/sys...ailing/2016/02/19/arduino-signalk-part-1.html
but basically my arduino outputs a simple feed of data
analog2:255
analog3:255
and signalK does the rest once you set it up...
var config = {
serialPort: "/dev/ttyACM0",




sensors: {
analog0: {
mapping: "electrical.dc.batteries.house.voltage",
transform: function(input) {
return input / 40.92;
}
},
analog1: {
mapping: "electrical.dc.batteries.house.current",
transform: func..................

So not that difficult to have have anything which is mapped to signalk beamed around the boat to anything which can display a webpage.
Cool!!

Sp3XT2q.png
 
For anyone who's interested...new firmware for the vyacht router apparently implements a full signal K server (not just a "gateway"). I think that makes it the first commercial Signal K server. Interview with the manufacturer including some of his thoughts on signal k here:
http://stripydog.blogspot.com/2016/02/vyacht-router-now-with-signal-k.html
If anyone has tried this firmware I'd be interested to hear about it
 
Not being technical - but it is a standard that is being written to include NON yacht/ship derived information for inclusion in on board devices. There is a need to combine for instance Chart software with port information or cruising information so that information - as held in the CA's Captains Mate, could be included in any charting software using a standard Signal K interface.

Currently present cruising reports are updated on line and held locallay as we assume in our designs that WIFI is not always available. Roll forward 4 years with Googles LOONS project

http://www.google.com/loon/

Which will enable wifi to be available continuously almost everywhere in the world - Its a really interesting projct and would change the way we look at data availability. Projects like Signal K are essential to this "new" world of always on data.
 
So 2 years down the line how many here actually use signalk onboard (or off)??

It's come a long way , app store for a fair choice of different apps aldreay, some nice displays -
this after a couple of days fiddling with an ESP8266 turning live Victron solar charger into signalk -

The SOG & COG are just random generated to see it working.
(the actual display is *much* smoother than a this)

doGswG1.gif


R3CJ5wJ.png




Apps appearing for some hardware to turn their data in/out of signalk but no real advance on the makers of sensors. Seem odd to me, can't cot much to send out some SK over wifi, even for us consumers you can do it for a few quid. Maybe some of the more open ones like Victron will join in soon, already they embrace the open source side of things. Maybe one day when you buy a new battery monitor or solar regulator it will talk straight away to the boat computer or digital yacht box and be available to control & beam the info out over the web for monitoring. Already possible and fairly easy with a raspberry pi, but getting wireless data from the various boxes isn't anywhere near plug and play yet - software side is getting much closer.
http://demo.signalk.org/admin/#/dashboard
The SK to mqtt plugin looks interesting, easy beam the info anywhere on the web for a few tens of amps & some mobile data.

Anyone else embraced it yet?
 
True but consider :

ETHERNET is ideal for all of the data you are likely to want to move around INCLUDING RADAR AND imaging sonar AND CHART IMAGE DATA.
- It is electrically robust.
- It is protocol robust with self detection mechanisms for BUS error isolation and automatic message retransmission.
- There is a large selection of powerful but inexpensive micro-controllers available.
- It is multi-drop for both talkers and listeners when conected to switches
- It only requires 4 data wires and can use commercial off the shelf connectors and netwok infrastructure

CAN bus is not present on standard PCs by default which is another huge disadvantage. And the data rate of CAN bus is stone age and the protocol design intrinsically limits the (line length * data rate) product so you can't have fast data over long distances. IMHO CAN bus is a short term solution and it would have been much better if N2k had been based on ethernet, but there you go...

Boo2

Nail on head! Why anyone would want to put canbus on our boats after seeing the issues arising on cars that are a few years old with even main dealers resorting to swop diagnosis
 
Nail on head! Why anyone would want to put canbus on our boats after seeing the issues arising on cars that are a few years old with even main dealers resorting to swop diagnosis

Precisely none of the problems you’re attributing to the use of CAN on cars would be solved by using Ethernet on cars instead.

Pete
 
Nail on head! Why anyone would want to put canbus on our boats after seeing the issues arising on cars that are a few years old with even main dealers resorting to swop diagnosis

...and its already happening. NMEA is pretty much a CAN implementation as are most of the distrbuted power systems appearing on boats around the world. Did a delivery on a Lagoon 56 recently that had a CAN based control system with an iPad to control systems and display systems data
 
2 years on and not a mention was needed to start an argument again.... :)



Anyway, just came a cross this - looks interesting. Compiled straight away but won't set up a wifi network to configure for some reason..

(Edit should a google bring you here - there's an option on the arduino ide tools menu which was set to erase flash - upload sketch only, once set to erase flash - all flash contents it worked. )

https://github.com/mxtommy/SigkSens

Design Goals


Simple low cost Wifi based IoT device. Should be simple enough to setup/use that it could be manufactured and sold to people with no microcontroller/circuit design knowledge. Support configuration via a Web application, and network discovery for ease of use.
Assuming it will be installed close to the object being monitored/controlled, it should not need to support many IO by default. Aim to cover 80% of use cases with single device, assuming other 20% can be solved by adding a additional stand alone devices. If 80% of the time you only need 2 Inputs, the 20% of the time you need 4 inputs just put another device. IE prefer multiple cheap devices vs one expensive do everything one.
Hardware should be easy to assemble on breadboard, as well as be able to be made into a PCB.
Device should send data to SignalK Server over Wifi. Device should accept commands from Wifi.
Use Case and Inputs required


  • Engine Monitor
    • 1Wire Bus (multiple Temps)
    • 1 Digital Input (rpm pulse)
    • SHT30 (Engine room temp/humidity)
    • 1 Analog Inputs (Oil Presure)
  • Bilge pump Monitor:
    • 2 Digital Input (Bilge pump on/off, High water Alarm)
  • Fridge Monitor:
    • 1Wire Bus (Temps)
    • 1 Digital Input (Compressor on/off)
    • SHT30, Temp/Humidity
  • Tank Monitor:
    • 1 Analog Input (Tank level)
  • DC Monitor:
    • 1Wire Bus (Battery Temps)
    • 2 Analog Inputs - Current/Voltage
  • AC Monitor:
    • 2 Analog inputs - Current/Voltage
  • GPS
    • UART
  • Environment
    • Presure Sensor
    • IMU
    • SHT30 (temp/humidity)
 
Last edited:
Top