NMEA2000 Barometer sensor (with Cerbo and Ruuvi)

lustyd

Well-Known Member
Joined
27 Jul 2010
Messages
14,838
Visit site
I thought I would do a quick write up of how I set up my new Ruuvi sensors with a Victron Cerbo GX and sent that data to my B&G plotters following on from my fuel gauge post (Fuel Gauge Calibration). Apollogies for the lengthy post. I couldn't find any concise documentation on how this is supposed to be done, just loads of AI telling me it could be done and referencing numerous unhelpful forum posts. For these instructions, it's best to work from a computer browser to access the Cerbo interface and subsequently the Signal K and Node Red stuff. None of this is hard or scary so don't be put off with the new terms.

The RuuviTag 4 in 1 sensors, or the pro variant of them offer temperature, Barometer, Humidity and movement (3 axis accelerometer). They're around £30-£40 at the moment from Amazon (Amazon.co.uk) and connect via Bluetooth Low Energy, giving a battery life of up to two years. They have a great app, but can also integrate with boat systems nicely.

They are directly compatible with Victron VenusOS devices including Cerbo and any Raspberry Pi running the OS. They do need Bluetooth, and for this I bought a TP-Link UB4A from Amazon for £4 (Amazon.co.uk). I also added a cheap unpowered USB hub as I was already using the USB ports - unpowered is working fine for my use with VE-Direct and BTLE adapter but your system may need a powered hub if you do anything fancy like a USB GPS dongle.
The Cerbo GX does have Bluetooth, but mine is one of the versions where the processor overheats and disables Bluetooth. The manual has this to say:

"For Cerbo GX units with serial numbers up to and including HQ2207, internal Bluetooth is disabled when CPU
temperature exceeds 53 °C. In such cases, a USB Bluetooth adapter is required for reliable operation. Units
with serial numbers HQ2208 and later, as well as Cerbo-S GX, are not affected."

To pair the sensors, open the Victron interface and go to Settings, Integrations, Bluetooth Sensors. Here you should see your Ruuvi sensor(s), just toggle them on to pair and your Victron system will start getting temperature, Barometer, etc. immediately. At this stage, your Cerbo will display the sensor under the environment tab of the Levels page (using interface v2 here!). Your Device will also begin uploading this data to VRM for long term collection and viewing.
1. Bluetooth Pairing.png
2. Environment.png
3. VRM.png

Now to the NMEA2K. Firstly, you'll need your device to be connected via NMEA2K cable. Thanks to @PaulRainbow this is quite cheap Victron VE CAN to NMEA 2000.

Next, you need to go to Settings, General, Firmware, Online Updates and select the "Large" image which includes Node Red and SignalK. Once selected, check for updates and install. This does not remove your settings and is seemingly quite safe to do, but maybe take a backup of your settings to be sure. The device will reboot after a few minutes and has a couple of new menu options.

Go to Settings, Integrations and enable Signal K. DO NOT enable Node Red, we won't be using that from here. It's not an issue to have both versions, but it will take resources so unless you actually know what you're doing don't turn it on.

Click Open Link to access Signal K and you'll find yourself in a new portal with some fairly powerful capabilities. Click on the App Store link (don't worry, no charge for the apps).

We're going to use two plugins for this integration, signalk-to-nmea2000 which is preinstalled and @signalk/signalk-node-red which you need to search for and install. We're going to use the NodeRed app to convert some data and remap it for the NMEA plugin to use, and the NMEA plugin will push that data out to the NMEA network.

Now click on Data Browser in the left hand menu. We need to find the paths to our Ruuvi Data. In the search box type "humidity" and you'll see several values, you're looking for ones that look like "environment.venus.20.humidity".
Because I have two sensors I have two of these, each showing the ruuvi source on the right hand side. Copy the paths you need, mine are:
environment.venus.20.humidity
environment.venus.20.temperature
environment.venus.20.pressure
environment.venus.21.humidity
environment.venus.21.temperature
environment.venus.21.pressure

Yours may be different as they are assigned by the system, but they will be similar and you'll have three per sensor.
4. Data Browser.png

Next, click Server, Plugin Config on the left side menu. You'll see various plugins here, scroll and enable "Signal K to NMEA 2000". Don't enable any logging as it just uses space on the disk and will eventually fill it up.

Scroll down slowly. We need to enable multiple PGNs for the NMEA2000 to ensure broad plotter support since there are many versions of these and not all plotters/instruments support all of them. The list I enabled for one internal and one external sensor is:

Atmospheric Pressure (130311)
Outside Humidity (PGN130313)
Inside Humidity (PGN130313)
Atmospheric Pressure (130314)
Outside Temperature (130312)
Outside Temperature (130316)
Inside Temperature (130312)
Inside Temperature (130316)

