Off course I took a look into your GitHub, as you responded to this thread ![]()
And I like the idea of not waiting for data responses with a delay. Simple wait for Serial.available() or timeout.
Reduced ISORequestByteDelay from 10 to 5.
Then removed all delays according to the receiver -> We will see if the ECU simply responds as fast as it can or stops due to ISO protocol breach...
The last thing, was to change the static delay between the messages to a dynamic value.
I´m storing the last K-Line Response milis and simply calc the time left:
delay(ISORequestDelay - millis() - lastKresponse);
My Emulator counts up to 10(!!!) messages per second, even via bluetooth! Sure, my PC is to fast and I should implement the byte & request delay there as well!
Can´t wait to test that on my bike! Sure, it will slow down to 6-7 responses a second. But that´s great!
0x81 is just a different format with no length information, because messages can only be 1 byte long.
There are two more formats without any source and target information but it seems they are not supported. After fast Init, we receive 0xEA + 0x8F as response. That describes:
Header with Target & Source Information. Additional Length. Normal Timing.
ISO14230 / KWP2000 Protocol.
The more often I read these documents, the more I understand what´s going on there ![]()