Here there are some useful resources if someone would like to hack on his own. All I know cames from a document I found on google, none of the above tables or graph were produced by me. I am not sure if I can put this document here (due to license and copyright) but you can find it online
Unfortunately before the born of International Organization for Standardization (ISO) and Open Systems Interconnection (OSI) there wasn't one single protocol for all the vehicles, instead almost every manufacter made their own. This resulted in a mess of different protocols, finally the need of a standard brought to the creation of the OBD-II which could comunicate with 5 different protocols:
- SAE J1850 PWM - old cars from General Motors
- SAE J1850 VPW - old cars from Ford Motor Company
- ISO 9141 - Chrysler and some European and Asian vehicles
- ISO 14230 or KWP2000 - used by most manufacturers, especially by Japanese motorcycles
- ISO 15765 CAN - newer protocol used by BMW
Before we begin this is the structure of the packets we would send/receive from the ECU
Also the timing between bytes, requests, responses is crucial
Finally we can start the connection
We will receive a confirmation from the ECU and two more bytes which would say to us how the motorbike expect to receive the request from us
Then, for stronger safety, we will ask to the ECU its limits about timing
Now we can ask for sensors data, see error codes, upload/download from the ECU, and so on