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

Prius PID code hack suggestions

Discussion in 'Gen 3 Prius Technical Discussion' started by den7, Sep 23, 2014.

  1. den7

    den7 New Member

    Joined:
    Sep 19, 2014
    5
    0
    0
    Location:
    Hamilton, waikato
    Vehicle:
    2010 Prius
    Model:
    N/A
    Hi all,

    I am currently working on a Gen III Prius as part of a University project. The car is being used as a driving simulator and as such parts of the car have been removed (i.e. the batteries and the inverter). I've been tasked with making the speedometer display a value. Although I have found the PID, the speedometer is blank. As the batteries are missing, it's coming up with "check hybrid system". I'm assuming the car needs to go through a check sequence before the speedometer comes into life? Does anyone have any suggestions as to where to go at this point?

    So far I've tried to clear the DTCs in the HV ECU, but this only briefly brings up the hybrid system logo.
    My next thought was to send HV ECU ecu "all is well messages" through the canbus. But, I'm having trouble finding these codes.

    I might be able to access a working Prius and log can bus messages as the vehicle starts up, which I could use to perhaps run the simulator Prius through the correct start up process and hopefully get the speedometer working.

    Any suggestions would be more than welcome.

    Thanks!
     
  2. Pridoogv5

    Pridoogv5 New Member

    Joined:
    Sep 19, 2014
    21
    7
    0
    Location:
    Belmont, ca
    Vehicle:
    2012 Prius v wagon
    Model:
    Five
    Sure wish I had some idea of how to help but at least I can bump it up for someone else to see. What does your instructor say? Have you contacted anyone at Toyota or dealer service?
     
  3. den7

    den7 New Member

    Joined:
    Sep 19, 2014
    5
    0
    0
    Location:
    Hamilton, waikato
    Vehicle:
    2010 Prius
    Model:
    N/A
    Thanks for the reply. To update and answer some questions. I've managed to get the speedometer up and running using a PID that was buried in the appendix of an article written by Chris Valasek and Charlie Miller. PID 036B, clears the "Check Hybrid System" display and brings up the speedometer, which can then be hacked. Still plenty to go, but it's a start.

    I have also been in touch with Toyota NZ thanks to the lecturer in charge of the driving simulator, who is happy to give more insight into the Prius and the how the ECUs interact.
    Another interesting finding is that the speedometer interacts heavily with the ECU that manages the stability control, ABS etc.

    Although I have found several sources for PIDs, I'm having a little trouble figuring out how to interpret them as they do not match up to a lot of the data I am seeing on the can bus. For example, 01C4 is the ICE rpm data PID from Vasalek and Miller, but I've also seen 3C8 and 2C4 on other spreadsheets. Can anyone shed light on this? Have these been converted for use with other applications? If so I have searched, but I'm probably missing something with respect to conversion etc. Thanks for any help.
     
  4. den7

    den7 New Member

    Joined:
    Sep 19, 2014
    5
    0
    0
    Location:
    Hamilton, waikato
    Vehicle:
    2010 Prius
    Model:
    N/A
    OK, I'm still having some trouble with PIDs, some of them appear to line up with what I'm seeing, on forums, but others are still a bit of mystery. I'm using CanDo OBD software from cananalyser UK

    I've attached a static sample of the data I am seeing (this is from a Prius C powered on with the brake on). Some of the PIDs, such as ICE RPM, steering angle, and a few others I've managed to cross check with spreadsheets, but there are a bunch of codes I can't seem to cross check. As an example, codes 499, 49A and 49B are to do with ICE, but I have not seen these codes on any PID spreadsheets I have looked at. Also, some codes I would have expected to see (e.g. to do with the battery SOC etc) do not seem to be there. Am I missing something?
    Thanks for any help.
     

    Attached Files:

  5. den7

    den7 New Member

    Joined:
    Sep 19, 2014
    5
    0
    0
    Location:
    Hamilton, waikato
    Vehicle:
    2010 Prius
    Model:
    N/A
    Apologies, I have finally worked out why I'm having trouble. Most of the spreadsheets with IDs are related to specific software (e.g. torque or xgauge). I have worked out how to convert passive can IDs, but not others. Is there anyone who knows of a comprehensive list of generic PIDs for the Gen III Prius. Or information on how to convert xgauge IDs to generic types. Once again, any help would be much appreciated.
     
  6. Pridoogv5

    Pridoogv5 New Member

    Joined:
    Sep 19, 2014
    21
    7
    0
    Location:
    Belmont, ca
    Vehicle:
    2012 Prius v wagon
    Model:
    Five
    Again, I have no help to offer except to bump this up. If you do a specific search here on PriusChat, you may find some code warriors out there who might be able to help.
     
  7. den7

    den7 New Member

    Joined:
    Sep 19, 2014
    5
    0
    0
    Location:
    Hamilton, waikato
    Vehicle:
    2010 Prius
    Model:
    N/A
    Hi again,

    Thanks again for your reply. I've done a thorough search through PriusChat and have found some information, but most relates to scangauge or torque. However, we are making progress in determining the data coming off the can bus, but it's mostly hunches and the odd random find so far. Just got to keep picking away at it. Bit of blind luck always helps!
     
  8. neez

    neez Member

    Joined:
    Jan 9, 2014
    194
    37
    3
    Vehicle:
    2011 Prius
    Model:
    Two
    I use CANcapture and Vector Canalyzer at work. CANalyzer is pretty pricey, but you may be able to get a large student discount for the university. CANdo just seems like an extremely simple tool, doesn't seem to have much capability.

    On CANcapture i can view the messages in Cyclic mode and view all the raw messages. With someone driving, i can view all the data bytes which make some sort of change, they get highlighted for me to see. This helps me to narrow down the CAN message bytes of interest. I can replay all of this with Logging. I can then correlate the bytes of interest to speed to get the CAN message sent to the display for speed. The correlation is usually pretty easy to check because most programmers make the scaling some factor of 10. Like 1, or 0.1 or 0.001 etc....

    Also, pay attention to the source address of the message, and try to figure out which controller each message is coming from. Sometimes you can have the same data coming from multiple controllers but on different messages for some reason. They are essentially rebroadcast, sometimes with filtering or unit conversion, or just rebroadcast for some unknown reason.


    As for your project, depending on what resources you have available. I personally would probably use matlab and simulink for your simulator. You can take in analog voltages from an arduino to simulate a gas pedal, and use simulink to broadcast CAN messages to the display. Labview would also work for this. Or you can write raw C code to use with various CAN devices.
     
  9. ANGONNET

    ANGONNET New Member

    Joined:
    Oct 1, 2015
    2
    0
    0
    Location:
    Bavans, France
    Vehicle:
    Other Electric Vehicle
    Model:
    Persona
    Hi All,

    I'm currently working on Lexus CT200H hybrid and i get PIDs from the list found on the prius chat (GenIII Prius Custom PIDs for Torque app | Page 11 | PriusChat), thanks for this, it's a great help.
    But, my experience with PIDs is a bit limited, and for some PID which seems to be longer than 8 bytes (i.e 7E0 2101), I believe that the transmit message should be a CAN TP message (correct me if I'm wrong), I tried many king of CAN TP msg to get 2101 informations but no success for all the lenght of frame.
    Is there anyone who could know the request to do to get, for example, all informations coming from 7E0 2101?

    Thanks to everybody,