Hi,
The RV-C protocol is for RVs what NMEA2000 (aka N2K) is for boats.
This article is to explain the possible benefits of integration and some technical pointers on where to start.
RV-C is canbus based; documentation available publicly; and for what I’ve understood much simpler to implement than NMEA2000 is. Its mostly used in the USA, I think, maybe also in Australia. I have not heard about RV-C in Europe.
Possible Benefits:
1) it would be nice to have GX devices read data from Garnet seelevel tank senders; and possible other RV-C compatible tank senders. (Garnet seems to be by far the most popular one).
- it could be nice to transmit some information out on RV-C, such as battery voltage and SOC; so that it can be displayed to other manufacturers displays. Note that I’m not familiar with what type if displays are used in motorhomes/RVs that use RV-C.
Regarding that last point, the big new coming feature in Venus OS, integration on marine MFD chartotters by means of a html5 webpage hosted on our side, will be get most of the same requirements done; and better in most cases than by trying to format Victron system metrics in a field oriented protocol such as NMEA2000 or RV-C. It does require (seamless) webbrowser capabilities on the side of the display.
Technical pointers
- Any sending or receiving of RV-C PGNs is best done on Venus OS / our GX product range.
- most of Venus OS is open source. And root access to our GX products is available.
- to integrate those seelevel tank senders; what is required is to make a command line executable or script; that listens to the canbus & when receiving data from on or more tank senders, publishes that data on the D-Bus. In the already existing format, documented here. Any non available data can be left out. More background on developing such driver is explained here.
- in case anyone makes something for reading tank levels; we’ll be more than happy to help & review and add it into standard Venus OS.
- to integrate onto a display that has webbrowsing capabilities, an HTML5 integration could be a better choice than working on RV-C. In most cases, all that needs doing to support a new brand of display is that a discovery protocol needs to be agreed on between the display and Venus OS: used by the display to show the button that opens the Victron (web-)page. To test the html5 integration; see latest sticky post regarding v2.30 release candidates for instructions. And, Source code of it is public.
Differences between RV-C and N2K wrt tank level
(Courtesy of Mark who has implemented both)
Major differences:
- NMEA2000 supports tank volumes with 0.1 liter resolution (int32) whereas RV-C supports one liter resolution (int16).
- RV-C implements an absolute liquid level field whereas NMEA2000 does not; that said, many OEM customers absolutely DO NOT want any device that reports absolute liquid levels because their customers will ultimately complain about absolute accuracy which means that the system must take tank shape into account, etc. For this reason, there are some benefits of not implementing the absolute level field.
- RV-C implements a tank diagnostic message whereas NMEA2000 does not; this allows for a greater degree of troubleshooting problems with an RV-C system as opposed to NMEA2000.
- NMEA2000 specifies specific CAN bus connector types and also specifies that the CAN bus must be electrically isolated; RV-C does not.
- NMEA2000’s handling of tank numbers and fluid types is a bit easier to follow. RV-C’s handling of this data involves one “tank instance number” which is implemented less easy to understand. RV-C does directly support LPG (propane) tank levels but NMEA2000 does not.
- NMEA2000 supports additional information such as two 70 character installation description fields, which are quite useful for a unit which may be hidden behind a panel. In addition, pretty much any major description or field may be changed via the CAN bus. RV-C doesn’t support remote configuration per se.