Re: Ford MPC565 Tuning
Posted: Fri Oct 28, 2016 3:38 pm
Ok we have our first possible bricked PCM (a test spare PCM of which he has about 20) which is quite interesting.
He had ticked sniff ISO15765 comms and then tried a flash during the sniff all with the same cable. I should have disabled the flash write buttons if sniffing was enabled as it uses a different comms mode which doesn't reply, this will result in timeouts and the flash write failing, it should however be recoverable.
He has tried my new version (haven't sent it out to others yet as I haven't finished the DMR stuff completely) and the recovery process also doesn't work. In case anyone is interested this is what I do
There are 3 levels of failure.
J2534 error means the cable didn't receive any packets or it failed to write. Usually this means cable unplugged, no power etc.
OBD error means the basic ISO connect command or poll PID etc got back a packet but it contained an OBD error code.
UDS error means the UDS command structure got back an invalid response or an error code.
In recovery mode the PCM rejects all OBD commands and only accepts the UDS command security access and flash write.
So as part of my recovery if I get any errors during the auto detect including J2534 errors (only buff_empty or timeout, cable hardware errors are still critical) I treat them as an autodetect failure but not a complete critical failure causing a disconnect.
I then try and send the security access command and if that succeeds I assume it is in recovery mode. It seems even the security access command is failing as I don't see "unlocking controller" in the log.
I have tested my recovery mode by pulling out the OBD cable during an erase/flash, also tried pulling all ECU power mid flash and it results in an erased PCM which can still accept a flash on reboot. I have also flashed an FG file onto BF which causes the PCM to erase itself on bootup. All of these failure modes have been recoverable to date.
What I'm assuming is that by enabling CAN sniffing and trying a flash at the same time the PCM wrote to sector 0x0 instead of 0x10000 which overwrote the bootloader. I'm not quite sure how this could happen. The other possibility is the BA does not have a recovery mode. Two other guys I know have bricked BA pcms by writing BF files onto them (with other software), but I imagine this is due to overwriting the bootloader.
So in the time being be more careful with a BA PCM, it may not recover if you power it off or pull the cable during a flash write. The BF/FG PCM however seems unbrickable at the moment, other than purposely overwriting the bootloader I'm not sure how you can brick them.
I will also ensure all other buttons on the software are disabled during a flash write.
Another one is the J2534 logging whilst a flash is not recommended, there is a shitload of text generated which lags the GUI out at this stage. I will probably remove J2534 logging to the GUI and just log to file.
He had ticked sniff ISO15765 comms and then tried a flash during the sniff all with the same cable. I should have disabled the flash write buttons if sniffing was enabled as it uses a different comms mode which doesn't reply, this will result in timeouts and the flash write failing, it should however be recoverable.
He has tried my new version (haven't sent it out to others yet as I haven't finished the DMR stuff completely) and the recovery process also doesn't work. In case anyone is interested this is what I do
There are 3 levels of failure.
J2534 error means the cable didn't receive any packets or it failed to write. Usually this means cable unplugged, no power etc.
OBD error means the basic ISO connect command or poll PID etc got back a packet but it contained an OBD error code.
UDS error means the UDS command structure got back an invalid response or an error code.
In recovery mode the PCM rejects all OBD commands and only accepts the UDS command security access and flash write.
So as part of my recovery if I get any errors during the auto detect including J2534 errors (only buff_empty or timeout, cable hardware errors are still critical) I treat them as an autodetect failure but not a complete critical failure causing a disconnect.
I then try and send the security access command and if that succeeds I assume it is in recovery mode. It seems even the security access command is failing as I don't see "unlocking controller" in the log.
I have tested my recovery mode by pulling out the OBD cable during an erase/flash, also tried pulling all ECU power mid flash and it results in an erased PCM which can still accept a flash on reboot. I have also flashed an FG file onto BF which causes the PCM to erase itself on bootup. All of these failure modes have been recoverable to date.
What I'm assuming is that by enabling CAN sniffing and trying a flash at the same time the PCM wrote to sector 0x0 instead of 0x10000 which overwrote the bootloader. I'm not quite sure how this could happen. The other possibility is the BA does not have a recovery mode. Two other guys I know have bricked BA pcms by writing BF files onto them (with other software), but I imagine this is due to overwriting the bootloader.
So in the time being be more careful with a BA PCM, it may not recover if you power it off or pull the cable during a flash write. The BF/FG PCM however seems unbrickable at the moment, other than purposely overwriting the bootloader I'm not sure how you can brick them.
I will also ensure all other buttons on the software are disabled during a flash write.
Another one is the J2534 logging whilst a flash is not recommended, there is a shitload of text generated which lags the GUI out at this stage. I will probably remove J2534 logging to the GUI and just log to file.