Thanks for checking. Any ideas on how to get it to work?
The built in PID’s work. There has to be a way to get these to work.
With the Scan Gauge II they give codes to read PID’s. Here is an example for the 2010 Prius.
PID – 00BC
Long name – Miles per Hour
Short Name – MPH
RXF – 010042B40000
First, for simplicity’s sake, lets separate them into 3 groups of 2 characters.
01 00 – 82 3B – 00 00
First lets take a look at the first two characters of group 1: “01”
The 1st character means something special: If it is equal to a 0, do nothing. If it is equal to an 8, then it is a scangauge trip gauge.
Since we’re not making a trip gauge, we’re going to leave it at 0.
Lets look at the 2nd character of group 1: “1”
This second character indicates to the scangauge where to look to match the other two characters with.
This means that byte “1” MUST equal “00” in order to be processed further. If it doesn’t, the message is discarded.
The same concept applies to the other groups. EXCEPT the first character in the second group. If it equals an “8”, it means that the FINAL value (after MTH is done) has a space after the decimal (for example, X.X). If it equals “4”, it means that the FINAL value (after MTH is done) has two spaces after the decimal (for example, X.XX). If it equals “2” the final value is either “ON” or “OFF” depending on if the FINAL value is equal to a “1” or a “0”.
Thus, byte “2” MUST equal “3B” in order to be processed further. If it doesn’t, the message is discarded.
The first character in the 3rd group also means something special: if the value is 8, the final value is supposedly in hex (Have not gotten it to work yet).
The filter seems to do nothing if the 2nd to 4th characters are “0”
RXD – 380C
RxD tells the scangauge WHERE in the message our data is.
Separate the RXD into 2 groups of 2 characters.
14 0C
The first group tells where the data starts. 00 is the first bit in the string, 08 is the first bit in the second byte, 10 is the first bit in the third byte. In this case, we want the 20th bit onwards.
The second group is how LONG the values are. In this case, it is 12 bits long (C in hex).
MTH – 252603DA0000
Lets seperate this into 3 groups of 4 HEX characters.
0001 000A 0000
The first group means how much to multiply the value by.
The second group means how much to divide the value by.
the third group means how much to add/subtract the value by (this is a signed field)
So in this case, we’re multiplying by 1, dividing by 10 (A in hex = 10 in decimal), and then adding 0 to get the final amp value.
Then call the gauge something. AMP works good.
Observations with AMP values: (these numbers are off the top of my head at the moment and may be off)
You’ll now notice that the prius supposedly takes ~.9 amps when sitting idle, slow acceleration in EV mode takes about 22+ amps, and stealth glide takes about 5+ amps to maintain, warpstealth takes about 15+ amps to maintain.
Other observations: You barely regenerate anything at 7mph, so best to shift into neutral and use friction brakes here to avoid use of creeping, which takes about 23 amps. Neutral = .9 amps, brakes brings it up to 1.3 amps. Headlights in neutral brings it up to about ~1.9 amps total.
