Search code examples
decodewiresharkobd-iiwireshark-dissectorhuman-readable

How to create a convert for OBD-II data in Wireshark?


We are trying to stream data from a car's OBD-II protocol via Wireshark. It's working fine and we get the IDs and data payloads out interpreted as CAN. However, we would like to take it a step further and "scale" the data according to the documentation on wikipedia.

This requires that we can use a formula that is dependent on information contained in the ID and in the start of the actual data message.

Could anyone provide some guidance as to how we can create such a scaling/conversion of the data into readable output using Wireshark? Ideally we would also like to inform the viewer of what data, units etc. they're looking at - we have all this info, but we would just need to find a way to return it depending on the ID.

Hope you can help - it would be much appreciated! Martin


Solution

  • I recommend obtaining SAE J1979 and SAE 1979DA. In there you will find the complete information necessary to dissect the protocols, including units and scaling / offset for every standardized PID. Then, codify this into a dissection protocol in Wireshark.