Managed to get a VY V6 ECU to successfully flash with the MDI.. surprisingly it has been the most stable of any programming so far
Attached is the file to suit VIN 6G1YK52A23L153011 that has been set as automatic and Petrol.
Out of curiosity, I have been looking at what SPS uploads (Well.. appears to be upload).. and we get the following:
Code: Select all
F7 83 06 02 00 32 36 84 F0 27 0F CC 09 00 36 18 30 CC 06 01 BD FF BD 32 20 15 3C 30 86 06 97 36 CC AA 00 ED 00 C6 02 9D 16 38 C6 50 F7 10 00 39 35
After a refresher of what the modes mean by looking at VL400's breakdown (
viewtopic.php?f=10&t=219), mode 6 is 'Address Of Routine to Execute (GM Development)', which I take as a 'upload and execute' command.
It then goes on to do a few more 06 modes such as this one:
Code: Select all
F7 FD 06 01 56 86 AA 36 18 30 86 06 C6 01 BD FF
BD 32 39 86 F7 8D 26 17 8B 55 8D 21 96 36 8D 1D
5A 27 0A 18 A6 00 8D 15 18 08 5A 26 F6 96 30 40
8D 0B 1F 2E 40 FC 1D 2D 08 18 38 32 39 9D 19 1F
2E 80 FA A7 2F 9B 30 97 30 39 37 C6 55 F7 10 3A
53 F7 10 3A C6 50 F7 18 06 C6 A0 F7 18 06 33 39
3C CE 10 00 1C 03 08 1D 02 08 38 39 3C CE 10 00
1C 03 08 1C 02 08 38 39 36 20 03 36 86 0A 37 4D
27 0A C6 4B 9D 19 5A 26 FB 4A 26 F6 33 32 39 37
FC 10 0E FD 10 16 33 7F 10 22 20 07 B6 10 23 84
80 27 05 86 80 B7 10 23 39 00 E7
Whats weird is you can almost see patterns, or ALDL frames inside of those requests sent... its honestly quite odd!
When trying to line up the data from GMs files, it doesnt seem to actually line up properly.
So I can find "86 AA 36 18 30 86 06 C6 01 BD FF BD 32"
And then further in I can find the rest of that upload.
So I would assume the first part is some sort of addressing for where its to upload.
Once its done its 06 modes, it then moves onto mode 0x10 which is our Flash PCM write routine which appears to upload in chunks of 32bytes at a time.
Just found it kinda interesting since I have not monitored a VY V6 ECU being written by SPS!
But looking back at the J2534 side... theres honesty not much actually required.. we have a whopping 4 commands used for getting setup:
1) Set protocol to ALDL
2) Set pin to 9
3) Set filter to 0 (Allow everything through)
4) Send 'become master'
Effectively... the "Become Master" literally does nothing in this circumstance. It sends nothing, it receives nothing.. and completes instantaneously.
What is is suppose to do, is monitor the bus for poll message/s (Basically the hearbeat), then fire off a message to take control of the bus (tell the bus to be quiet). But... it doesnt.
SPS seems to just carry on and monitors for messages, waiting for the heartbeat to be received before it then actually fires off a F1 56 08 B1 which is a "disable chatter" command to the BCM.
SPS shouldnt have to even search for the heartbeat, since it should have already made the bus quiet... but appears both Bosch and SPS have assumed that neither would implement the command correctly.. and its just there for SAE compliance... even though... its pointless
So.. to make it work with SPS, I have to implement it the same way.. since doing it the 'proper' way results in SPS timing out as it tries to search for the heatbeat after doing the become master command