For each one, tick Enabled.
Each will have a box at the top for Resend - set this to 1 second for all.
Each will have a box at the bottom for Source such as "Source for environment.outside.pressure". It's the "environment.outside.pressure" part we need to fill with data later, so make a note of these as they are different for inside and outside and you may use different ones than I did.
9. PGN.png

When you reach the bottom, click Submit to save your changes. We now have the NMEA plugin configured but need to connect data to it.

Scroll up and ensure that the Node Red plugin is enabled. If not, enable it and hit Submit.
Click on WebApps in the left hand menu then Node Red. Note that this Node Red is SignalK enabled while the stock Victron one is not, that's why we didn't use the one in Victron.

You'll now be in the Node Red interface. Think of this like wiring things together. On the left you have functions and other stuff. For this guide we're only interested in three things.

Signal K Subscribe - this will connect to our data source i.e. our Ruuvi sensor data.
Signal K Send Pathvalue - this will connect to our data out i.e. the NMEA2K paths we found earlier like "environment.outside.pressure"
Function function - this will transform data where needed. My B&G doesn't properly format Relative Humidity so I had to multiply it by 100 and limit to 2 decimal places for it to show as a percentage (53.2%) rather than as a number (0.532). It's a small thing, but important to me.
5. Node Flows.png

We will need one line per data point, so three per sensor (temp, humidity, baro pressure). For each, drag a subscribe and send pathvalue onto your flow workspace. Drag the grey square on the right of the subscribe box to the one on the left of the send pathvalue box (just like wiring!).

