In Arduino, library usage itself imparts zero penalties, it's all tied together during linking. Using functions like digitalRead/digitalWrite incurs penalties because they do a lot more than just reads and writes, thus using direct port control speeds up the reads/writes by between 27 and 30 times. It's just more difficult to get the library to be portable that way, because you have to define the pins by hardware addressing, not the arduino's much more convenient methods. So, right now the library (what's written of it so far) would work on an Uno, micro, mega, Teensy, etc...all you would need to do is buy an Uno and then stick the VPW level shifter on it, and boom, you've got a cable. Easy to make a "OBD-2 shield" that speaks ELM, AVT, direct binary, whatever you want it to talk on the PC side of things, but the issue is that it's borderline capable of doing 4x mode on the Uno, unless I write the library in such a way that it changes the library for the target device (which can be done, but I've never done it)
Using 180 byte packets and 4x mode, it takes a maximum time of 6660 uS per packet, and a minimum time of 3780 uS per packet. That's an average packet time of 5220 uS per 180 bytes. A full 512K flash would take 2845 packets, for an average time of 119 seconds to transfer the data. At 1x mode, that's still just under 8 minutes to do the data transfer across the VPW bus. How much time is lost in the turnaround on the ECU side, do you know?
I'm not asking anyone to "jump ship" on hardware. You started out this thread by saying you were using arduino for the hardware, and that it took a very long time to do it. I have some experience with using the arduino to do VPW, and had the intention of helping you speed your arduino hardware up, as well as make it more flexible-but now you seem to be using Scantool.net stuff, so it seems irrelevant. You mentioned using Dimented24x7's tools, which use the AVT protocol, and it's what I use now-so I was excited that you were essentially finishing his project where he left off. Now it seems that you're committed to the ELM327 protocol, which is fine-but it isn't what any of the other working tools out there have used, and I would add support to my hardware for it *if* it was what you were planning on using. You seem rather non-committal on what hardware you plan to use, maybe all the project members are using different hardware, no one but the project members know.
Whatever you come up with, will probably work, and it'll be whatever it is. For me, I'm happy using the tools already available for the 512k PCMs, I'll just have to wait till 1Mb support comes around.
Bookmarks