No announcement yet.

Open-source OBD-II data logger (based on Arduino)

  • Filter
  • Time
  • Show
Clear All
new posts

  • Open-source OBD-II data logger (based on Arduino)

    I have developed an open-source OBD-II data logger, which displays (on a 12864 OLED display module) and records (to a SD card) the OBD-II data (engine RPM, speed etc.). The device is based on Arduino, a SD reader breakout board, and a monochrome OLED display module.

    By pulling out the SD and inserting it into computer's SD card reader, the data can be illustrated into a chart like this:

    • 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

    Recorded data includes:
    • Engine RPM
    • Speed
    • Throttle position
    • Engine load
    • Engine coolant temperature
    • Intake pressure
    • Intake temperature

    The recorded data is stored in a SD card in the format of CSV. Each line represents a record with time, data type and data value like this:

    [Time Elapsed],[Data Type],[Data Value]

    Time Elapsed is the time elapsed in milliseconds since previous data record. Data type is the OBD-II pid number which is defined in the OBD-II library (e.g. 0xC is engine RPM). Here is an example data clip:


    The source coude is available here. For more details and source code, please visit my website.
    Last edited by stanleyhuang; 03-19-2013, 11:33 AM.

  • #2
    Looks promising. I know it is early stages but i'll ask what most people would be thinking - Can the data displayed be customisable and can a slightly bigger OLED be used instead?

    Edit: Just went to your website and my questions were answered - I think I will order soon

    Thanks for this.
    Last edited by mos33y; 03-12-2013, 04:20 AM.


    • #3
      sorry 2 questions please Stanley,

      1. I can see on your site there are some notes that talks about adding the MPU6050. Will your kit be incorporsting this in the future?

      2. As far as I can see, the MPU6050 does not have temp sensors. Will these sensors also be added?


      • #4
        Right now I am finishing some final tests of embedding MPU6050 module. Soon there will be an additional model of the Arduino OBD-II adapter with MPU6050 embedded.
        I have no plan for adding temperature sensor inside the adapter yet as I think the sensor better stay outside of the box in order to retrieve more accurate ambient temperature. What do you think?


        • #5
          Yes sensors should be outside. But I think it would be a useful addon to your kit.

          I have been thinking about incorporating the arduino in the car for a while now and your kit ticks a lot of boxes for me.

          What I would love to see is a bigger oled display so I can fab into dash etc. To display real time car data, that is not reliant on my car pc to be on/active.

          Another selling point for me would be the ability to somewhat customise the data seen on screen without having to recode.
          Just my 2cents as a prospective customer (and enthusiast).



          • #6
            Bigger OLED module will cost A LOT MORE that's why I pick the current one.
            For your second point, actually I have written a sketch with 3 displays of different data set on a 84x48 LCD switchable by a button. The source code located at samples/dashboard_4884 directory in the SVN.
            Here are some pictures of the sketching running on Arduino with a LCD4884 shield stacked.

            More pics here
            Last edited by stanleyhuang; 03-13-2013, 09:15 AM.


            • #7
              Your sketches use obd2 pid ids, what if I buy the canbus only dapator. Will your codes still work? While we are on the canbus adaptor, is there an advantage of buying this rather than the obd in speed etc?


              • #8
                The can bus only version provides the same serial interface, so the sketch will work for both.