Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

OBD-II Display for Rasperry PI/Linux and Tiny-CAN


This text in German

Funcional scope

  • Query of measurement data (SID 0x01)
    • Configurable display of the PID values from 0x00 to 0x4E
  • Query of vehicle information (SID 0x09)
    • Breakdown of the Vehicle Identification Number (VIN) by manufacturer, country, model year, serial number, ...)
  • Read the error codes (DTC Diagnostic Trouble Codes) (SID 0x03)
    • Plain text Display of error codes via databank
  • Display CAN raw data (CAN-Trace)
  • Automatic recognition of CAN hardware and baud rate
  • HTML5 Web-Interface
  • Android: OpenXC (









First the Tiny-CAN software package must be installed. For the operation of the software only the "" is required. "OBD-Display" searches for this file in the directory "/opt/tiny_can/can_api".

Download the file "tiny_can_raspberry_XXX.tar.gz" from "" and unpack it in the directory "/opt". Replace XXX with the latest version. The archive can be deleted after it has been unpacked. The access rights for the "/opt" directory must first be set, here are the individual steps:

$ sudo chgrp pi /opt
$ sudo chmod -R 775 /opt
$ cd /opt
$ mv /home/pi/tiny_can_raspberry_XXX.tar.gz .
$ tar -xzvf  tiny_can_raspberry_XXX.tar.gz
$ rm tiny_can_rasberry_XXX.tar.gz

Compile the Tiny-CAN API:

$ cd /opt/tiny_can/can_api/src/mhstcan/linux
$ make
$ mv ../../..

The Lib is already included in the package, usually compiling is not necessary.

Install "git":

$ sudo apt-get install git

Get "ObdDisplay" from "github":

$ cd /opt
$ git clone

Install development packages:

$ sudo apt-get install gtk2.0-dev

Compile "ObdDisplay":

$ cd /opt/OBD-Display/linux
$ make

Set up web page:

$ cd /var/www
$ sudo chown -R pi html
$ sudo chgrp -R pi html
$ cd html
$ cp -R /opt/OBD-Display/www/* .

Start "ObdDisplay":

$ cd /opt/OBD-Display/linux/bin
$ ./ObdDisplay

HTML5 Web-Interface

OBD-Display HTML5 Interface


OpenXC is a hardware and software API for automobiles developed by Ford Bug Labs and proposed as an open standard. Homepage: and the sources at: OBD Display partly emulates the hardware of Ford and provides his data in "OpenXC JSON Message Format" per TCP/IP. The description of the data fomat can be found here:

Install Android App "OpenXC Enabler"

Downloads: The APK package for installation: OpenXC Enabler can also be installed via Google Play. The sources of the app:

Setup: adjust "Vehicle Interface" to "Network". Put "Network host address" on the address of the computer running OBD Display. "Network port" is fixed at 50001. OpenXC setup

Dashboard of the OpenXC Enabler App OpenXC Dashboard


Two of the core files, "obd_db.c" and "obd_decode.c" in this project are based on the OBD-II API from Ethan Vaughan,

With the ISO-TP driver I copied a bit from the ISP-TP Linux Kernel driver from Oliver Hartkopp,

Most of the information I have taken from this document from emotive: Really very worth reading, I can only recommend!

Other sources I have used:

Image Sources

Background graphic, VW Beetle:

Source:äfer.jpg Author: Marco Strohmeier Licence: Public Domain


Source: Author: Licence: CC BY-SA 4.0

The image files were adapted for my purposes.

Tips and Tricks

Start the program automatically

If no mouse or keyboard is connected to the PI, it is useful to start the program automatically. To do this, copy the file "ObdDisplay.desktop" from the directory "tools" to the directory "/etc/xdg/autostart".

$ sudo cp /opt/ObdDisplay/tools/ObdDisplay.desktop /etc/xdg/autostart

Turn off the screensaver

Open the file "/etc/lightdm/lightdm.conf" in the editor as user "root".

$ sudo leafpad /etc/lightdm/lightdm.conf

In the section "SeatDefaults" modify the line "xserver-command" as follows or add if not exist.

xserver-command=X -s 0 -dpms

Rotate the screen display

Open the file "/boot/config.txt" in the editor as user "root".

$ sudo leafpad /boot/config.txt

Enter the following line into the file


After reboot the image should be rotated 180° and you can turn the display upside down so that the microUSB connector is at the top.

Make the mouse pointer disappear

For our special application, the mouse pointer is annoying. To remove the cursor very easily, we can install a package that hides it:

$ sudo apt-get install unclutter

After a reboot the cursor is invisible.


  • Testing :-)
  • OBD-API: Customisation for SocketCAN, develop a SocketCAN Tiny-CAN API driver
  • OBD-API: Expand database ("obd_db.c/obd_decode"), PIDs
  • OBD-API: Different polling intervals for the individual PIDs
  • OBD-API: Only query PIDs that are also shown
  • OBD-API: Documentation
  • GUI: Porting to GTK3


OBD-II Display for Rasperry PI/Linux and Tiny-CAN







No releases published


No packages published