For the foreseeable future, it runs as fast as it is going to.
I was able to getting data logging up to 26 reads per second of 254 bytes each time. My previous best was 25, so not as much of an improvement as I had hoped. This was accomplished by sending the next read request immediately upon receiving a read response. Then doing all of the parsing of data and updates while I am waiting for the ecu to respond. My profiling data seems to be pointing towards the USB latency as the limiting factor in the data logging speed, and there isn’t much I can do about that since I already have the USB latency values tuned for minimum response times.
As for flashing times, I was able to apply the optimizations for data logging to ecu flashing. Previously I was able to flash an update to the ecu in 47 seconds. Now with the timing optimizations I can do an update in 28 seconds, which is pretty sweet. Hopefully I will be able to make this a little faster, but for now it isn’t a priority.
I also did some more work on communication fault tolerance and robustness. I am now able to recover from garbage data ending up in my receive buffers, as well as messages just getting lost. This allowed me to disconnect the cable from the OBD port while data logging, and reconnect it a second later without any problems. Everything keeps running as normal, no need to reconnect or restart anything, the data logging just keeps running. It detects that there was no response to a message, or that some garbled data showed up on the communication line, and it just ignores it and keeps running. Next I am going to test this while flashing the ecu to make sure it can recover. We don’t want anyone to accidentally wiggle the cable in the OBD port during a flash and have that cause an unrecoverable error. 🙂
The next step is going to be user interface work and tuning my car. I have been working on some UI designs, and once I get to work on some of them I should be able to release some beta software to the community. I also promise to start tuning my car again this week now that my driveway is almost done.