Is anyone working on a version of this for the I-Pace? Looks like a really good tool. I would love to be able to use this with my car.
I haven't heard of anyone working on that car at the moment.
Thanks for the reply. Pity, but maybe in the future someone will take it on.
Image Processing Module
Parking Assist Control Module
Tyre pressure Monitoring System
Side Object Detection Control Module - Left
Side Object Detection Control Module - Right
Steering Angle Sensing Module
Power Steering Control Module
Restraints Control Module
Body Control Module/Gateway Module
Suspension Control Module
Anti-lock Blocking System
Adaptative Speed Control Module
Occupant Monitoring Model
Remote function Actuator
Left Rear Door Module
Tailgate Controle Module
Electric Steering Column Lock
Passenger Seat Module
Driver Door Module
Passenger Door Module
Driver Seat Module
Right Rear Door Module
Rear View Camera
Headup Display Control Module
Rear Integrated Control Panel
Infotainment Master Control
HVAC Control Module
Direct Current to Direct Current Converter
Wired Onboard Charging Module
Telematics Control Module
Transmission Control Switch
Powertrain Control Module
Battery Every Control Module
Electric Vehicle battery
Front Electric Power Inverter Converter
Rear Electric Power Inverter Converter
Break Booster Module
Camera Control Module
Passenger Seat Heater Control Module
Passenger Seat Climate Control Module
Driver Seat Heater Control Module
Rear Right Seat Heater Control Module
Rear Left Seat Heater Control Module
Driver Seat Climate Control Module
The communications networks available on the vehicle are shown below:
I have started collecting the data on PID here : https://docs.google.com/spreadsheets/d/1wNMtpPqMAejNeOZGsPCcgau8HODROzceFcUSfk2lVz8
It looks like PID 0xF190 and PID 0xF1A0, available on almost all ECU is the VIN number of the car.
Same comment on PID 0xDD01 on almost all ECU. This is the odometer in KM.
PID in the range 0xF100-0xF1FF look like JLR part number, but I don't know why there is multiple part numbers. I hope that one is the part number of the ECU, and that will tell me the name of the ECU. That would be very usefull
I think I am done with the extensive PID scanning on our known ECU. The google spreadsheet is up-to-date with all ECU and PID number. Now the fun part starts....
I have found this image on an old jaguar forum (not IPace related). It seems to come from an official Jaguar diagnostic tool that read the same OBD2 port.
For a single ECU (ACM in this image), there is multiple part numbers : core assembly, delivery assembly, serial number, hardware number, software number, ... This could explain why I can see multiple parts number as well when I scan all PID on a specific ECU
I found this
706 - ipma
716 - sdlc
720 - ipc
726 - bcm
730 - pscm
731 - rfa
732 - gsm
733 - hvac
734 - hcm
736 - pam
737 - rcm
740 - ddm
741 - pdm
742 - drdm
743 - prdm
744 - dsm
746 - epic
747 - epicb
751 - tpm
752 - omm
753 - dcdc
754 - tcu
764 - z-flr
775 - rgtm
792 - atcm
797 - sasm
7a2 - idma
7a3 - psm
7a4 - aam
7b1 - cmr
7b3 - imc
7c3 - hcmb
7c4 - sodl
7c6 - sodr
7e0 - pcm
7e2 - bbm
7e4 - becm
7e5 - bccm
7e6 - abs
This is awesome work dernotte! Thanks for taking it on. Would be great to get full support in OpenVMS thanks to your efforts.
This is planned, but I , first , need to identify ECU and PID, and this is the hard part... I have already conviced a couple of other Jag owner to buy the OVMS box, and help me on this. I can see some traction on other forum as well, but the more we are, the faster it will go.
Hi there. I'm more than happy to buy one and do what I can to help out, although I've never done anything like this before. I'd need some guidance. However, I have a problem in that I'm using the OBD port for something else. I'm working on a solution tht woild resolve that problem, but for the moment I'm a bit stuck and therefore unable to contribute. I hope to have a fix soon though.
just as an extra bit of info for you, o know for a fact that battery state of health is also available from the OBD port. I think there is a figure for each individual module, 36 different values in total.
I'll let you know if I can free up my OBD port.
I think this OVMS is quite convinient to hack the CANbus. I can provide some help, if you want. I have never done this before either.... The way I do it (there may be plenty of other), is that I start with a full scan for the value of all PID of a ECU. I grad those value in different situation: car off, car on, heat on, heat off, pre condition on, off, etc...when the car is on the driveway. I put all those value in a spreadsheet and I look at the values that change. Then I reprogram my OVMS box to only focus on those one, and then I do a small drive while collect the value. Once again I put those value in a graph, over time, and try to identify which one share the same bahavior with other, or I look at the global shape (ramp up, ramp down, up and down, etc...) and then I try to give a meaning, and try to infer a formula.
I am pretty sure that the 36 cells of the battery expose some values, (current, volt) but I was not able to find anything meaningful, so far.
on BECM, 487E and 4886 represent a long list of bytes, but they are all "00". I only tested them in a static way, when the car was not move. I will try to test them while I am driving.
or maybe those value are not on the CANBus but on another one: K-line, LIN, ...
Some new PIDs on HVAC ECU (733)....
- the PID 99BF seems to be the fan RPM. With fan on speed 1, it gives 3500, on speed 2, it gives 5500, speed 3, 6000, on speed 4, 6600, on speed 5, 6900, and speed 6 and 7, 7000. Direct value, no formula.
- PID 9854 ,9855 ,9856 ,9857 are 4 temp sensors for the four seats in the cabin, with a good guess for 9856 for the driver's seat, and 9857 for passenger's seat. Formula is (value/5-16).
- PID 981C may be the current on the heater,
- PID 9805 seems to be related to the fan rotation, but it is not the RPM. Maybe the voltage on fan ?
Some PIDs on the TPMS ECU (751):
Hi ABD, I just purchased a Y OBD cable on Amazon. I wanted to run both ECU scan and PowerCruisControl at the same time by using 2 OBD adapters. It works but sometime I'm loosing some PID data. So if you are using the OBD port for anything else (like 12V source for a dashcam) a Y OBD calbe will work for you.
Im using the OBD port to test a piece of hardware for another company. Unfortunately it will not work if it's connected to the port at the same time as another device. There is a software solution I can use but I've committed to testing their hardware device for them so I'm kind of stuck at the moment. I already know for definite that it will hang if another device is connected at the same time.
Now I'm curious about that piece of hardware you're testing .... :-)
From a friends PCC, PCC listens to these pids:
From what I/we know
'4903' : Cell V Max
'4904' : Cell V Min
'4905': Temp ?
'490c' : Current in (charging), at least.
'490f', Volt on Row#4
'4910': Soc Avg
'4911': Soc Min
'4913', Max Regen
'4914': SOC Max
'4918': ?? Constant in my case, in static condition
'4919', ?? Constant in my case, in static condition
'491a', ?? Constant in my case, in static condition
'dd04', Cabin temp
'dd05', ?? Temp, sometimes ambiant temp
'dd09': Vehicle speed
'4905', used as battery temp
'490c', current in and out, (A*256 + B - 32768)/xx, xx may be between 24..40, 40 gives good result for me when doing energy calculations
'490f', divided by 108 gives average cell voltage ?
'a0a6', location? It is a multiframe message so it is hard to decode properly
'4918' - '491a', ??, static
power is '490c' x '490f'
I have an I-Pace and I would like to help. I have this OBD2 reader. Can I read the raw data with that and an Android phone or Windows 10 laptop?
If you have an OBD2 reader, you can start investigating. The OVMS box make this a little bit easier. If you know how to configure an app like TorquePro. This is feasible. I don't know how to proceed with a Windows 10 laptop.
Yes, it will work fine with the Torque app for android. Enter custom pid, ex. 22490f, equation int16(A:B)/100, OBD header 7E4. That will give you the battery voltage.
Great, thanks! I will try it out soon. What do I need to extract data with a Windows 10 laptop? For me it would be more convenient to explore the data with proper keyboard and screen.
I use Torque pro on android and save the data to google drive, then I analyze the data with python on a laptop.
The UI of Torque app is hidious and it has got quite bad reviews lately. Any other app that would do the job?
You can set up the pids and equations in a text file and import to Torque. An other app which can do the same and is not abandon ware is ELM327 car scanner, what is important is that whatever app you prefer support custom pids. You can also visit this page, https://www.scantool.net/.
What is your programming skillset ?
As I said I am not familliar with windows environment. Atthe very low level I know that , once your laptop is connected to the OBDII reader you can connect to it , and do a 'telnet' session, with Hayes-like command : ATZ, .... This is the lowest level possible. You can search for library in your favorite language to connect to a ELM327 device.
I was able to connect Torque to my ODB2 adapter and I can see e.g. number of GPS satellites. However, I was not able to get data from any custom PID. Above you gave example values to retrieve battery voltage. Where should I insert the mentioned header? And Torque did not accept the equation int16(A:B)/100 either. Below is the settings screen of this custom PID. What am I doing wrong?
Maybe the Torque app miss something, I have Torque Pro which allows you to specify the OBD Header, you must specify OBD header. A free alternative is Car Scanner by 0vZ which also allows you tou have custom PIDs. I haven't tested it but it looks more modern.
I installed Car Scanner app and figured out how to use the PIDs and headers. However, I tried to retrieve values for battery voltage and temperature but for both hitting test button only answers 7EC037F4911. What am I doing wrong?
Did you put 22 (Mode) before the PID, if you ask for PID 4905 on header 7E4, you must write 224905 for pid and 7e4 for header.
I added 22 before PID, but still now luck. Is it always 22 or is there other modes for some of the PIDs?
Can you see something wrong with below two examples?
On the first one, rewrite formula to (A*256+B)/100
On the second one the PID is not valid, try 224905
Great, I got numbers out now, thanks for your help! Strangely I got 40oC for battery temperature so I had to change the formula to (A-80) to get the correct value.
Good :) Formula for battery temperature is A/2-40
Great, thanks! How do you figure out the correct formulas? I didn't find them from the mentioned Google sheet. Also is it always mode 22 for all PIDs?
Finding the right formula is a tricky part but most one byte temperatures are A/2-40 or A-40.
OBD-II is for ICE cars (emission tests), since we are electric most codes are custom and start with 22.
What is the correct formula for SoC average (PID 4910)? Is it 100/255*A? (ref. OBD-II PIDs - Wikipedia)
'4903' : Cell V Max, (A*256+B)/1000
'4904' : Cell V Min, (A*256+B)/1000
'4905': Max battery temp (use pid 4906, 4907 for min and average), A/2-40
'490c' : Current flow HV battery, (A*256+B-32768)/40
'490f': HV battery voltage, (256*A+B)/100
'4910': Soc Avg, (256*A+B)/100
'4911': Soc Min, (256*A+B)/100
'4913', Max Regen, (256*A+B)/100
'4914': SOC Max, (256*A+B)/100
'4918': SOH Avg, A/2
'4919', SOH Max, A/2
'491a', SOH Min, A/2
'dd04', Cabin temp, A-40
'dd05', Ambient Temp, A-40. Better to use PID 9924 on ECU 733, A/2-40
'dd09': Vehicle speed, A
Please note: SOC is true battery SOC, battery is never charged beyond 96-97% (cell voltage=4.15volts). Severe degradation would occur at 4.3 volts.
SOH is bogus, it is not a good measurement of State-Of-Health. Normal values for my car are 90 to 96.
I have pushed my first release for the Ipace support in the OVMS firmware.
If you download the latest version from Git, you will get it.
Supported PID are located here (C++ code....) : https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/components/vehicle_jaguaripace/src/ipace_obd_pids.h
Ok. I did it. Just picked one of these up. Not sure it's going to integrate with the other OBD device I have connected, but I decided to take a chance and try it! Thanks to everyone who has put so much effort in to this.