Display/diagnostics utility for Rover 14CUX ECU
Clone or download
Permalink
Failed to load latest commit information.
analogwidgets Unclutter manometer labels Mar 30, 2014
qledindicator Updated to build with Qt 5.0 Apr 26, 2013
.gitignore Add build/ dir to gitignore Jul 26, 2015
CMakeLists.txt Change fuel map static log data to hex Sep 19, 2018
LICENSE Removing .txt extensions for LICENSE and README, and renaming output … Mar 3, 2012
README Fix grammar Jul 13, 2018
aboutbox.cpp Beautify code somewhat Jan 20, 2016
aboutbox.h Beautify code somewhat Jan 20, 2016
batterybackeddisplay.cpp Tweak battery-backed RAM display and add labels for keyboard shortcuts Nov 29, 2016
batterybackeddisplay.h Add stdint.h include to fix win32 build issue May 23, 2017
batterybackeddisplay.ui Tweak battery-backed RAM display and add labels for keyboard shortcuts Nov 29, 2016
commonunits.h New fullscreen command line option and general code cleanup Aug 24, 2018
cuxinterface.cpp New fullscreen command line option and general code cleanup Aug 24, 2018
cuxinterface.h New fullscreen command line option and general code cleanup Aug 24, 2018
faultcodedialog.cpp Beautify code somewhat Jan 20, 2016
faultcodedialog.h Beautify code somewhat Jan 20, 2016
fueltrimbar.cpp Better workaround for fuel trim bar repaint failure with small values Nov 19, 2017
fueltrimbar.h Beautify code somewhat Jan 20, 2016
help.html New fullscreen command line option and general code cleanup Aug 24, 2018
helpviewer.cpp Beautify code somewhat Jan 20, 2016
helpviewer.h Beautify code somewhat Jan 20, 2016
idleaircontroldialog.cpp Beautify code somewhat Jan 20, 2016
idleaircontroldialog.h Beautify code somewhat Jan 20, 2016
key.png Initial Feb 29, 2012
logger.cpp Change fuel map static log data to hex Sep 19, 2018
logger.h Fix logging of adjusted road speed Jan 1, 2017
main.cpp New fullscreen command line option and general code cleanup Aug 24, 2018
mainwindow.cpp New fullscreen command line option and general code cleanup Aug 24, 2018
mainwindow.h New fullscreen command line option and general code cleanup Aug 24, 2018
mainwindow.ui Change fuel map header row font size for better visibility May 23, 2017
make-mingw-debug.bat Win7/Qt5 build pain Jan 7, 2014
make-mingw-release.bat Win7/Qt5 build pain Jan 7, 2014
optionsdialog.cpp New fullscreen command line option and general code cleanup Aug 24, 2018
optionsdialog.h New fullscreen command line option and general code cleanup Aug 24, 2018
optionsdialog.ui Add speedometer adjustment option Dec 29, 2016
rovergauge_resources.qrc Switching help from Sphinx system to single, simple HTML, with a buil… Feb 5, 2013
serialdevenumerator.cpp Beautify code somewhat Jan 20, 2016
serialdevenumerator.h Beautify code somewhat Jan 20, 2016
simulationmodedialog.cpp Beautify code somewhat Jan 20, 2016
simulationmodedialog.h Beautify code somewhat Jan 20, 2016

README

----------
RoverGauge

Download latest release:
https://github.com/colinbourassa/rovergauge/releases/latest

Discussion group:
https://groups.google.com/forum/#!forum/rovergauge
----------

RoverGauge is a graphical display and diagnostic tool that reads runtime data
from a Lucas 14CUX engine management system. The 14CUX was paired with the
Rover V8 engine in Land Rover vehicles from 1990 to 1995, and also in sports
cars made by low-volume automakers (TVR, Morgan, etc.) throughout the 1990s.

RoverGauge depends on another piece of software that I wrote, libcomm14cux.
Each of these two projects has its own GitHub repository:

https://github.com/colinbourassa/rovergauge
https://github.com/colinbourassa/libcomm14cux

-------
License
-------
RoverGauge is licensed under the GPL v3. See the file "LICENSE" for details.

----------
Disclaimer
----------
While this software has been shown to be reliable and is provided in good
faith, it is provided with ABSOLUTELY NO WARRANTY.

----------------------
Installing and running
----------------------
If you're running Windows, the simplest way to get started is to download the
Win32 binary archive. Most people will probably want to do this. The archive
contains the RoverGauge executable, Qt libraries, and libcomm14cux library,
all of which are required to run. The files should simply all be placed in the
same directory with rovergauge.exe.

If you're running Linux, you can get a Debian package (.DEB) for your system's
architecture.

It's also possible to build RoverGauge from the code yourself. This can be done
with Linux or Windows. In either case, you'll need CMake (version 2.8.11 or
newer) as well as version 5.x of the Qt SDK.

------------------
Usage and features
------------------
For RoverGauge to do anything useful, the computer on which it's running must
be connected to the serial port in the 14CUX wiring harness. This requires
building a custom cable using one of FTDI's USB-to-RS232 converters. You can
find the details in this article:

https://github.com/colinbourassa/libcomm14cux/blob/wiki/HardwareInterface.md

When the USB FTDI device is connected to the PC, its driver will present it
as a COM port if using Windows, or a /dev node if using Linux. Enter the name
of the device (such as "COM3") in the "Serial device name" field of the
"Edit settings" dialog, under the "Options" menu. (The software will attempt to
populate the list of serial devices automatically, so that you can simply
select it from the drop-down box.)

Once the device name is set and the 14CUX is running, use the "Connect" button
in the upper left of the main window to open the serial port and begin reading
data. The "Communications" lights in the upper right will show the status:
green if everything is working and the 14CUX is responding to read requests, or
red if there's a problem. The red light will be lit if the 14CUX is off, if
the serial cable wasn't wired correctly, or if the wrong COM port was chosen.

To access the online help about the data displayed by RoverGauge, open the
"Help" menu and select "Contents..."

---
FAQ
---
Q: Is this an alternative to OBD-II code readers or OBD-II diagnostic software?

A: No. The 14CUX system doesn't conform to the OBD-II standard. This software
uses a library that I wrote specifically to communicate with the 14CUX, using
the ECU's unusual baud rate and proprietary software protocol. The details of
all of this were discovered through reverse-engineering the code in the 14CUX
ROM.


Q: Can this software be used to modify the code or data in the ECU (such as the
fuel maps)?

A: Unfortunately, no. When the ECU is running, it reads fueling values from the
ROM. Modifying the ROM requires removing and reprogramming the chip.

----------------------------------------------
Notes on building from source for Win32 target
----------------------------------------------
The most straightforward way to build from source is by using the
M Cross Environment (MXE, http://mxe.cc). Within this environment, both Qt5 and
libcomm14cux can be built for a Win32 target. The 'mxe-build.sh' script included
with the RoverGauge source can then be called with the path to MXE. It will run
CMake with the appropriate parameters.

Note that the packaging portion of CMakeLists.txt does not take into account any
run time (DLL) dependencies beyond Qt5Core, Qt5Widgets, Qt5Gui, zlib, and the
C and C++ standard libs. If you build against an installation of Qt with support
for other features (ICU, libpng, Freetype, etc.), you may find that the
resulting RoverGauge .zip file does not include all the required DLLs.

(EOF)