Yes, I use Delphi, old habit, I'll change the program and post it here. No problem

.
Quote:
Maybe you could add a checkbox "only show CRC errors" the same way you put "show C5". This way I can play around with my circuit and quickly load a dump and see if it has errors or not. I intend to play a bit with the values of the divider resistor to see if it's a threshold problem...
Allmost done.
Quote:
Just a question : once you get a bad CRC, how do you resynchronize ? I mean, if the length byte is wrong, we jump too far and crash in the following frame and so on...
I tried to make it a little bit 'intelligent', First: when I read a frame length larger then 32 bytes its marked as bad. Second: once length is bad the prog tries, byte/byte, to find a new 3D or C5 or something similar in the data region. When found, it assumes that everything in front of that byte is data + CRC and, the known byte is the start of a new message. Its not waterproof but it works pretty well I think. Of course when a 3D appears in the data section with a corrupted length shxt hits the fan ...

.
Stay on it, where almost there.
Another thing, on my todo list is still a selfmade OBDII interface using a MAX232 as RS232 interface together with ELM323, its designed in Eagle, do you want a copy? Perhaps you can use it for comparison, its designed to work in cars.