I bought a ZX14 ECU just for interest and play with it. Iīm just about to establish an OBD-connection to it.
Connected the ECU to a power source by connecting pin 15,32,33 to"+" and 17,39,52 to "-".
The ECU has two pins declared for external communication (KDS): 21 and 35.
Took my ECUeditor-Interface and sent a wake pattern (WuP) 25ms low-> 25ms high followed by startsequence (81 11 F1 81 04). At pin 21 no response. Pin 35 gave 80 F1 11 3 C1 EA 8F BF.
For this ECU a startDiagnosticSession pattern seems to be needed: 80 11 F1 02 10 80 14. ECU answers with 80 F1 11 02 50 80 54.
ECU-ID can be read by sending 80 11 F1 01 1A 9D. ECU sends 80 F1 11 B 5A 32 31 31 37 35 2D 30 38 39 E5 back. 32 31 31 37 35 2D 30 38 39 converted to ASCII gives the number that stands on the housing: 21175-089.
Tried to read DTC. Only readDiagnosticTroubleCodes service seems to work by sending 80 11 F1 02 13 01 98 to ECU. From ECU comes 80 F1 11 12 53 08..back. Only 8 DTC for an nonconnected ECU seems too little to me...
Tried to read DataByLocalIdentifier. Sent 80 11 F1 02 21 01 A6 to ECU and got 80 F1 11 03 61+data+checksum back. It is possible to insert other values for byte 6 (01) in the request string. So other data came back after 61 in the response.
I havenītbuilt an bike emulator yet, so I wasnīt able to look what values change with ReadDataByLocalIdentifier.