Hi, I am Stanley. Besides developing and maitaining MediaCoder, I also spend sometime on Arduino and have fun with it. After working out and merchandising my Arduino OBD-II adapter, I was thinking of putting up some kits based on the adapter with which people can start playing Arduino with cars more easily. A useful application as my initial approach is a OBD-II data logger device which reads out sensor data from vehicle and records the data on mass storage (e.g. SD card). Besides data logging, it better also displays some realtime data and states on a screen. The logged data also needs something to illustrate, possibly into a chart. All these thoughts brought up the Arduino OBD-II data logger kit and this website.
This Arduino-based OBD-II data logger kit consists of all parts needed to puts up a working OBD-II data logging device. It displays (on a 128×64 OLED display module) and records (to a SD card) selected OBD-II data (engine RPM, speed etc.). The bright monochrome OLED display has very good visibility in daylight regardless of its small size. You can place it anyway on your dashboard that you feel comfortable. By pulling out the SD and inserting into computer (with a SD reader or a built-in one), the data can be easily illustrated into a chart.
Objectives:
- Displaying realtime engine RPM and vehicle speed on OLED screen
- Recording realtime OBD-II data to SD card in text-based CSV file format
- Illustrating the recorded data in as chart
- Software fully open-source so that people can easily modify the way the device works
Parts Used:
- Arduino Nano (main controller)
- Arduino OBD-II adapter (for retrieving data from vehicle)
- SD breakout board (for storing data to SD card)
- OLED display module (for displaying data, the logger will work either with or without it)
To obtain the source code or details about data logging file format, please refer to Software page.
Kit Pictures

Arduino Nano is used as the main controller unit and connected with a I2C OLED module and a SD breakout board



No soldering is required! Simply put all the wires on the right pins and it will just work!
Wiring Up
All the parts can be connected with wires as following diagram and no soldering is needed.
Connecting Arduino with SD breakout
The SD breakout board is connected with Arduino via SPI interface, provided at D11~D13 or ICSP connector. There are some differen
- VCC -> Arduino 5V (or ICSP 2)
- GND -> Arduino GND (or ICSP 6)
- MOSI -> Aruino D11 (or ICSP 4)
- MISO -> Arduino D12 (or ICSP 1)
- CLK -> Arduino D13 (or ICSP 3)
- SDCS -> Arduino D10
Please note that, on Arduino Leonardo, the SPI is only available at ICSP connector (see this for difference in SPI pins on different Arduino boards).

Connecting Arduino with I2C OLED module
The OLED module can be powered by either 3.3V or 5V. It has 8 pins at the back and 4 of them need to be wired.
Pins to to wire:
- 3v3 -> Arduino 3.3V
- GND -> Arduino GND
- SDA -> Arduino SDA (A4)
- SCL -> Arduino SCL (A5)
Connecting Arduino with OBD-II
The OBD-II adapter provides power for Arduino and the connected devices and serial UART connection with Arduino.
- TxD (white line) - Arduino D0 (RxD)
- RxD (green line) - Arduino D1 (TxD)
- 5V (red line) - Arduino 5V
- GND (black line) - Arduino GND
Kit for Order
If you want to get this open-source Arduino OBD-II logger kit on hand and play with it, you can order it from here. The kit consists of:
- Arduino OBD-II adapter (x1)
- Arduino Nano or Leonardo (x1)
- SD breakout board (SDHC compatible, SD card not included) (x1)
- I2C OLED display module (128×64 pixels) (x1)
- Wires needed for connecting all parts (x10)
- Complete source code (sketch & libraries)

The complete source code will be provided so you can freely modify it to change or add features you need (e.g. changing the display or logging other data you need). To order this kit, please click HERE.



