To be the fastest? Or the most safe?
You would think its blindly obvious to always choose the safest route right, but somehow I have managed to find a bit of a dilemma for J2534 tools.
I have come across a bunch of GM modules which fail updates with using various J2534 tools over GMLAN. These same tools work perfectly fine with other modules.
But when using the GM MDI, it will work every single time without fault.
So.. what gives? Whats the difference?
Speed... literally... speed.
Slower car modules will report back how fast to write to them when flashing.
For example, they say there needs to be a
minimum of 1ms between every CAN frame.
The OBDX Pro can happily maintain that delay exactly.... and so can a few other top end tools.
Now, the key word here is "minimum". This means that larger delays can be used.
Obviously for speed, we want to use the minimum required time between CAN frames to max out the flashing speed. But.. it appears this minimum is not actually enough for a bunch of GM modules. This is the same problem I came across with the newest GM ECUs where they wanted 100micro seconds, although that was also incorrect.
Not only is 1ms still not long enough, I actually have to do 4-5ms between every single frame for it to work reliably.
Thats 4-5x longer then what the module actually reports back as acceptable. So.. how on earth are tool manufacturers suppose to cater to this??
It looks like the MDI intentionally does a longer timeframe just to add a safety barrier. Most scantool manufactures do not do this.
Not all modules are affected by this problem though. Thus putting a safety barrier of 4-5x the normal time means flashing takes 4-5x longer overall.
As always, I go for the side of reliability and safety, but it means any developers specifically coding with OBDX Pro tools that know a module can take the fastest speeds, will need to actually manual override this delay (Part of the newest firmware updates coming out).