While the SAEJ1979 OBD-II standard establishes common parameters like speed and engine RPM, most of the interesting parameters, like tire pressure, battery cell temperatures, and more specific engine parameters, are manufacturer-specific and difficult to find.
The OBDb exists to document the facts about the parameters that different cars respond to. When a parameter isn’t known for a given car, someone has to find it first. The process is laborious but can be broken down into roughly three stages, with PID Detector being the first.
1. Discover
Your car is a network of modules, each represented by an electronic control unit (ECU) with its own parameters. PID Detector first identifies which modules your car has. It then sweeps each ECU for every parameter it could have, up to 65,536 per module, and takes note of which ones answer in what's called an ECU map. This is known as a "brute force" approach.
Pelican's ECU map file format captures the modules a car responds to and the parameters each one answers to.
000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
3. Verify
Once you have identified a pattern in the data, you can start to form theories about which parameters might mean specific values. Press the accelerator, turn the steering wheel, or watch the odometer climb, and look for the parameter whose values move with it.
Once you think you know what a parameter means, you can give it a name and units so that Pelican will interpret it as the value it represents. If you're fully confident in the value, you can even push it as a pull request to the OBDb so that every driver of that car benefits from your discovery.
{ "commands": [{ "hdr": "7E0", "rax": "7E8", "cmd": {"22": "F40D"}, "freq": 0.25, "signals": [ {"id": "TAYCAN_VSS", "path": "Movement", "fmt": { "len": 8, "max": 255, "unit": "kilometersPerHour" }, "name": "Vehicle speed"} ]},{ "hdr": "7E5", "rax": "7ED", "cmd": {"22": "1802"}, "freq": 0.25, "signals": [ {"id": "UNK_1802", "path": "aTest", "fmt": { "len": 8, "max": 255, "unit": "hex" }, "name": "1802"} ]},{ "hdr": "746", "rax": "7B0", "cmd": {"22": "2613"}, "freq": 1, "signals": [ {"id": "UNK_2613", "path": "aTest", "fmt": { "len": 8, "max": 255, "unit": "hex" }, "name": "2613"} ]},{ "hdr": "7E0", "rax": "7E8", "cmd": {"22": "F431"}, "freq": 5, "signals": [ {"id": "TAYCAN_CLR_DIST", "path": "DTCs", "fmt": { "len": 16, "max": 65535, "unit": "kilometers" }, "name": "Distance traveled since DTCs cleared"} ]}]}