I tested my proposed way - and i got an increased refresh rate (25%), and everything works fine (for VW jetta at least).
In define section add (after //#define ISO_14230_slow)
Code:
// Define delay between ISO request bytes (min 5ms, max 20ms) slower is faster refresh rate. By default 10ms.
// 5ms gives 8.2pids/s, 10ms gives 6.6pids/s
// On VW MK4 5ms works fine
#define ISORequestByteDelay 5
Replace delay(10); with delay(ISORequestByteDelay);
Code:
void iso_write_byte(byte b)
{
serial_rx_off();
Serial.print(b);
delay(ISORequestByteDelay); // ISO requires 5-20 ms delay between bytes.
serial_rx_on();
}
If lowest allowed value does not work - you should increase it