Double Click the subscribe node and fill in a name such as "outside barometer sensor". Fill in the path with your ruuvi data path from above, such as "environment.venus.20.pressure".
6. subscribe node.png
On the corresponding send pathvalue node double click and again fill in a name such as "outside barometer N2K" and set the path to the matching one from the NMEA2000 plugin from above such as "environment.outside.pressure".
7. Send Pathvalue.png
For the Humidity line, I added a function between the subscribe and send pathvalue nodes. In the OnMessage tab of this, I added the following code. There are neater ways to do this (but they aren't more efficient) but I wanted it easy to understand to share here. Line 1 multiplies the incoming value by 100. Line two takes that value and rounds it to two decimal places. Line two also tells the system to return the value as a number rather than text. Line three sends the result to the next node (send pathvalue).

"msg.payload = msg.payload * 100;
msg.payload = Number(msg.payload.toFixed(2));
return msg;"
8. Function.png

Click Deploy at the top right of the screen. You may need to restart the Cerbo but it should now be sending temperature, barometer, and relative humidity to your NMEA network.
 
Last edited:
I should have said, if anyone has any better/simpler/cheaper ways to achieve this, please do post it here. My way is certainly not the only way and may not be the best or simplest. It's just what I managed with the limited documentation I could find.
 
Simplest method I found with my network, Raymarine Seatalk NG, was to buy a pressure transducer (PT) from Yacht Devices that plugs straight into my Seatalk NG port. It was way more expensive than your PT and only provides a real time pressure readout on the Axiom+, no graphical trend is currently possible on Axiom+. The Yacht Device pressure data can of course be picked up by a WIFI device or another device and App plugged into the network and the trend shown on a graph. Yacht Devices now sell a PT with a built in bluetooth transmitter; also sell air temperature and humidity sensors.

In my case, it was very easy and simple to plug and play the PT to get an atmospheric pressure readout on Axiom+. Pricy option for simple single point data display.

Digital Barometer for NMEA 2000 but the one with the Seatalk NG connector.
 
Last edited:
I’ve been tempted by those for a long time but they seemed very pricey for whats in them. Didn’t realise there was no trending, although I have to say the B&G doesn’t have much functionality for pressure either so I’m glad of the Cerbo and the Ruuvi app.
 
The NMEA 0183 to NEMA 2000 adaptor for LCJ Capteurs' ultrasonic wind transducers also has a barometer built in, but that's a rather expensive solution for just this one thing. I'm sure there will be people who find @lustyd's post very helpful.

It's quite cool to see barometric readings on your chart plotter - my B&G Vulcan can display them as a line chart over the last several hours or days, so it's easy to see if there's a steep decline in pressure.
 
Do you use it on the Vulcan? I found it a little disappointing when I finally got it working (same on our Vulcan and Zeus). I feel like this part of the interface needs some work, even if just to out that graph into the side bar rather than switching pages.
I’m hoping future plotters will just have a baro sensor built in, it’s not an expensive addition and seems an obvious upgrade.
 
Every so often I read a boat tech thread that makes me feel primitive and out-of-touch. I get the benefit of a barometer, and of a barometer with automatic logging / recent pressure graph, but what does putting it on NMEA2000 add? It sounds like you achieved something neat but I think I might be too basic to understand the benefit...
 
As I said above, the NMEA instruments and plotter turned out to be a bit disappointing. I posted this as lots of people want to do it and it’s not well documented.
Having the info at the helm is very useful, but the bluetooth sensors allow that with an app.
Don’t worry you’re not primitive some of us just like messing about. It is PBO after all.
 
Ah ok. Thanks. I think I failed to pick up on the disappointment. It IS impressive, particularly as a lot of these boat electronics seem annoyingly opaque. Barometer at the helm does seem like a very sophisticated convenience... one less reason to go downstairs!

PS I like messing about too, mine is just more physical/ mechanical.
 
Do you use it on the Vulcan? I found it a little disappointing when I finally got it working (same on our Vulcan and Zeus). I feel like this part of the interface needs some work, even if just to out that graph into the side bar rather than switching pages.
I haven't been back in the water since I got this working, I'm afraid .

I certainly agree with you that I'd prefer a mini graph on the main screen with the charts, in the column that shows SOG and distance-to-waypoint. I hadn't noticed until just now, when I went to post the image below, that you can have numerical millibars in that column, which is something.

… but what does putting it on NMEA2000 add?
In principle it could be displayed on instruments like Raymarine's I90 or B&G's Triton². It could be shown as a bar chart below the wind direction, or as a grey chart behind the wind direction needle (against a black or wide background) or as a needle at the side. Also the I90 has the option to switch between screens every few seconds - between windspeed and depth and AIS radar, for example - so it could be displayed as a full-screen bar chart.

I'm not sure if Raymarine or B&G have actually implemented baro readings on these instruments, but they could do if (for example) the LCJ Capteurs was popular enough to justify it. Also those instruments can be programmed to sound alarms, so they could (theoretically) do so if the baro pressure fell by x millibars in the last 6 hours.

This is what it looks like on B&G Vulcan:

543FyRD.png

I think there are a couple of size options - when I tested it I had it about 1" long alongside some numerical displays for boat speed, depth etc.​

As I say, I got this feature "for free" with my masthead wind transducer - I wouldn't pay £130 for it. You can get Arduino type boards and electronic barometers so cheaply on AliExpress that I bet someone who's handy could implement an NMEA 2000 barometer for £10 or £15. I assume Yacht Devices have to pay licensing fees to the NMEA certification organisation.
 
I have the Yacht Devices 'Digital Barometer YDBC-05' (Digital Barometer for NMEA 2000) - it seems to work exactly as you'd expect, sending NMEA2000 barometer readings which my Garmin chartplotter can display as a graph. I have to say I don't really use it, since I can get weather reports on my cellular phone pretty much everywhere we sail.

I also got their digital thermometer, which I installed in the shade of our cockpit locker, so that I can check the outside temperature before I open the washboards (and leave them in and go back to bed, if it's too cold).
 
On signalk you can also subscribe to a MQTT service and use small esp32 boards with a £4 barometer, hydrometer and thermometer chip to send the data to the raspberry pi. Not as simple as a single device and requires local power.
 
... I'm not sure if Raymarine ... have actually implemented baro readings on these instruments, ...

Raymarine do not offer barometer graphs, just a single value, in mbar, displayed on the screen. They do offer graphical histograms for tank levels and these can be customised. As for user integrated Apps, Lighthouse is a closed system and only Raymarine approved Apps can be added. Like you say, there is no doubt that it could be added. However, the focus is on modern data, which is why they allow Predict Wind App. A Barograph trend is such old tech for a tool required to make decisions, compared to modern forecasts.

Interestingly, Raymarine biggest customer in this space is the sport fishing market, which gets all the development time for new products.

As a result of this thread I have been looking into how to get a pressure trend on my iPad from Seatalk NG, and it might not be that difficult. The data from the YDBC-05 pressure transducer can be sent to an NMEA2000 wireless transmitter and then picked up by the iPad using an NMEA App (there are a few).
 
I also got their digital thermometer, which I installed in the shade of our cockpit locker, so that I can check the outside temperature before I open the washboards (and leave them in and go back to bed, if it's too cold
Same reason I put one Ruuvi in the cockpit and one in the cabin! Now I can see how cold and wet it is outside and how warm and moist inside 🤣
 
On signalk you can also subscribe to a MQTT service and use small esp32 boards with a £4 barometer, hydrometer and thermometer chip to send the data to the raspberry pi. Not as simple as a single device and requires local power.
Yes I did consider that. My Pi stuff is in storage so I kept putting it off and having the Cerbo ultimately made this easier but it would be useful if someone could write up the specifics of that solution.
 
As a result of this thread I have been looking into how to get a pressure trend on my iPad from Seatalk NG, and it might not be that difficult. The data from the YDBC-05 pressure transducer can be sent to an NMEA2000 wireless transmitter and then picked up by the iPad using an NMEA App (there are a few).
I realise you have the sensor already but the Ruuvi app is so good it might be worth just getting one of those. I assume the app is ipad compatible, I only have an iphone. Also useful as it keeps 10 days data in the sensor so the graph is there when you arrive.
IMG_1021.png
 
Top