I wanted to sum up my experience with cloning Immobilizer and VIN data from one ecu to another. I felt like I had to dig around a bit for this information, so I just wanted to summarize it all here in one post.
I started with a tuned ECU from GIAC and got another ECU as a spare to continue my tuning. I disabled IMMO in the spare and tuned and ran it with immo off for a while.
I read the 95040 from both ecu's. I only wanted to clone over just the IMMO and VIN specific data in the eeprom. Of course, I could have just wrote the eeporm from the GIAC ECU to the current one, but there was unisettings tweaks and who knows what GIAC writes to that file... I just wanted the IMMO data.
Locations in file of data
VIN = 0xB5-0xB9, 0xD0-0xDB AND 0xC5-0xC9, 0xE0-0xEB
SKC = 0x32-0x33 AND 0x42-0x43. (To decode the skc: flip bytes, convert to dec, add leading zero)
IMMO Data (key data shared w/ cluster) = 0x34-0x3A AND 0x44-0x4A
IMMO ID = 0xDC, 0xF0-0xFC AND 0xEC, 0x100-x10C
IMMO ON/OFF= 0x12 AND 0x22 (01 on, 02 off)
I copied the data from each of these locations (using a hex editor) from my previous file to my new tuned file, immo flagged as on of course, checksummed the file and wrote it back to the 95040 on my tuned ecu. Plugged the ecu back in and the my car fired right up.
Again, this is not new information, I just felt it was a bit scattered through threads and here it is all in one post.
Attached are:
1) screenshots from vcds showing vin and immo ids of both ecus
2) giac.bin is the source of my immo/vin data
3) custom.bin is the file I had been using with IMMO off while tuning
4) customAdapted.bin shows the adapted eeprom with the pertinent data merged from giac.bin
5) customAdapted(checksum).bin is the last file with the checksums corrected.
I am working on an eeprom editor/wizard in visualme7logger (uses me795040 to read and write) for an future release so you can do all this without even thinking about opening up a hex editor or command prompt.
Of course you'll have to write your changes back to the ecu in bootmode.