Nefmoto is working for me with 512kb ECUs, but with "some special procedure".
- turn ignition ON and connect to ECU
- select 400BB layout and file to write
- click write and wait for it to fail with messege "A communication error was encountered while flashing. Press Cancel to abort, or OK to continue after reconnecting."
- click OK and wait for it to disconnect
- turn ignition OFF and click reconnect
It will say now "THIS-IS-THE-RAM-PROGRAM-" in KWP info, get SecurityAccessPositiveResponse and start write.
I don't even remember how I came up with this, but it works for me every time for many years...
Thank you, this helped.
I got the writing to succeed when I waited a good moment after that dialogue (and pressing ok), and pressed the connect fast/slow init button again. it started writing!
I also tried turning off / cycling the ignition there like you suggest, but that prevented the operation.
however, I get "erase report failed" errors, despite that the writing goes through and no problems occur.
Connecting...
Starting fast init connection.
Connecting to address 0x01.
Fast init sent, sending start communication request.
Start communication request did not receive any response.
Disconnected
Waiting for user to reconnect to ECU before continuing...
Connecting...
Starting fast init connection.
Connecting to address 0x01.
Fast init sent, sending start communication request.
Start communication request did not receive any response.
Disconnected
Waiting for user to reconnect to ECU before continuing...
Connecting...
Starting fast init connection.
Connecting to address 0x01.
Fast init sent, sending start communication request.
Switching to KWP2000 session.
Connected
ECU reports programming session preconditions have been met.
Negotiating communication timings.
Timing negotiation failed. Communication timings are unchanged.
Requesting security access.
ECU reports that security access is not supported.
Starting diagnostic session.
Successfully started diagnostic session.
Negotiating communication timings.
Successfully changed to new communication timings.
Requesting security access.
Security access granted.
Requesting flash memory erase for address range 0x00800000 to 0x00803FFF.
Failed to erase flash memory.
Sector erase reported as failed. Calculating checksum to verify erase.
Calculating flash checksum to verify if erase was successful for range: 0x00800000 to 0x00804000
Verified the memory sector was erased properly.
Requesting download to ECU for address range 0x00800000 to 0x00803FFF.
Request download to ECU succeeded.
Starting data transfer.
1% complete.
2% complete.
3% complete.
Data transfer complete.
Requesting data transfer exit.
Successfully exited data transfer.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00804000 to 0x00806000
Flash checksum matches new data, flashing is unnecessary, skipping.
5% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00806000 to 0x00808000
Flash checksum matches new data, flashing is unnecessary, skipping.
6% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00808000 to 0x00810000
Flash checksum matches new data, flashing is unnecessary, skipping.
13% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00810000 to 0x00820000
Flash checksum does not match new data, flashing is necessary.
Requesting flash memory erase for address range 0x00810000 to 0x0081FFFF.
Failed to erase flash memory.
Sector erase reported as failed. Calculating checksum to verify erase.
Calculating flash checksum to verify if erase was successful for range: 0x00810000 to 0x00820000
The memory sector was NOT erased properly, will continue and attempt to write memory sector.
Requesting download to ECU for address range 0x00810000 to 0x0081FFFF.
Request download to ECU succeeded.
Starting data transfer.
13% complete.
14% complete.
15% complete.
16% complete.
17% complete.
19% complete.
19% complete.
20% complete.
22% complete.
25% complete.
25% complete.
Data transfer complete.
Requesting data transfer exit.
Successfully exited data transfer.
Calculating checksum for first memory range to determine which erase mode the ECU is using.
ECU appears to be in erase sector mode, continuing the flash process.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00820000 to 0x00830000
Flash checksum matches new data, flashing is unnecessary, skipping.
38% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00830000 to 0x00840000
Flash checksum matches new data, flashing is unnecessary, skipping.
50% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00840000 to 0x00850000
Flash checksum matches new data, flashing is unnecessary, skipping.
63% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00850000 to 0x00860000
Flash checksum matches new data, flashing is unnecessary, skipping.
75% complete.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00860000 to 0x00870000
Flash checksum does not match new data, flashing is necessary.
Requesting flash memory erase for address range 0x00860000 to 0x0086FFFF.
Failed to erase flash memory.
Sector erase reported as failed. Calculating checksum to verify erase.
Calculating flash checksum to verify if erase was successful for range: 0x00860000 to 0x00870000
Verified the memory sector was erased properly.
Requesting download to ECU for address range 0x00860000 to 0x0086FFFF.
Request download to ECU succeeded.
Starting data transfer.
76% complete.
77% complete.
78% complete.
79% complete.
80% complete.
81% complete.
82% complete.
83% complete.
84% complete.
85% complete.
86% complete.
87% complete.
Data transfer complete.
Requesting data transfer exit.
Requesting data transfer exit.
Successfully exited data transfer.
Starting to flash data block.
Calculating flash checksum to determine if flashing is necessary for range: 0x00870000 to 0x00880000
Flash checksum does not match new data, flashing is necessary.
Requesting flash memory erase for address range 0x00870000 to 0x0087FFFF.
Failed to erase flash memory.
Sector erase reported as failed. Calculating checksum to verify erase.
Calculating flash checksum to verify if erase was successful for range: 0x00870000 to 0x00880000
Verified the memory sector was erased properly.
Requesting download to ECU for address range 0x00870000 to 0x0087FFFF.
Request download to ECU succeeded.
Starting data transfer.
88% complete.
89% complete.
90% complete.
91% complete.
100% complete.
Data transfer complete.
Requesting data transfer exit.
Successfully exited data transfer.
Disconnecting from ECU to force it to recognize successful completion of flash write.
Writing ECU flash memory succeeded. Wrote 11 of 11 sectors in flash memory.
Flashing time was 00:04:08.
Disconnecting...
Disconnected
even this functionality is enough and makes nefmoto a winner, but what could be the reason for those? I'm already fed up with the fact that mpps v18 is not 100% reliable, it randomly brickes the ecu, and has to be repaired via boot mode. I can't get the Galletto 1260 to work, it freezes in all operations, no matter what I try to do with it.