HML087 coder ROM for E30 instrument cluster

The E30 instrument cluster for newer models have a coder in front that stores the configuration parameters for SI boards: 6 or 4 cylinders, the maximum RPM, etc.
Inside of the coder, the chip HML087 is used. It’s a 40-year-old ROM that uses its own communication protocol.

The coder pins

Pin Function Description
1 CLOCK The data is sent on its level going from high to low
2 GND Ground
3 +5V Power to the chip
4 GND Ground
5 DATA The output data: high – 1, low – 0
6 GND Ground
7 CS The ROM is selected when the CS level is high
8 GND Ground

Communication protocol capture

The coder for HML087 1385468 (E30 325i M20B25 7000RPM USA)
hml087_1385468

The communication protocol description.
The pin CS is set high by a microprocessor. Then, the microprocessor sends 64 CLOCK signals. When the CLOCK signal goes from high to low, the ROM outputs data on the DATA pin.

Data from different coders

Coder Description 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1385468 E30 325i M20B25 7000RPM USA 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0
1380873 E30 M3 S14 8000RPM Europe 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0
1377368 E30 325e M20B27 5000RPM USA 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1
1394321 E30 318is M42B18 7000RPM USA 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0
1385364 E30 318i M40B18 7000RPM Europe 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0
    16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1385468   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1380873   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1377368   0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0
1394321   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1385364   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
1385468   0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0
1380873   0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0
1377368   0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0
1394321   0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1
1385364   0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0
    48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
1385468   0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0
1380873   0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0
1377368   0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1
1394321   0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 1
1385364   0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0

HML087 emulation

The communication protocol can be emulated by a microprocessor. While Attiny looks like an obvious choice, it’s too slow. It will work with older SI boards where the CLOCK signal duration is 30 µseconds, but in the newer SI boards it’s 5 µseconds.

HML087 emulator that uses the microprocessor ch32v003

hml087_emulator

hml087_emulator_schema

Code: https://github.com/faritka/hml087

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>