Announcement

Collapse
No announcement yet.

My home-brew Arduino OBD-II connection kit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • My home-brew Arduino OBD-II connection kit

    After many attempts to connect an Arduino with my car through the OBD-II port and having some success, I’ve finally made a kit which enables those who want to playing with Arduino and their cars to jump start quicky.

    My Arduino OBD-II Connection Kit consists of a modified ELM327-compatible adapter which can be wired with Arduino or other MCU boards. The adapter also provides 5V power supply, which is ignition controlled (put through when engine starts and cut off when engine stops). This can provides power (up to 500mhA current, with reverse protection) for Arduino board, shields or some other attached devices, so a wire getting power from somewhere else is not needed. This helps to make the gadget you made looks tidy. The only interface to the car of the adapter is the OBD-II connector.



    I also developed an Arduino library for the adapter as an open-source project. It provides Arduino developers an easy-to-use APIs to connect to and retrieve realtime data from a vehicle. The data includes:
    • Vehicle ID number
    • Vehicle speed
    • Engine RPM
    • Throttle position
    • Calculated/absolute Engine load
    • Engine coolant temperature
    • Intake temperature
    • Intake pressure
    • MAF flow pressure
    • Fuel pressure
    • Barometric pressure
    • Ignition timing advance
    • Engine running time
    • Vehicle running distance
    • Boost value (estimated)

    By having access to these data, the Arduino can compute, store or show the realtime vehicle status in any unique way. Here is a fancy dashboard gadget I made for my car (with video).


    If you are interested in my Arduino OBD-II connection kit, please see here for more details.
    Last edited by stanleyhuang; 06-16-2012, 01:35 AM.

  • #2
    Love it! Thanks for some really good articles and info!

    It looks as you're having a Volkswagen, if so have your tried to talk to your display in the dash via OBD/CAN?
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

    Comment


    • #3
      Hi Borte, I am glad you like my work.
      I drive a Volkswagen Scirocco 1.4TSI. Yes I use my OBD-II kit to pull data out from OBD/CAN.

      Originally posted by Borte View Post
      Love it! Thanks for some really good articles and info!

      It looks as you're having a Volkswagen, if so have your tried to talk to your display in the dash via OBD/CAN?

      Comment


      • #4
        Have you tried to send data back to the indash display? So that you can show the information you're getting from the car on the display between your rpm and speed?
        I've seen some aftermarket units that you can be plugged into the car's can bus that can show some extended information in this display.
        Failure is not an option...
        __________________________________________________ ______________________________
        The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

        Comment


        • #5
          That really depends on the type of the in-dash system and has no single standard like OBD-II.

          Comment


          • #6
            I know it's not OBD-II but the communication is CAN based so I was just wondering if you had given it a try.
            Failure is not an option...
            __________________________________________________ ______________________________
            The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

            Comment


            • #7
              I'm actually in the process of working with sending data the the mfd via CAN. The problem I've found is that in my Touareg data is sent to the display differently than in other VW's. For instance my nav and buttons comunicate over the infotainment bus and the mfd updates also go over the info bus but in the golf's and other VW's cluster info is done via the convience bus. Checkout http://secuduino.blogspot.com/ there is a guy who managed to send information to the FIS in his Seat Leon . I brought a cluster to help with my development efforts.
              Attached Files

              Comment


              • #8
                I think I will look into this. Thanks for the suggestion.

                Originally posted by Borte View Post
                I know it's not OBD-II but the communication is CAN based so I was just wondering if you had given it a try.

                Comment


                • #9
                  This is awesome. So by sending specfic CAN data can let the MDF display custom information? I have a RNS510 on my VW scirocco which I think is quite identy to many VW cars.

                  Originally posted by that_kid View Post
                  I'm actually in the process of working with sending data the the mfd via CAN. The problem I've found is that in my Touareg data is sent to the display differently than in other VW's. For instance my nav and buttons comunicate over the infotainment bus and the mfd updates also go over the info bus but in the golf's and other VW's cluster info is done via the convience bus. Checkout http://secuduino.blogspot.com/ there is a guy who managed to send information to the FIS in his Seat Leon . I brought a cluster to help with my development efforts.

                  Comment


                  • #10
                    Yes it's possible. There are a couple of youtube videos which show some setups but not much on how it's done. There's a lot you can do with canbus. I was able to use my arduino canbus setup to grab steering wheel button presses and send them to the carpc. I also use canbus to tell the carpc when the key is in the ignition and also when the car is in reverse. That's just scratching the surface, there's so much more that can be done.

                    Comment


                    • #11
                      The problem is I am not using a car PC but the stock RNS510 which is a close system. I doubt if it supports custom data display of any kind.
                      How do you grab data from can bus with Arduino? Use MCP2551 and MCP2515?

                      Originally posted by that_kid View Post
                      Yes it's possible. There are a couple of youtube videos which show some setups but not much on how it's done. There's a lot you can do with canbus. I was able to use my arduino canbus setup to grab steering wheel button presses and send them to the carpc. I also use canbus to tell the carpc when the key is in the ignition and also when the car is in reverse. That's just scratching the surface, there's so much more that can be done.

                      Comment


                      • #12
                        Oh OK, yeah I don't think you can modify the 510 to send extra data. Maybe with vagcom perhaps but I don't know. I totally pulled my RNS2 from the car since the carpc replaced it. Yes with the arduino I'm using mcp2215/2251's. I originally brought a spark fun CANBUS shield then after looking at the schematic I built another one without the GPS, LCD and joystick to connect with my teensyduino.

                        Comment


                        • #13
                          Originally posted by stanleyhuang View Post
                          The problem is I am not using a car PC but the stock RNS510 which is a close system. I doubt if it supports custom data display of any kind.
                          How do you grab data from can bus with Arduino? Use MCP2551 and MCP2515?
                          Can't you just place a Arduino in between the RNS and your dash? It can pass the CAN data from the RNS to the dash as well as generate new specific messages from the Arduino.
                          Failure is not an option...
                          __________________________________________________ ______________________________
                          The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

                          Comment


                          • #14
                            You can do that, all you need is 2 CANBUS devices. One to receive/transmit to the RNS and another to receive/transmit to the infotainment/convience bus. Then program the arduino to move msgs back and forth across them. There's a company who has boost and other information that they show on the MFD and that's exactly how they do it. I've found that you don't have to register on the bus to send info if you are mimicking something already on the bus...say the RNS. It comes down to what you want to put in the display and from where.

                            Comment


                            • #15
                              As far as I have seen, RNS does not display any vehicle data like RPM or coolant temperatures. That means the software running on it is not progammed to display those data. Even if I hack into the can bus, without replacing or injecting software in RNS, how will it display the data I want it to display?

                              Comment

                              Working...
                              X