HEADLAMP LEVELLING - System Overview
The Light Levelling ECU is used in many BMW models and was also fitted to the L322 when BMW owned Land Rover. It was fitted to the vehicle only in conjunction with Xenon headlamps. Normal halogen lamp cars have either no self levelling capability or use the Light check module which is also capable of supporting this feature. Indeed due to a tendency for this ECU to go faulty, the ECU ceased to be fitted after a couple of years from the L322's introduction. The system relies on reading inputs from the front and rear axle height sensors, which are available in single wiper and dual wiper for vehicles with and without this ECU, and using their difference and applying speed related adjustments and other calculations determines what changes are happening to the angle of the vehicle. It then uses more map information to find the right value to apply to the stepper motors located inside both headlamp modules to adjust the angle of the headlamp to compensate for the change in angle of the vehicle. It is quite a dynamic process performed at some speed resulting in a capability for very fast regulation of the height that counters the effects of bumps and . As with all BMW designed ECU's this ECU has configuration to suit a very wide variety of applications and operational factors giving it immense flexibility. It has a variety of possible inputs which controlling.
SM066 - HEADLAMP LEVELLING - System Help file
Version 1.27

HEADLAMP LEVELLING - Known Fitments
Vehicle makes, models and variants known or believed to be using this vehicle system, required diagnostic lead and degree of known compatibility.

Vehicle Make Vehicle Model Vehicle Variant Diagnostic Lead
Land Rover Range Rover MK III ( L322) 2002 - Mid 2005 Black OBDII Lead/LD020/LD021

HEADLAMP LEVELLING - Physical Details

SM066 - HEADLAMP LEVELLING - Diagnostic Capabilities (Read Fault Codes)
Reads the fault code memory. The ECU can self detect up to 5 different problems with itself, its wiring and its associated sensors, storing the respective code if it detects any malfunction or reading outside of pre defined acceptable limits. Not all stored faults may cause the fault warning lamp to illuminate.

SM066 - HEADLAMP LEVELLING - Diagnostic Capabilities (Clear Fault Codes)
Clears the fault code memory.

