1. Attachments are working again! Check out this thread for more details and to report any other bugs.

OBD 2 - Freematics Arduino I2C Adapter

Discussion in 'Gen 3 Prius Accessories and Modifications' started by Monroe07, Oct 12, 2015.

  1. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    So I've got a 2012 Gen 3 Prius and I've been trying to use the Freematics brand I2C OBD adapter. I've got a few PID's working but my speed is off and I can see the RPM properly, but I can't get a reponse from the Fuel Level or Hybrid battery state of charge PID's. Anyone have any success? What PID's are you using? Side note, I've tried all the usual ones from various sites. Not sure what I'm doing wrong
     
  2. Redpoint5

    Redpoint5 Senior Member

    Joined:
    Aug 31, 2013
    1,026
    508
    0
    Location:
    Portland, OR
    Vehicle:
    2012 Prius Plug-in
    Model:
    Plug-in Base
    What software are you running?

    The fuel level and hybrid battery state PIDs don't work with Torque and the Prius. Check out this thread for Torque PIDs.

    I know my speedometer reads 2 MPH fast, and Torque displays the correct speed.
     
  3. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    I'm not using a software per se, I'm using an arduino-to-OBD 2 adapter. I stated that above. It's all arduino based, and most (all but 2 useful ones at least) are not responding. What type of network is the fuel state reported on? I know the Prius has at least 2 different types of "computer" networks on it. Anyone know how the sensor in the fuel tank sends out info to the car? Is it a 5v sensor that puts out a voltage relative to the amount of fuel detected much like a photo-resistor does with light level? On a separate note, is the hybrid battery state of charge sensor working on a similar network/principal? The car knows the battery level, with the right info, it should be possible to recieve the same info and process it into a usable value
     
  4. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    On another note @Redpoint5 does your readout show mph natively or does it convert from kph? I've seen mixed info on that
     
  5. Redpoint5

    Redpoint5 Senior Member

    Joined:
    Aug 31, 2013
    1,026
    508
    0
    Location:
    Portland, OR
    Vehicle:
    2012 Prius Plug-in
    Model:
    Plug-in Base
    I haven't studied OBDII protocol or the Torque application at all, so I don't know what the OBDII natively sends. I'm merely able to follow instructions found on this site to import PIDs relevant to the Prius, and from my observation have failed to receive data for both the hybrid battery SoC and fuel level. I am able to see individual bank voltages, and having a PiP, also can display the overall battery SoC, but the one labeled hybrid battery SoC doesn't work.
     
  6. BZzap!

    BZzap! Senior Member

    Joined:
    Jun 13, 2012
    1,607
    877
    0
    Vehicle:
    2012 Prius
    Model:
    Two
    These are the codes I have programmed into my ScanGauge
    1. SOC TDX 07E2015B RXF 0441855B0000 RDX 2808 MTH 03E800FF0000

    2. FLv TDX 07C02129 RFX 046185290000 RDX 2808 MTH 13880EC90000

    These are from the ScaNGauge CANSF guide.
    Try these an see what happens.
     
  7. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    So, BZzap!, The 2 codes you are providing work for you?
    The problem I have with the ones you provided is that I have to decipher what I need to send via the Arduino. The library I'm using to communicate sends a lot of the headers for me, and perhaps I need to delve into it to change some things, but that's for another day. from what i can tell, and if you know more about this than I do, please do tell me,

    SOC should be sent as a mode 2 PID, and the PID itself is 015B
    Fuel Level is also a mode 2 PID and should be 129

    I'll try them and see what I get (or don't)
     
  8. BZzap!

    BZzap! Senior Member

    Joined:
    Jun 13, 2012
    1,607
    877
    0
    Vehicle:
    2012 Prius
    Model:
    Two
    The 2 code that it sent work perfectly for my ScanGauge. As you stated, the language these two devices use is like Russian vs Latin. The code I supplied are the queries for the CANSF protocol that the Prius ECM understands. I'm not familiar with the FreeMatics. You may have to go to the technical people at FreeMatics.
     
  9. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    So after spending the better part of a day, I'm at my wits end with this adapter. My goal was to be able to take data from the car, like speed, SOC, and fuel level and put it on a heads up display on the dash of my car. My entire project is/was centered around using this adapter. Guess it's getting scraped unless someone out there can figure it out. Thank you for your help, to both of you
     
  10. Monroe07

    Monroe07 Junior Member

    Joined:
    Oct 10, 2015
    7
    0
    0
    Location:
    California, United States
    Vehicle:
    2012 Prius
    Model:
    Two
    OK, so I got another Arduino CAN Device, from SeeedStudio, which appears to be easier to use provided that one knows exactly what to send, which I don't. BZzap!, do you know what each of the fields means? for example,

    SOC TDX 07E2015B RXF 0441855B0000 RDX 2808 MTH 03E800FF0000

    Do you know what the purpose of TDX, RXF, RDX, and MTH Stand for or are doing?
     
  11. BZzap!

    BZzap! Senior Member

    Joined:
    Jun 13, 2012
    1,607
    877
    0
    Vehicle:
    2012 Prius
    Model:
    Two
    These a acronims are proprietary codes for the Linier Logic (ScanGauge) I.e. TDX: transmit data, RDX: receive data, RXF: receive filter data and so on. Essentially, they are just a way to identify the alfa numeric strands of numbers and letter that the system protocol needs to communicate back and forth. As for figuring out how your Adrurino interprets the necessary codes is way beyond me. Hack your vehicle CAN-BUS with Arduino and Seeed CAN-BUS Shield
     
    #11 BZzap!, Nov 2, 2015
    Last edited: Nov 2, 2015