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

ScanGaugeII work on 2010?

Discussion in 'Gen 3 Prius Accessories and Modifications' started by taxachusetts, Jun 29, 2009.

  1. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Vincent,

    Any idea where I can find the Gen III PID map? In the Repair Manual there is a listing of inputs and outputs along with their units and calibrated ranges. A lot of existing XGauge PID's are shown in these listings. It gives the ECU input and output connection points. It does not give any reference to CAN communications.

    Would this be of any help with the PID's and XGauge formatting?

    Dwight
     
  2. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    The entire range of 256 possible PIDs is divided in 8 blocks of 20h PIDs. The data in the first PID of each block is a bitmap of the PIDs implemented in that block. e.g. 00h, 20h, 40h, 60h, 80h, A0h, C0h & E0h. The 4 Xgauges I created are for 60h & 80h block only, you can do the rest too if you want the complete map.

    Yes, you need those to help you with the MTH later but first you need to find out where the PIDs are located. The PID map does not show you which PID is at which location exactly but it does show which are the valid PIDs. Some monitoring of the responses from the valid PIDs together with some guessworks will help to match the listings to the PID map. This is how I did it for the Gen1.

    There are other easier ways if you have Techstream or THHT. But not everyone are willing to pay for that high price. For those that are willing to pay, there is no incentive to reverse-engineer it.

    Vincent
     
  3. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Do I need to run each of the four XGauges that you created and then let you know what is reported by the ECU? From this you can determine the PID map?
     
  4. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Vincent,

    I configured the above PID map XGauges this afternoon and they returned the following:

    • 601 = C301
    • 602 = 9999
    • 801 = 8244
    • 802 = 4921
    I did this twice for each word and received the same response twice.

    I did have some issues with this. The first time I configured 601 the data was blank. While stepping through the XGauges to get to 601 I noticed that a few of the existing gauges had their names corrupted with symbols in place of some of the letters.

    I looked at 601 configuration and noticed that for the TXD there were multiple 0's added to the original numbers. All the way across the first line and halfway across the second line. I tried 602 next and this worked the first time. I looked at the TXD and the extra 0's were gone. I then did the 801 and 802. Then I went back to 601 and it worked correctly.

    I think I am going to have to go back to the Default status of the ScanGauge II to try to get rid of the Name corruptions.

    Dwight
     
  5. spiderman

    spiderman wretched

    Joined:
    Jul 5, 2009
    7,543
    1,558
    0
    Location:
    Alaska
    Vehicle:
    2010 Prius
    Model:
    II
    :eek: you initiated the self-destruct sequence! ;)
     
  6. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    Thanks! Here is how to decode the PID map. First, we need to combine the word into double word and then convert to binary.

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7 Column 8 Column 9
    0 High nibble 0000 0000 0000 0000 1111 1111 1111 1111
    1 Low nibble 0123 4567 89AB CDEF 0123 4567 89AB CDEF
    2 C3019999 1100 0011 0000 0001 1001 1001 1001 1001
    3 82444921 1000 0010 0100 0100 0100 1001 0010 0001

    Next, we get the weight of each '1':

    For 60h -> 00, 01, 06, 07, 0F, 10, 13, 14, 17, 18, 1B, 1C & 1F
    For 80h -> 00, 06, 09, 0D, 11, 14, 17, 1A & 1F

    Now we convert those to PIDs:
    00 + 1 + 60 = 61
    01 + 1 + 60 = 62
    06 + 1 + 60 = 67
    07 + 1 + 60 = 68
    0F + 1 + 60 = 70
    10 + 1 + 60 = 71
    13 + 1 + 60 = 74
    14 + 1 + 60 = 75
    17 + 1 + 60 = 78
    18 + 1 + 60 = 79
    1B + 1 + 60 = 7C
    1C + 1 + 60 = 7D
    1F + 1 + 60 = 80
    00 + 1 + 80 = 81
    06 + 1 + 80 = 87
    09 + 1 + 80 = 8A
    0D + 1 + 80 = 8E
    11 + 1 + 80 = 92
    14 + 1 + 80 = 95
    17 + 1 + 80 = 98
    1A + 1 + 80 = 9B
    1F + 1 + 80 = A0

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6
    0 PID PCI Name
    1 61 MG1 RPM MG1 Temp
    2 62 MG2 RPM MG2 Temp
    3 67 MG1 Torque
    4 68 MG2 Torque
    5 70 Inverter MG1 Temp
    6 71 Inverter MG2 Temp
    7 74 DC/DC Upper Converter Temp DC/DC Lower Converter Temp Battery Voltage Voltage After Boost
    8 75 Inverter Coolant Temp
    9 78
    10 79
    11 7C MG1 Carrier Frequency MG2 Carrier Frequency
    12 7D A/C Power Usage
    13 81
    14 87 Traction Battery Temp Battery Temp 1 Battery Temp 2 Battery Temp 3
    15 8A Battery Amps
    16 8E
    17 92
    18 95
    19 98 Battery Charge Max Battery Discharge Max
    20 9B

    The PCI will tell you how many bytes in that PID. To get the PCI:

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7
    0 XGauge TXD RXF RXD MTH NAM Notes
    1 Find PCI 07E22161 046105610000 1008 000100010000 Num No. of bytes

    Now, you can compare this map against the lists in the Repair Manual to see which PIDs not found yet. For e.g., the Battery Block Voltages and Internal Resistance for the 14 Blocks. The Block Voltages are word size and Internal Resistance are byte size. So, if the PCI is 14, 28 or more, that is the one you should be looking for.

    Vincent
     
  7. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    LOL - my first thoughts exactly :)

    When I powered down the ScanGauge and later powered it back up, the corrupted names were back to normal. Everything looks OK right now.
     
  8. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    The Find PCI that you configured returned a 7.

    I followed you as far as making a double word and then coverting to binary. You lost me with the weight of each 1 for the 60h and 80h. Can you explain this a little slower ? :)

    I will try to put together a table from the list in the Repair Manual and compare it against the table of PID's that you created above.
     
  9. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7 Column 8 Column 9
    0 High nibble 0000 0000 0000 0000 1111 1111 1111 1111
    1 Low nibble 0123 4567 89AB CDEF 0123 4567 89AB CDEF
    2 C3019999 1100 0011 0000 0001 1001 1001 1001 1001
    3 82444921 1000 0010 0100 0100 0100 1001 0010 0001

    First, look for a '1' in the binary data. Then refer to the corresponding High nibble & Low nibble to get '00'.

    To convert to PID, we need to add the Block address 60h with an offset of 1.

    00 + 1 + 60 = 61

    When you have the time, pls help to find the rest of the PCI by replacing 61 with another PID.

    Vincent
     
  10. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Thanks for the followup explanation. Referring to the High and Low Nibble is what I was missing.

    I will try the other PCI's by replacing the 61 with the other PID numbers. I will create a list and let you know.

    Thanks for your help.
     
  11. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Do I just replace the two red 61's in the above configuration with the other PID's?
     
  12. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    Yes.

    From the PID Map, most of the HV Bty related PIDs seem to be at Block 80h. It is highly possible the Internal Resistance and Block Voltages are in those PIDs, i.e. 81, 8E, 92, 95 & 9B.

    Vincent
     
  13. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III

    I went through your PID list and received the following PCI info:
    • 61 = 7, 7C = 4
    • 62 = 7, 7D = 5
    • 67 = 7, 81 = Blank
    • 68 = 7, 87 = Blank
    • 70 = 6, 8A = 4
    • 71 = 6, 8E = 4
    • 74 = Blank, 92 = Blank
    • 75 = 6, 95 = Blank
    • 78 = 4, 98 = Blank
    • 79 = 6, 9B = 6
     
  14. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    For those that are blank, pls change to this Xgauge:

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7
    0 XGauge TXD RXF RXD MTH NAM Notes
    1 Find PCI 07E22181 02EA05610681 1808 000100010000 Num No. of bytes


    Vincent
     
  15. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Vincent,

    I tried the above Find PCI XGauge and ScanGauge did not like this one. It returned a blank but when I went back to edit it I found all of the parameters were filled with F's. I tried to edit it again but no luck. The number of the XGauge had changed from 15 to 65 and would only rotate between 65 to 68.

    All of the other XGauges were working properly but I could not get to the edit mode for them. I ended up resetting the Default Setting and then was able to get back and edit XGauge 15 again. I was pleased to find that all of my configured XGauges were still there. I just had to redo the original Setup data and probably lost my Trip data.

    Dwight
     
  16. 2009Prius

    2009Prius A Wimpy DIYer

    Joined:
    Mar 25, 2009
    2,705
    510
    63
    Location:
    USA
    Vehicle:
    2009 Prius
    A much easier way to do it would be to invest in an OBD-USB device and connect it between the car and a laptop to do all the queries and research. Once the PIDs are deciphered it will be straightforward to code for ScanGauge.
     
  17. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    This appears to be the same problem as cwerdna reported:.

    http://priuschat.com/forums/gen-ii-...ngauge-4-05-problems-2nd-gen.html#post1347755

    I suspect this has something to do with memory protection. I don't know how Linear Logic did it in 4.05 but memory protection is very common in the computer system.

    Vincent
     
  18. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    Yes, what happened to cwerdna is very similar to what happened to me when I tried to enter the last entry. Now that I have reset the Default Settings I may go back and try it again to see if I get the same result. Now that I know I can reset to Default and not lose all of my XGauges I do not have a problem trying it again.
     
  19. jdcollins5

    jdcollins5 Senior Member

    Joined:
    Aug 30, 2009
    5,131
    1,338
    0
    Location:
    Wilmington, NC
    Vehicle:
    2010 Prius
    Model:
    III
    I tried again to re-enter your last Find PCI parameters and got very similar results. I ended up having to reset the Default Settings again to be able to edit the XGauges.
     
  20. vincent1449p

    vincent1449p Active Member

    Joined:
    May 24, 2004
    894
    331
    0
    Location:
    Singapore
    Vehicle:
    2012 Prius c
    Thanks for trying!:) It is alright if you can't get the PCI this way, I 've other methods to find the PIDs.

    Those PCIs that are blank tell us that they contain multi-frame msg. The Block Voltages we 're looking for could be in one of them. There are 14 Blocks, so if we tried to read the last Block, only those msg. that are 30 bytes or longer will have response, other shorter msg. will be blank.

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7
    0 XGauge TXD RXF RXD MTH NAM Notes
    1 Find Battery Block 14 Voltage 07E22174 010702EA0324 2010 000100010000 V14 may need to divide by 100 to get Volts


    Repeat the above by replacing 74 with 81, 87, 92, 95 & 98. If there are more than one response that are non-blank, then we need to verify it against a known value, e.g. BV+.

    Similarly, we can do the same for Internal Resistance values:

    Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7
    0 XGauge TXD RXF RXD MTH NAM Notes
    1 Find Battery Block 14 Resistance 07E22174 010702EA0322 2808 000100010000 R14 should be a fixed number


    Vincent