TazzI
Envyous Customs
- Joined
- May 24, 2011
- Messages
- 1,095
- Reaction score
- 451
- Points
- 83
- Location
- Western Australia
- Website
- www.envyouscustoms.com
- Members Ride
- Holden VE SS Ute
So!
NVS is coming along slower than expected (Surprise surprise).
I had to go back to the cable hardware programming side to add a few extra things I missed out on, mainly the ability to adjust timings on all protocols.
For example, LS1 ECU's use the language (Protocol) called VPW. This protocol is based on counting the microseconds that the bus is either pulled high (8v) or low (~0v). For example, the 'start of frame'(SOF) of any message in VPW on a bus starts with the bus being pulled HIGH for ~200microseconds, then after that the message is sent.. bit by bit (zeros and ones!) were about 50microseconds per bit indicate a 0 or 1 until the full message is sent.
Now, 200microseconds (0.2 milliseconds or 0.0002seconds) may sound very fast.. which it is.. BUT.. it gets even better!
These ECU's can support 4 times the normal speed (Used for tuning).. this means the SOF is now 50microseconds and each bit sent is about 12.5microseconds.
So now we are entering some very quick processing, now we are getting closer to the nanosecond region (1000nanoseconds = 1microsecond).
To make things even more complex.. not all devices use the exact same timing.. as there needs to be some 'slack' since some devices (Like an ECU) could be very busy and may not be able to provide a perfect 12.5micro second response. This means you could get either a 8microsecond or 15microsecond response and both still mean the same 12.5micro response.
This is where the timing comes in, where maximum and minimum times for each part of the message need to be defined, if theres not enough slack.. then messages will be missed.. but if theres too much, than rubbish data is picked up.
Or to get a bit more complex, is to calculate the time for one bit, then extrapolate that bit time for all the other timings.. theres pros and cons to that method.. (Which I may still include).
Iv noticed after analyzing various tools that support VPW 4x, that literally none of them use the same timings.. literally every developer has made their own set of timings that are 'kinda' around the same ballpark.. but they can easily misinterpret messages if outside of there 'slack' zones. It just shows there is literally no 'standard' for this VPW 4x, its a bit of a hack job by GM so Im not surprised that even after all these years that no-ones actually provided a tool to support this (infamous) VPW 4x, and if they have then it costs over $500.
Funny enough, the ECU it self is more 'accurate' then these other scantools! I could be the limitations of the processors of those tools... they simply cant keep up.. or.. worse.. a lazy developer who just doesnt care and 'kinda' works is good enough.
So why is this important? Well.. VPW 4X isnt THAT important as this second.. but it might be in the future.. hence.. I want to make it future proof!
I have defined my own set of 4x timings.. which work with LS1 ECU's for flashing (tuning) so Im happy about that, but to ensure they are correct, Iv designed the ability to adjust and SAVE timing configurations, so even if I needed to change some timings in the future, I will be able to modify and save them, and each software update will check if the cableson the latest
Something else that Iv found useful.. is Iv coded in the ability send through the times of each pulse (bit), so even if theres another GM ECU thats on VPW with slightly different timings.. I can record multiple pulses to identify the timing scheme an adjust from there!
A very simply solution to help fix a complex situation.
Now.. what would be the smartest solution? Not to use VPW 4x, an ECU can be read/written at nomal VPW, which is a much more stable and simple solution. It might take 4 times longer the write, but I would prefer stability over speed any day. But for the sake of supporting everything, its in there.
NVS is coming along slower than expected (Surprise surprise).
I had to go back to the cable hardware programming side to add a few extra things I missed out on, mainly the ability to adjust timings on all protocols.
For example, LS1 ECU's use the language (Protocol) called VPW. This protocol is based on counting the microseconds that the bus is either pulled high (8v) or low (~0v). For example, the 'start of frame'(SOF) of any message in VPW on a bus starts with the bus being pulled HIGH for ~200microseconds, then after that the message is sent.. bit by bit (zeros and ones!) were about 50microseconds per bit indicate a 0 or 1 until the full message is sent.
Now, 200microseconds (0.2 milliseconds or 0.0002seconds) may sound very fast.. which it is.. BUT.. it gets even better!
These ECU's can support 4 times the normal speed (Used for tuning).. this means the SOF is now 50microseconds and each bit sent is about 12.5microseconds.
So now we are entering some very quick processing, now we are getting closer to the nanosecond region (1000nanoseconds = 1microsecond).
To make things even more complex.. not all devices use the exact same timing.. as there needs to be some 'slack' since some devices (Like an ECU) could be very busy and may not be able to provide a perfect 12.5micro second response. This means you could get either a 8microsecond or 15microsecond response and both still mean the same 12.5micro response.
This is where the timing comes in, where maximum and minimum times for each part of the message need to be defined, if theres not enough slack.. then messages will be missed.. but if theres too much, than rubbish data is picked up.
Or to get a bit more complex, is to calculate the time for one bit, then extrapolate that bit time for all the other timings.. theres pros and cons to that method.. (Which I may still include).
Iv noticed after analyzing various tools that support VPW 4x, that literally none of them use the same timings.. literally every developer has made their own set of timings that are 'kinda' around the same ballpark.. but they can easily misinterpret messages if outside of there 'slack' zones. It just shows there is literally no 'standard' for this VPW 4x, its a bit of a hack job by GM so Im not surprised that even after all these years that no-ones actually provided a tool to support this (infamous) VPW 4x, and if they have then it costs over $500.
Funny enough, the ECU it self is more 'accurate' then these other scantools! I could be the limitations of the processors of those tools... they simply cant keep up.. or.. worse.. a lazy developer who just doesnt care and 'kinda' works is good enough.
So why is this important? Well.. VPW 4X isnt THAT important as this second.. but it might be in the future.. hence.. I want to make it future proof!
I have defined my own set of 4x timings.. which work with LS1 ECU's for flashing (tuning) so Im happy about that, but to ensure they are correct, Iv designed the ability to adjust and SAVE timing configurations, so even if I needed to change some timings in the future, I will be able to modify and save them, and each software update will check if the cableson the latest
Something else that Iv found useful.. is Iv coded in the ability send through the times of each pulse (bit), so even if theres another GM ECU thats on VPW with slightly different timings.. I can record multiple pulses to identify the timing scheme an adjust from there!
A very simply solution to help fix a complex situation.
Now.. what would be the smartest solution? Not to use VPW 4x, an ECU can be read/written at nomal VPW, which is a much more stable and simple solution. It might take 4 times longer the write, but I would prefer stability over speed any day. But for the sake of supporting everything, its in there.
Last edited: