1
votes

I'm currently working on a project that requires gathering data from a car's wheel speed sensors(4 hall efect speed sensors). Those sensors are connected to the car's ECU responsible for ABS/ESP/Stability control etc.

In order to extract the data from the ECU i need to make a request with a specific PID(parameter ID) AND know how to decode/compute the answer in order to extract any meaningful data. Unfortunately vehicle manufacturers don't seem to make such information public. So far i've ordered an arduino CAN BUS shield and a OBD2 to RS232 cable in order to make the physical connection. I have tried using a specialized hardware/software(that costs more than 1500euro) capable of extracting those parameters, but unfortunately it lacks logging functions. I tried using Wireshark to sniff the PIDs called, but had no luck there either. If you guys have any ideas, questions or suggestions, please write them down. I'm open to criticism and know that i might be missing something important. Thanks. P.S. This is a university project im working on. I need data samples from the wheel speed sensors and further computing of the data sample is done with the purpose of researching car safety and behavior in dynamic road scenarios.

1
Are you asking how to sniff packets on a proprietary CAN bus in a car? That information is carefully copyrighted by the car manufacturers and even if someone had a way to decode this, they would not post it on a public forum, sorry. :) I'm going to recommend this question be deleted.dmcgrandle
We can help you with reading the CAN payload, or help you with the generic UDS requests to obtain PID/DID info. Even if you reverse engineer the PIDs (they are DIDs, not PIDs) from the OBD2 tool, you will need the computation method to transform the DIDs content into physical values. That is the "company secret".VioletVynil
I wanted to know if it is actually possible to find the PIDs and the computation method to transform the DIDs. Since many PIDs are public(for example i found more than 100 PIDs for more generic stuff-example :engine RPM,vehicle speed etc.) i thought other PIDs might be public as well, but i had no luck finding them. If they are copyrighted by car manufacturers, then i'll seek other methods of gathering data. Maybe link the speed sensors directly to an MCU via a filtering circuit or something similar. Anyway. Thank you for commenting. At this point any information is helpful. :)Nedelchev
Well the PIDs you can guess with the help of the OBD tool, you catch the messages with the service 22 in them (DID read), after you triggered the request from OBD. Then the 2 bytes after 22 are the DID. The content they ought to report, and their computation method is just guesswork.VioletVynil

1 Answers

2
votes

You can only read the OBD data from the OBD-port. The OBD PIDs are generalized in ISO/CD 15765-5. You probably find non reliable descriptions also in Wikipedia. But in order to get the other PIDs, firstly you should know that those data are heavily under control by the car manufacturers and you have to hack them. One way to find them (but very unlikely to find one!) is the try and error method.

You should access the main CAN-BUS wires and the buy a connector device so you can sniff the packets. then monitor all the packets and make a small change. Monitor it again and compare these two. Maybe maybe maybe you have a chance to find some non-safety features with this method but finding security functionalities like ABS is heavily in doubt.

UNLESS you are some sort of genius hacker who can do weird stuff! If you can do it, then call the manufacturer and show them what you have so you would likely get a nice job and salary by them!

ONCE I saw a youtube clip that a guy could control a TOYOTA (if I remember correctly) with a laptop! and also maybe you can buy such info on the dark web which I advise highly against it!