Communication library for Rover MEMS "ROSCO" engine management diagnostics
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Download releases:

Discussion group:!forum/mems-diagnostics

librosco is a cross-platform library that is capable of communicating
with the Rover Modular Engine Management System (MEMS) via the ECU's diagnostic

Currently, this library only supports the protocol used by MEMS version 1.6.

A special cable is required to connect to the ECU. This is detailed on the
following web site:

The library itself has no user interface and requires a front-end application
to display data. Included in this archive is a simple command line utility
(named "readmems") which uses the library to retrieve data and test actuators.
The MEMSGauge project provides a graphical front-end:

Comments, questions, bug reports, and bugfixes should be directed to Please include the version number of the library in
any correspondence.

librosco is licensed under the GPL v3. See the file "LICENSE" for details.

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

0.1.7: Added support for more data fields
       Fixed win32 build
       Renamed library to "librosco"
0.1.1: Bugfix in initial connect sequence
0.1.0: Initial release

librosco has been tested under Linux (Ubuntu 14.04, AMD64), but can be
build from source on many different operating systems.

Building the library from source
The librosco library can be built using Linux, BSD, OS X, or Windows.

Note that the makefile generated by CMake will produce output appropriate for
the operating system. In Linux, the output is a dynamic shared object (DSO)
file, named something like "". In Windows, the output is a DLL,
named something like "librosco.dll".

CMake can be obtained from, and MinGW from

== Building for Linux / BSD / OS X ==

The following software is required:

* CMake (>= 2.8)
* gcc (or equivalent)
* make

From the directory containing the librosco source code, execute the

$ cmake .
$ make
$ sudo make install

Running the 'make install' directive will copy the header files to /usr/include
and the shared library to /usr/lib. These directories can be changed by editing
CMakeLists.txt and re-running "cmake ." and "make install". You may want to do
this if you do not have superuser/administrator privileges on the machine.

== Building for Windows ==

A Windows build requires the following software:

* CMake (>= 2.8)
* MinGW

Note that the MinGW Project also provides "MSYS", which is a more complete GNU
environment; installation of MSYS is _not_ necessary to build librosco.

After CMake and MinGW are installed, run the following commands from a command
prompt in the directory containing the librosco source:

 cmake . -G "MinGW Makefiles"
 make install

Note: the 'install' directive under Windows will copy the output DLL, readmems
executable, and header files to C:\mems-rosco by default. If the user running
the 'make install' step does not have write permissions at C:\, this step may

Notes for those developing frontends to librosco
Because Windows still uses legacy DOS names for certain devices (such as COM
ports), there are restrictions on how such devices may be manipulated by code.
In order to open COM ports beyond COM9, Windows I/O calls (such as CreateFile())
require use of the prefix "\\.\" on the device name, as in "\\.\COM10". (Also
note that the backslashes must be properly escaped where appropriate.)