SM066 - HEADLAMP LEVELLING - Diagnostic Capabilities (Settings)
Values, configuration settings, and other stored information which can be read from the ECU, edited and then rewritten back. Read settings can also be stored as a standard HTML page for reference. These pages can then later be re loaded and re written back to the ECU. Please note that some values may be read only due to the fact that they are supplied from the ECU’s ROM or are internally calculated.

  • Part Number: This is the manufacturer's part number for the ECU.
  • Hardware number: This is the hardware version which denotes the processor and circuit board type.
  • Software number: This is a number which relates to the software programmed in the processor of the ECU.
  • Supplier number: This is a number which defines the supplier using a standard look up list of supplier of ECU manufacturer.
  • Coding index: This is a number which denotes the layout of the options within the EEPROM of the ECU and denotes which coding map should be used to program the ECU with.
  • Diagnostic index: This is a number that indicates the diagnostic capabilities support level.
  • Bus index: This is a number that indicates the bus communication support level, the vehicle communication buses.
  • Week of build: This is the week of the year in which the unit was built.
  • Year of build: This is the year in which the unit was built.
  • Lower voltage limit: This is a value that sets the minimum voltage acceptable by the head lamp levelling system for operation. The ECU accepts any value between 0 and 255, the normal value for L322 being 118.
  • Vertical movement map: A collection of 10 hexadecimal values separated by comma which control the scaling and upper and lower limits for the vertical movement within the light levelling module. For L322, the normal map is : 0A,75,86,AA,D1,00,00,02,04,06
  • Acceleration map: A collection of 5 hexadecimal values separated by comma which control the acceleration for the vertical movement within the light levelling module. For L322, the normal map for the L322 is : 06,03,02,02,02
  • Motion delay: This is the maximum delay for a fast regulation. The ECU accepts any value between 0 and 255, the normal value for L322 is 2.
  • Error limit: This is the maximum numbers of errors that the system accepts. The ECU accepts any number between 0 and 255, the normal value for L322 being 80.
  • Minimum difference: This is the minimum step that the system can recognize. The ECU accepts any number between 0 and 255, the normal value for L322 being 3.
  • Upper sensor supply limit: This is the upper limit for the sensor supply. The ECU accepts any value between 0 and 255, the normal value for L322 being 135.
  • Lower sensor supply limit: This is the lower limit for the sensor supply. The ECU accepts any value between 0 and 255, the normal value for L322 being 130.
  • High sensor input voltage upper limit: This is the upper limit for the high sensor voltage. The ECU accepts any value between 0 and 255, the normal value for L322 being 234.
  • High sensor input voltage lower limit: This is the lower limit for the high sensor voltage. The ECU accepts any value between 0 and 255, the normal value for L322 being 20.
  • Drive/time map: A collection of 32 hexadecimal values separated by comma which control the time required for the head lamps to be driven. For L322, the normal map is : 03,5E,03,5E,03,5E,02,BD,02,3F,01,D9,01,89,01,53,01,28,01,02,00,DD,00,BF,00,A3,00,A3,00,A3,00,A3
  • Motor diagnostic: This denotes if the motor diagnostic feature is activated or not.
  • 10 seconds status monitoring: This denotes if the feature of monitoring the status for 10 seconds is activated or not.
  • Front axle gradient: The gradient for the front axle can be set to be either rising or falling value in relation to a rising or falling height. Normal for L322 is set to falling.
  • Rear axle gradient: The gradient for the rear axle can be set to be either rising or falling value in relation to a rising or falling height. Normal for L322 is set to rising.
  • Trigger point initiation cooling period: This is the point the cooling period is triggered. The ECU accepts any value between 0 and 15, the normal value for L322 being 3.
  • Cooling period: This is the period of time set for cooling after the cooling period was triggered. A set of two hexadecimal numbers separated by comma.
  • Park position step: This is the reference position, the position that the head lamps are parked. The ECU accepts any number between 0 and 255, the normal value for L322 being 170.
  • Maximum step position: This is the maximum step position that the head lamp levelling accepts. A set of two hexadecimal numbers separated by comma.
  • Reference travel delay: This is the delay between two movement to the reference point. The ECU accepts any number between 0 and 255, the normal value for L322 being 20.
  • Open circuit count limit before motor shutdown: This is the maximum numbers of open circuit detected before the motor will shout down. The ECU accepts any value between 0 and 255, the normal value for L322 being 2.
  • Short circuit count limit before motor shutdown: This is the maximum numbers of short circuit detected before the motor will shout down. The ECU accepts any value between 0 and 255, the normal value for L322 being 3.
  • Travel start point: This is the point set as the beginning of motor travel before the offset is applied. The ECU accepts any number between 0 and 255.
  • Sampling frequency front axle: This is the frequency at which the light levelling ECU reads values from the front axle height sensor. The ECU accepts any number between 0 and 255, the normal value for L322 being 52.
  • Sampling frequency rear axle: This is the frequency at which the light levelling ECU reads values from the rear axle height sensor. The ECU accepts any number between 0 and 255, the normal value for L322 being 52.
  • Temperature limit: This is the A to D reference point above which the ECU determines that a motor has over heated. The ECU accepts any number between 0 and 255, the normal value for L322 being 52.
  • Motor offset: This is a hexadecimal offset which is applied to the motor position for different headlamps of different vehicles. The ECU accepts any number between 00 and FF. The normal value for L322 being 80. which is a negative number (zero in this case) due to the MSB being a 1? EG 81 = a -1 offset and 01 being a +1 offset.
  • Motor speed change point value: This is the number of steps of difference, above which the motor is driven at the higher speed. The ECU accepts any number between 0 and 255, the normal value for L322 being 2.
  • Sensor wear correction value: This is a value used to compensate for sensor wear. The ECU can store any number between 0 and 255, the normal value for L322 being 10.
  • Minimum adjustment period: This is the period of change required as a minimum to trigger fast height regulation. The ECU accepts any number between 0 and 255, the normal value for L322 being 4.
  • Motor table checksum: This is a check sum for motor data. The ECU accepts any number between 0 and 255, the normal value for L322 being 23.
  • Brake application monitor: This configures the ECU to be able to determine if the brakes are being applied and so to build this information into its correcting calculations.
  • Low range monitor: This configures the ECU to be able to determine if the vehicle is in low range and so to build this information into its correcting calculations.
  • Off road monitor: This configures the ECU to be able to determine if the vehicle is being driven off road and so to build this information into its correcting calculations.
  • Delta value front/rear axle block 1 - 16: These are blocks of 16 hexadecimal numbers separated by commas. The left part of the hexadecimal number is part of the delta value for the rear axle and the right part of the hexadecimal number is part of the delta value for the front axle. Re-entered parameters should be entered in an identical format to that which is read.
  • Coding data block 1 - 8: A specific block of programmable data which is entered into the light levelling module to control its functionality for specific variations of vehicle. There are 6 hexadecimal digits in the first block, each digit is separated by a comma. In blocks 2 to 8, there are 16 hexadecimal digits, each digit is separated by a comma. Re-entered parameters should be entered in an identical format to that which is read.

SM066 - HEADLAMP LEVELLING - Diagnostic Capabilities (Other)
Choice of functions that can be performed.

  • Reference position lock: This function is used as an aid when manually adjusting the head lamps for correct beam alignment. It drives the stepper motors to their normal reference (no adjustment applied) positions and prevents the ECU from making any active adjustments from this position as long as the function is still running. Effectively locking the motors in this position makes the headlamps fixed beam and therefore possible to adjust the headlamp aim by the traditional adjusters, in conjunction with a traditional beam pattern / alignment tester as described in the workshop manual.. When doing this operation, this function should be running, the Main Beam on and the EAS should be set to standard. The engine should also be running with all of the doors closed to keep the suspension from self levelling and thereby possibly altering the vehicles angle from normal.
  • Return to normal: This returns the ECU back to its normal active self regulating mode.