The Engine Dashboard Plugin displays engine parameters, fluid levels and battery status in OpenCPN. It accepts NMEA 0183 RPM (Revolutions), RSA (Rudder Sensor Angle) and XDR (Transducer Measurement) sentences as its input. For sailors with NMEA2000® engine and tank sensors, any release of the TwoCan plugin beyond verion 1.6 can convert the appropriate messages from NMEA2000® networks to their NMEA 0183 equivalents which can then be displayed by the Engine Dashboard.
The Engine Dashboard displays the following data:
Engine RPM, Oil Pressure, Coolant Temperature, Engine Hours & Alternator Voltage for either single or dual engine vessels.
Fluid levels for Fuel, Water, Oil, Live Well, Grey and Black Waste.
Battery status (voltage and current) for the Start and House batteries.
and Rudder Angle.
The engine dashboard consumes a subset of NMEA 0183 sentences. For engine speed it may use either RPM or XDR sentences. For Rudder Angle it uses RSA sentences.
For XDR entences, the Engine Dashboard supports several transducer naming formats; those generated by the TwoCan plugin, NMEA 183 v4.11 (as used by Actisense and Maretron gateways) and Shipmodul.
TwoCan Transducer Naming:
Measurement Transducer | Type | Measurement Unit | Transducer Name1 |
---|---|---|---|
Engine RPM | T | R (RPM) | MAIN, PORT or STBD |
Oil pressure | P | P (Pascals) | MAIN, PORT or STBD |
Water Temperature | C | C (Celsius) | MAIN, PORT or STBD |
Alternator Voltage | U | V (Volts) | MAIN, PORT or STBD |
Engine Hours | G | H (Hours)2 | MAIN, PORT or STBD |
Fluid Levels | V | P (Percent) | FUEL, H2O, OIL, LIVE, GREY, BLK |
Battery Voltage | U | V (Volts) | STRT (Start or Main), HOUS (House or Auxilliary) |
Battery Current | U | A (Amps)3 | STRT (Start or Main), HOUS (House or Auxilliary) |
- These transducer names are generated by the TwoCan plugin.
- The use of 'H' to indicate hours is a customised use of the generic transducer type.
- Note this extends the usage of the "U" (Voltage Transducer) to include current measured in Amps.
NMEA 183 v4.11 Transducer Naming1:
Measurement Transducer | Type | Measurement Unit | Transducer Name |
---|---|---|---|
Engine RPM | T | R (RPM) | ENGINE#0, ENGINE#1 |
Oil pressure | P | P (Pascals) | ENGINEOIL#0, ENGINEOIL#1 |
Water Temperature | C | C (Celsius) | ENGINE#0, ENGINE#1 |
Alternator Voltage | U | V (Volts) | ALTERNATOR#0, ALTERNATOR#1 |
Engine Hours | G | null | ENGINE#0, ENGINE#1 |
Fluid Levels | V | P (Percent) | FUEL#0, FRESHWATER#0, OIL#0, LIVEWELLWATER#0, WASTEWATER#0, BLACKWATER#0 |
Fluid Levels | E | P (Percent) | FUEL#0, FRESHWATER#0, OIL#0, LIVEWELLWATER#0, WASTEWATER#0, BLACKWATER#0 |
Battery Voltage | U | V (Volts) | BATTERY#0, BATTERY#12 |
Battery Current | I | A (Amps) | BATTERY#0, BATTERY#1 |
- The plugin preference "Dual Engine Vessel" determines whether ENGINE#0 refers to the main or port engine.
- BATTERY#0 refers to the start battery bank, BATTERY#1 refers to the house battery bank.
Shipmodul Transducer Naming1:
Measurement Transducer | Type | Measurement Unit | Transducer Name |
---|---|---|---|
Engine RPM | T | R (RPM) | ENGINE0, ENGINE1 |
Oil pressure | P | P (Pascals) | ENGOILP0, ENGOILP1 |
Water Temperature | C | C (Celsius) | ENGTEMP0, ENGTEMP1 |
Alternator Voltage | U | V (Volts) | ALTVOLT0, ALTVOLT1 |
Engine Hours | G | null | ENGHRS0, ENGHRS1 |
Fluid Levels | V | P (Percent) | FUEL0, FRESHWATER0, OIL0, LIVEWELL0, WASTEWATER0, BLACKWATER0 |
Fluid Levels | E | P (Percent) | FUEL0, FRESHWATER0, OIL0, LIVEWELL0, WASTEWATER0, BLACKWATER0 |
Battery Voltage | U | V (Volts) | BATVOLT0, BATVOLT1 2 |
Battery Current | I | A (Amps) | BATCURR0, BATCURR1 |
- The plugin preference "Dual Engine Vessel" determines whether ENGINE0, ENGOILP0, ENGTEMP0, ENGHRS0 ALTVOLT0 refers to the main or port engine.
- BATVOLT0, BATCURR0 refers to the start battery bank, BATVOLT1, BATCURR1 refers to the house battery bank.
Examples of NMEA 0183 XDR sentences that may be used by the engine plugin are: TwoCan transducer naming: $IIXDR,P,158300.00,P,MAIN,C,23.11,C,MAIN,U,13.86,V,MAIN*6A $IIXDR,T,804.50,R,MAIN*54 $IIXDR,G,1.16,H,MAIN*52
NMEA 183 v4.11 transducer naming $IIXDR,P,140000.00,P,ENGINEOIL#1,C,90.0,C,ENGINE#1,U,12.00,V,ALTERNATOR#1*46 $IIXDR,T,890.50,R,ENGINE#1*4E $IIXDR,U,12.50,V,BATTERY#0,I,4.5,A,BATTERY#0*42 $IIXDR,G,200.5,,ENGINE#0,G,200.5,,ENGINE#1*7E $IIXDR,E,40.00,P,FUEL#0,E,80.00,P,FRESHWATER#0*47
Shipmodul transducer naming: $ERXDR,P,140000.00,P,ENGOILP1,C,90.0,C,ENGTEMP1,U,12.00,V,ALTVOLT1*34 $ERRPM,E,1,2400.00,,A*69 $ERXDR,U,25.50,V,BATVOLT0,I,4.5,A,BATCURR0*42 $ERXDR,G,1.16,,ENGHRS0,G,200.5,,ENGHRS1*69 $ERXDR,E,40.00,P,FUEL0,E,80.00,P,FRESHWATER0*50
There are a few features yet to be implemented in this version of the Engine Dashboard:
- It supports only a single rudder display.
- While the preferences dialog allows selection of Pressure units (Pascal or PSI), Temperature units (Celsius or Fahrenheit), Voltage Range (12 or 24 volts) and Dual Engine configuration, the display is only changed the next time OpenCPN is started,
The rationale for developing yet another dashboard was the following:
- The existing dashboard plugin has limitation of how many inputs/controls it can support. Therefore to add these engine displays would have meant deleting some of the other dashboard controls such as position, depth, speed.
- On the other hand the tactics_dashboard eliminates the above limitation, however adding engine displays to the tactics plugin may be of little interest and perhaps confusing to motor boat sailors.
- I also felt that it would be easier and simpler for me to release a simple dashboard purely to display engine & tank data and which would possibly be less confusing for end users.
Unfortunately development of both this new version of the TwoCan plugin and Engine Dashboard was undertaken independently and without the knowledge of the work being done on the new version of the tactics dashboard plugin which also adds some support for engine controls. I have yet to look at the new version of the tactics dashboard to see if it could be used instead of the engine dashboard plugin. I apologise for any confusion this may cause to end users.
On Linux (such as Ubuntu or Raspberry Pi) with OpenCPN v5.0, if the dashboard is in a horizontal orientation, OpenCPN crashes when adding or deleting an instrument to the dashboard. The workaround is to add or delete instruments to the dashboard when it is in a vertical orientation, or to add or delete instruments when the dashboard is not visible. (Note the same bug exists in the built-in dashboard and probably also in the tactics-dashboard)
git clone https://github.com/TwoCanPlugIn/EngineDashboard.git
Windows, Linux and Mac OSX are currently supported.
This plugin builds outside of the OpenCPN source tree
For all platforms, refer to the OpenCPN developer manual for details regarding other requirements such as git, cmake and wxWidgets.
For Windows you must place opencpn.lib into the engine_dashboard_pi/build directory to be able to link the plugin DLL. opencpn.lib can be obtained from your local OpenCPN build, or alternatively downloaded from http://sourceforge.net/projects/opencpnplugins/files/opencpn_lib/
mkdir enginedashboard/build
cd enginedashboard/build
cmake ..
cmake --build . --config debug
or
cmake --build . --config release
cmake --build . --config release --target package
or
cpack
or for Mac OSX
make create-pkg
Windows: Run the resulting packagename.exe installation package Linux: Install the resulting installation package with the appropriate Package Manager. For example with Ubuntu: sudo dpkg -i packagename.arch.deb (where arch is the cpu architecture such as amd64) Mac OSX: Install the resulting installation package.
Since version 1.2 of the Engine Dashboard, it supports the Plugin Manager feature that was included in OpenCPN v5.2. The Engine Dashboard may now be directly installed from the Plugin Manager.
Please send bug reports/questions/comments to the opencpn forum or via email to [email protected]
The plugin code is licensed under the terms of the GPL v3 or, at your convenience, a later version.
NMEA2000® is a registered trademark of the National Marine Electronics Association.