Good news everyone!
I made a trace of the KIA's diagnostic software and i found in the trace nearly all information we want (All Cell Voltages, temperatures, battery voltage, charge/discharge power, ...).
I will add the information to our spreadsheet.
Service 10 is StartDiagnosticSession, it's needed to change the session of the ECU. E.g. if you want special data.
Service 11 is ECU Rest, therefore the system acts wired. But no problem, after a few seconds the ECU is back to normal.
Service 14 is CleadDTC's
Service 21 ReadDataByLocalID (used by die KIA Diagnostic Tester)
Service 22 ReadDataByCommonID
Service 23 ReadMemoryByAddress
Service 25 is not defined
Service 26 SetDataRates
Service 27 SecurityAccess
Service 30 InputOutputControlByLocalID
Most Services need subfunctions to get correct responses, otherwise you get a negative response (7F) with a detailed response code (e.g. 12 = subfunction not supported)
So what we need to get our information from the battery is:
The tester sends from CAN-ID 7E4 and the BMS (i asume) answers from 7EC.
First we have to change the session:
Tester -> 02 10 90
Response: 02 50 90 (10+40 = 50 = positive response)
an with service 21 (readDataByLocalID) we get all battery data.
this 5 request are used:
02 21 01 -> details in spreadsheet
02 21 02 -> returns cellvoltage 1 to 32
02 21 03 -> returns cellvoltage 33 to 64
02 21 04 -> returns cellvoltage 65 to 96
02 21 05 -> details in spreadsheet
the time between session change and first request should only last a few seconds, otherwise the ECU returns to default session and doesn't answer the request.
I hope we can add this request in the OVMS SW soon, to get detailed information from the car.
BR, Alex.
I made a trace of the KIA's diagnostic software and i found in the trace nearly all information we want (All Cell Voltages, temperatures, battery voltage, charge/discharge power, ...).
I will add the information to our spreadsheet.
Yes i think it doesn't make sens to just try different command, when we don't know what to expect.TyrelHaveman said:I'm not going to do any more random probing of the OBD-II modes. It is obvious that doing so can make things happen and I'm afraid something is going to get messed up now.
Service 20 is StopDiagnosticSession, and the positive response is 60. (a positive response is always service ID+40)TyrelHaveman said:Every PID on mode 20 returns 01 60 from both 7EA and 7EC.
This services are from KWP2000 protocol, which is old but obviously used by most ECU's in the system.TyrelHaveman said:I have done at least 2,500 random PIDs on modes 10, 11, 14, 21, 22, 23, 25, 26, 27, and 30.
Lots of PIDs on mode 10 cause the brake system to freak out and display all the warnings on the dash.
Some PIDs on mode 11 make a relay click somewhere in the left side of the dash, and the dome lights flash off (I had a door open so they were otherwise on).
Service 10 is StartDiagnosticSession, it's needed to change the session of the ECU. E.g. if you want special data.
Service 11 is ECU Rest, therefore the system acts wired. But no problem, after a few seconds the ECU is back to normal.
Service 14 is CleadDTC's
Service 21 ReadDataByLocalID (used by die KIA Diagnostic Tester)
Service 22 ReadDataByCommonID
Service 23 ReadMemoryByAddress
Service 25 is not defined
Service 26 SetDataRates
Service 27 SecurityAccess
Service 30 InputOutputControlByLocalID
Most Services need subfunctions to get correct responses, otherwise you get a negative response (7F) with a detailed response code (e.g. 12 = subfunction not supported)
So what we need to get our information from the battery is:
The tester sends from CAN-ID 7E4 and the BMS (i asume) answers from 7EC.
First we have to change the session:
Tester -> 02 10 90
Response: 02 50 90 (10+40 = 50 = positive response)
an with service 21 (readDataByLocalID) we get all battery data.
this 5 request are used:
02 21 01 -> details in spreadsheet
02 21 02 -> returns cellvoltage 1 to 32
02 21 03 -> returns cellvoltage 33 to 64
02 21 04 -> returns cellvoltage 65 to 96
02 21 05 -> details in spreadsheet
the time between session change and first request should only last a few seconds, otherwise the ECU returns to default session and doesn't answer the request.
I hope we can add this request in the OVMS SW soon, to get detailed information from the car.
BR, Alex.