0 products

CAN Emulator for MK60

The MK60 ABS unit from the E46 M3 is a popular unit used in many custom built cars. Also the S54 engine is a very popular engine swap. Those either running Standalone MK60 or MK60 and S54 without the stock instrument cluster (IKE) and/or the stock engine control unit (MSS54 ECU), faces the fact that the MK60 no longer streams its data to the CAN bus.

For an MK60 to function in a BMW E46 environment, there are several conditions that must be met. The MK60 needs information on the CAN bus from the engine control unit (ECU) and instrument cluster (IKE) as well as from the steering wheel angle sensor (LWS) and the YAW control unit in order to function as it is supposed to. If e.g. the ECU and IKE is missing (as it is in an MK60 Standalone Configuration), the MK60 does not transmit any data on the CAN bus.

The purpose of the CAN Emulator is to feed CAN bus information to the MK60 as if the missing stock units was still there, such that the MK60 streams its data onto the CAN bus

The CAN Emulator is tailormade to either an MK60 Standalone Configuration (no IKE, no MSS54/MSS54HP ECU) or a configuration with MSS54/MSS54HP, MK60 Hybrid Configuration (no IKE). In all configurations of the CAN Emulator it is an absolute requirement that at least the MK60, YAW and LWS is installed in the car and are functioning and configured as in any other stock E46 M3.

Figure 1: CAN Emulator for MK60 in a Standalone Configuration

Figure 2: CAN Emulator for MK60 in a Hybrid Configuration

In its simplest implementation, the CAN Emulator only connects to power (+12, GND) and to the CAN bus. However, many options are available for added functionality. The CAN Emulator does not only emulates the necessary missing units such that the MK60 streams its data onto the CAN bus, but it can also optionally be configured to drive LEDs or small bulbs in order to indicate information normally given by the DSC LED and M-Track LED. Further, a PushButton can optionally be attached to the emulator in order to have a simple interface for clearing various error codes, as well as serve as a synchronizing tool for the MK60 and the LWS. Finally, the emulator can be configured to read the brake pressures from the MK60 and redistribute them on the CAN bus.


Both the hardware and the software is custom made. The hardware is built around the atMEGA328P-AU processor, running at 20Mhz. All interfaces have ESD protection. Power supply is 12V, which is converted to 5V on each module. The software is custom made and optimized with realtime performance in mind. The boot time for the modules is less than 5ms, and hence no "always connected to hot", eleminating discharge of the car's battery. The low boot time also fulfill the boot time requirements for devices connected to the E46 CAN bus.


The CAN Emulator must only be installed by skilled personnel, understanding the art of electronics. The CAN Emulator comes ready with all cables in 0.5m length. All cables are labeled and must be connected to their proper locations in the existing wire network. An installation guide is equipped with each order. In its simplest implementation, the CAN emulator only connects to power (+12, GND) and to the CAN bus, and it is expected that the customer are familiar with what is meant by CANH, CANL, +12V, GND and KBUS as well as knowledge regarding where these are located in the car.


If the great Internet is correct, there are not that many similar solutions out there. According to our experiences, there are e.g. no other CAN Emulator for the MK60 on the market that are able to function in a Hybrid Configuration.


All our CAN Emulators for the MK60 can be ordered with several options.


The MK60 transmits several status indicators onto the CAN bus. The CAN Emulators can optionally be configured to act on several of these indicators.

  • E.g. the status of the DCS light,  as used in a stock E46 M3, is distributed via the CAN bus. If one would like to have a DSC light, the CAN Emulator can be ordered with LED/small bulb drivers such that the light will act in accordance with the infomation comming from the MK60.
  • If the CSL M-Track mode is enabled in he MK60, the CAN Emulator can optionally be configured to indicate the status of the M-Track mode with a LED/small bulb .
  • If the MSS54 ECU is present, the CAN Emulator can also be configured to act on the CEL light.


The option “KBUS-Brake Pressure to CAN” reads the brake pressures from the MK60 via the KBUS and send them onto the CAN bus using a custom CAN identifier. The brake pressures are represented by 16 bit. The custom CAN identifier is transmitted each 500 ms. Please note that if Brakepressures2CAN is ordered, this option does not apply. The Brakepressures2CAN reads the MK60 brake pressure sensors directly and transmitts the brake pressures to the CAN bus at a much higher rate than 500ms.


Optionally the CAN Emulator can also be equipped with a PushButton with a red Angle Eye LED. The PushButton functions as a simple user interface, where short pushes activativates selected functions.

  • One short push: Toggles KBUS-Brake Pressure to CAN
    Toggles KBUS Brake Pressure to the CAN bus on/off. A short red flash in the red Angle Eye LED each 3rd second indicates the brake pressure to CAN active. One more short push deactivates the function, and the Angle Eye LED stops flashing.
  • Two short pushes: Clear MK60 Errors
    Activates the Clear MK60 Errors. The red Angle Eye flashes twice to acknowledge the command. 
  • Three short pushes: Clear MSS54 ECU Errors
    Activates the Clear MSS54 ECU Errors. The red Angle Eye LED flashes three times to acknowledge the command. 
  • Four short pushes: Clear LWS Errors
    Activates the Clear LWS Errors. The red Angle Eye LED flashes one slow flash, followed by four fast flashes to acknowledge the command. 
  • Five short pushes: Sync MK60 and LWS
    Activates the Sync MK60 and LWS. The red Angle Eye LED flashes five times, followed by a longer red light before flashing 5 times to acknowledge the end of the command.  Note that it is required that the steering wheel is in its middle position and wheels straight ahead, since this command also act as zero calibration of the LWS. 


Requests have been received in what to do if one would like to join two different CAN bus'es. Our answer is the Dual CAN, which can do all the things that the Single CAN can do (i.e. make the MK60 "CAN happy", LED outputs, etc.), as well as redistribute the E46 CAN stream to another CAN network. It is also possible to order custom representation of the CAN messages to transform values from the E46 CAN bus into the CAN representation required for e.g the AiM open CAN protocol or other protocols.


Figure 3: CAN Emulator for MK60 in a Dual CAN Configuration




airVent Display solutions

Discover the amazing amount of information available on the E46 CAN bus, made easily available via a touch screen embedded in the E46 air vent console.



MK60 emulator solutions

Enable the MK60 CAN bus data stream in a non-standard E46 configuration, made available by a dedicated custom made MK60 emulator.