Greetings, I just wanted to put all this information together in one spot how to adapt the cluster to the ECU by editing the cluster's EEPROM dump in a hex editor for anyone in a similar situation as me.
Apparently VCDS / VAG-COM doesn't like to adapt some clusters to the ECU and will give you a System Not OK when hitting test and Channel 50 Not Available when attempting to save. Thanks to the fine people of this forum, I was able to manually adapt my cluster by editing the EEPROM dump in a hex editor, but the info is scattered all over in various replies, and I was not even aware of the IMMO key assuming that when they mentioned IMMO they just meant the IMMO ID, which allows you to actually set how many keys to be matched within VCDS, but the cluster will fail to add them because everything is not copacetic which just added to the confusion haha.
Check out turboat's tool which is a script capable of preforming the same thing for you:
http://nefariousmotorsports.com/forum/index.php?topic=6134.0title=Big thanks to automan001 for pointing out where the SKC and IMMO Keys were located.
http://nefariousmotorsports.com/forum/index.php?topic=6161.msg57973#msg57973http://nefariousmotorsports.com/forum/index.php?topic=6708.msg62068#msg62068This was done on a VDO 1J0920926 cluster, but the location appears to be the same on a number of clusters just offset some. I am not responsible for anything that happens to your cluster. Any time you write to the EEPROM of the cluster you run the risk of bricking it thus rendering it unusable. You make these modifications and write the binary at your own risk. I would not follow this guide if you have a cluster made by Bosch because as I've read, they are a different beast entirely and if everything is not right you could easily brick your cluster. VDO clusters are more lenient, and you can make changes to the dump in a hex editor without having to worry about a checksum or encrypting it.
All screenshots were taken from a dump made available on here by ddillenger as I am paranoid and didn't want to put my cluster up here
What you need:
VIN - ASCII and is easily spotted within the ascii editor panel from ECU EEPROM dump, or the first value in Extra field of VCDS 01-Engine, and is 17 bytes long.
IMMO ID - ASCII and is easily spotted within the ascii editor panel ECU EEPROM dump, or the second value in Extra field of VCDS 01-Engine, and is 14 bytes long.
SKC - Numeric, can usually be found at hex address 32 of ECU EEPROM dump and is 2 bytes long. Note that the two bytes are stored reversed in both cluster and ECU, so swap before converting to decimal.
IMMO Key - Numeric, can usually be found at hex address 34 directly after SKC of ECU EEPROM dump and is 7 bytes long.
If you have access to your original cluster you could always pull these needed values from the locations stated below and transcribe them into the replacement cluster for IMMO3 to IMMO3 swap.
1 byte would be two digits (or two nibbles) in a hex editor and are usually paired together. For ASCII values that is one character.
For reading the ECU see ddillenger's thread:
http://nefariousmotorsports.com/forum/index.php?topic=2973.0title=For editing the cluster's EEPROM dump you may use your favorite hex editor. For pulling and writing the cluster's EEPROM, I had the most luck with VAG EEPROM Programmer using a dumb vag-com kkl cable, plus is capable of setting the mileage as well, but it wouldn't talk to my ECU. Be weary of where you obtain it because there are plenty of fakes out there which will just read garbage (not to mention may be a trojan). My antivirus (ZoneAlarm) did not flag it as a virus.
Be sure to make a back up of your cluster's EEPROM dump before you make any changes and do not modify this file!IMMO ID is located at hex addresses A2 and is 14 bytes long, then repeated again at B0 and BE. This is stored in ASCII and can easily be spotted on the ASCII editor panel.
VIN is located at hex address D2 and is 17 bytes long. This is stored in ASCII and can be spotted in the ASCII editor as well.
The SKC is located at hex address CC and is 2 bytes long, then repeated again at CE and D0. The bytes are stored in reverse order like the ECU and are hexadecimal numeric values. But if you are adapting it from the decimal value, convert to hexadecimal then swap the two bytes. If your SKC is 1234, convert to hex which would be 04DC, then store DC04 in the eeprom binary. Or in the case of here, the SKC is 6969, which converted to hex would be 1B39, then stored as 391B.
The IMMO key is located at hex address 72 and is 7 bytes long, then repeated again at 7A and 82. These are hexadecimal numeric values and the ASCII representation will not make any sense.
Once you have added these values to the dump, you may write the dump to the cluster's EEPROM. After doing so, either disconnect power for a few minutes, or go back into 19-CAN Gateway and write the soft coding again. Then VCDS / VAG-COM shouldn't complain when matching your keys to the cluster on Channel 21.
For futureproofing in case for whatever reason imgur decides to no longer allow outside linking as photobucket did, this is the album with all the info and images:
https://imgur.com/a/Yw2U1A4Out of curiosity I had a look at all the IMMO3 dumps in ddillenger's file and for the most part they are all in the same location. The following appear to be in the same location as stated above:
1J0920806
1J0920826
1J0920926
1J0920946
1J5920806
1J5920826
1J5920846
1J5920946
There was only one MK4 IMMO3 dump which ended in a 7 and that one was offset by 3E.
On the 1J0920927 dump the SKC is located at hex address E0, EE, and FC. SKC is located at hex address 10A, 10C, and 10E. VIN is located at hex address 110. And IMMO Key is located at hex address B0, B8, and C0.