gwatpe said:
Will need to get a personal MUT3 or equivalent device to get the battery data from the PHEV computer. MMC are not keen to supply service data to a customer in OZ.
Is that all you need? :mrgreen:
Step 1: Buy an OBDII WiFi dongle and hook it up to your car (I believe you have one already, gwatpe)
Step 2: Connect your laptop to the WiFi network created by the dongle
Step 3: Open a telnet session from your laptop to the dongle. On a MAC for instance you type the following command in a terminal session (all OBDII dongles I worked with had this IP address and port number):
telnet 192.168.0.10 35000
It may take a while, before the connection is established, but finally your screen should show:
Trying 192.168.0.10...
Connected to 192.168.0.10.
Escape character is '^]'.
Step 4: Type the stuff in
underlined font (<enter> is the enter key). Stuff in
italic font are responses you would expect:
ATZ<enter>
ATZ
ELM327 v2.1
>ATSP6<enter>
ATSP6
OK
>ATH1<enter>
ATH1
OK
>ATFCSH761<enter>
ATSH761
OK
>ATFCSD300000<enter>
ATFCSD300000
OK
>ATFCSM1<enter>
ATFCSM1
OK
>ATSH761<enter>
ATSH761
OK
>
So far, you have:
- initialised the OBDII adapter (remember talking to modems? :mrgreen: )
- selected canbus protocol # 6 (ISO 15765-4 CAN 11 bit ID, 500 kbaud)
- enabled display of headers in responses
- enabled flow control for communication with device with address number 761 (which happens to be the "Hey, I want to talk to you" address for BMU ECU)
- defined the flow control string (300000)
- and mode (1)
- and told the dongle that the next non-AT command is targeted to device with address number 761
Now enter the mode (12) and pid (01):
1201<enter>
2101
762 10 37 61 01 82 83 0F 8B
762 21 24 0F 88 03 0C 6E 52
762 22 03 4D 1C 01 99 00 00
762 23 00 00 00 01 00 01 30
762 24 0F 0F 01 54 00 CC 9C
762 25 FE 00 03 0F 88 86 8B
762 26 64 00 00 00 00 00 00
762 27 00 00 0F 8A 00 02 00
Now you have the stuff you need, as 762 is the "Hey, I am talking back at you" address of the BMU ECU.
Find what you have where I had
01 54. Convert this from hexadecimal to decimal (see below) and divide by 10. This will give you the max charge capacity, or battery health in Ah. (In this case only 34.0 Ah :evil: )
Find what you have where I had
00 CC. Convert this from hexadecimal to decimal (see below) and divide by 10. This will give you the current charge, or SOC in Ah.
Wanna know SOC in percentage? Take the 82 from the first row, convert to decimal, divide by 2 and then subtract 5 ( :roll: ). In this case the SOC is 60%.
And yes, I did sort that out all by myself :idea: And yes, it did take an awful lot of time and some money too :| .
Converting from hex to decimal for dummies guide
Replace each character in the hexadecimal string with a value, as follows
0=0, 1=1, 2=2, .... 9=9, A=10, B=11, C=12, D=13, E=14, F=15
Reading right to left, multiply the first value with 1, the second with 16, the third with 256 and the fourth with 4096. Than add everything you have together.
First example: BF8A =
B = 11 * 4096 = 45056
F = 15 * 256 = 3840
8 = 8 * 16 = 128
A = 10 * 1 = 10
Total = 49034
Second example: 0154 = 0 * 4096 + 1 * 256 + 5 * 16 + 4 * 1 = 340. Divided by then it gives 34.0, my lays battery health.