LEMON Manuals: Even more car manuals for everyone: 1960-2025
Home >> BMW >> 2003 >> M5 >> Repair and Diagnosis >> General Information >> OEM General Information >> Coding And Programming - Overview - All Models >> Coding & Programming >> Central Coding Key (ZCS) >> ZCS Coding Procedures >> Automatic Coding Procedure
April 5, 2026: LEMON Manuals is launched! Read the announcement.

Automatic Coding Procedure

Always have a battery charger connected when using diagnosis or coding equipment. Voltage should be stable at 12.5 V. 

Example used is coding an E39 instrument cluster. 

  1. With the old control module still installed, connect the DIS/MoDiC to the diagnostic socket. Turn the ignition switch on.
  2. Select Coding and Programming from the DIS/MoDiC start screen or "Change" drop down menu.
  3. Fig 1: View Of DIS/MoDiC Start Screen
    G03402888Courtesy of BMW OF NORTH AMERICA, INC.
  4. Select "3 ZCS CODING" and press the continue arrow (right arrow button).
  5. The Version ID page is displayed. Verify that the latest coding software is being used. Press the continue arrow.
  6. Fig 2: Identifying Version ID Display
    G03402889Courtesy of BMW OF NORTH AMERICA, INC.
  7. Note the warning about Car/Key Memory and select the appropriate series.
    Fig 3: View Of Car/Key Memory Warning Display Screen
    G03402890Courtesy of BMW OF NORTH AMERICA, INC.
  8. Fig 4: Identifying Series Selection Screen
    G03402891Courtesy of BMW OF NORTH AMERICA, INC.
  9. The next screen provides five options

    Select recoding, the other 4 options will be discussed at the end of the ZCS coding section.

    Fig 5: View Of Recoding Option Screen
    G03402892Courtesy of BMW OF NORTH AMERICA, INC.
  10. The following screen provides a list of all ZCS codable modules according to the stored ZCS code.
    Fig 6: Identifying Codable Module Selection Screen
    G03402893Courtesy of BMW OF NORTH AMERICA, INC.

    Select the module to be replaced or recoded and press the continue arrow.

    Confirm that the correct module has been selected by pressing the "yes" button and then the continue arrow.

  11. Select the correct procedure to be performed. If the module is going to be replaced select "replace control unit". If the coding is to take place on the existing control unit select "recode control unit".
    Fig 7: View Of Replace/Recode Selection Screen
    G03402894Courtesy of BMW OF NORTH AMERICA, INC.

    For the example "Replace control unit" is chosen.

  12. The following step requires that the faulty control unit still be installed in the vehicle. The coding software reads the ZCS data out of the module and saves it in memory.
    Fig 8: Identifying ZCS Data Transfer Procedure (1 Of 3)
    G03402895Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 9: Identifying ZCS Data Transfer Procedure (2 Of 3)
    G03402896Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 10: Identifying ZCS Data Transfer Procedure (3 Of 3)
    G03402897Courtesy of BMW OF NORTH AMERICA, INC.
  13. After the data is read from the faulty control unit the software will store the data and request that the new component be installed.

    Before coding the new part, confirm the vehicle identity by entering the chassis number. This entry recalls the data stored in the DIS/MoDiC from the faulty control unit.

    Fig 11: View Of Component Installation Screen (1 Of 3)
    G03402898Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 12: View Of Component Installation Screen (2 Of 3)
    G03402899Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 13: View Of Component Installation Screen (3 Of 3)
    G03402900Courtesy of BMW OF NORTH AMERICA, INC.
  14. Select "Transfer data to new control unit and code control unit".

    The following screen will then request that the control unit be installed and the key be turned on.

    Fig 14: Identifying Transfer Data Selection Screen
    G03402901Courtesy of BMW OF NORTH AMERICA, INC.
  15. Note the warning that some displays or operation may change from what is normal for that country or vehicle version (e.g. display in Celsius or Fahrenheit). If changes need to be made they may be done after coding by using Conversion.
    Fig 15: View Of DIS/MoDiC Warning Screen
    G03402902Courtesy of BMW OF NORTH AMERICA, INC.
  16. When coding the instrument cluster, EKM or LCM/LSZ the coding software will ask if the component should be rigidly assigned to the vehicle. Assigning the component permanently writes the VIN to that component.

    If the part is only being used for testing purposes select "no".

    Fig 16: Identifying VIN Assignment Selection Screen
    G03402903Courtesy of BMW OF NORTH AMERICA, INC.
  17. Verify that the chassis number and ZCS code are correct. If any changes need to be made select "yes" and a keypad will appear on the right side for manual entry.

    If the information is correct chose no and continue with the right arrow.

    Start automatic coding by selecting "yes".

    Fig 17: View Automatic Coding Selection Screen (1 Of 3)
    G03402904Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 18: View Automatic Coding Selection Screen (2 Of 3)
    G03402905Courtesy of BMW OF NORTH AMERICA, INC.
    Fig 19: View Automatic Coding Selection Screen (3 Of 3)
    G03402906Courtesy of BMW OF NORTH AMERICA, INC.
  18. The final screen will acknowledge that coding was successful and if the ZCS code was changed. Changes in the code are made if the coding software and control module software and hardware are modified from the original combination. On vehicles that utilize a label a replacement label should be made and placed next to the original and the original crossed out.
    Fig 20: Identifying Coding Confirmation Screen
    G03402907Courtesy of BMW OF NORTH AMERICA, INC.