Ford Nugget LINBUS – part 5: Eberspacher diesel heater

The Eberspacher diesel heater is associated to message frame ID’s 0x39 and 0x3A. The messages with ID=0x39 contain information on the operation mode such as “circulation” or “heater on” and in a different byte the distinction between “comfort” and “intensive”, as well as the set-point temperature and the actual interior temperature. Responses to message ID=0x3A contain sensoric information on the heater, as well as a seemingly duplicated set point temperature. The following graphs show various traces of the (decoded) temperatures and identification of status bits:

The graph shows two different runs of the heater. The first in comfort mode between 11.00 and 14.30 and the second in intensive mode starting at 17.30. The second trace shows when the heater was turned on. The third trace, value hu07 shows the difference between comfort and intensive. It also shows that the setting is still transmitted when the heater is turned off. The fourth trace does not seem to add information, but in different runs not depicted here it shows different values when the heater is actually switched off when hot air is being produced and when the system is in recirculation mode. The fifth and last trace shows an interesting difference between comfort and intensive operation.  This signal is mostly 0x07, but in comfort mode when the burner (or fan?) is actually running it has the value 0x27.

The currents during operation of the heater are around I=10A when the heater is starting to heat and around I=0.56A when only the fan is running (observed in intensive mode). I assume that the 10 amperes are drawn when the diesle fuel needs to be pre-heated.

Decoding the of the various temperatures was simple enough. Interestingly between the Nuggets interior and outside sensors and the heater sensors the actually translation between byte values and temperature is different Also the interior temperature that is inputted to the heater has a byte value resolution of 0.1 degree while the original source in message ID 0x02 has a resolution of 0.5 degrees. The heater’s measurement of the interior temperature is very close to the Nuggets’interior thermometer, especially when heated. When not in operation it can be clearly seen that those are two different sensors. compere the red and orange line below:

Message 0x39 contains the setpoint of the heater, and message 0x3A has seemingly a copy of this information. However I have observed once that they are not in agreement:

This happened when the heater was changed form intensive operation to circulation. I don’t recall the exact sequence of changes on the touch screen. Possibly I first turned it to circulation and than increased the set point to 20 degree. I may have changed the setpoint back to 19 degree when I turned on the heater again to make differentiated conditions for decoding. The heater itself may not be interested in the setpoint when in circulation mode.

The partly decoded heater frames are summarized below:

Eberspacher diesel heater
ID  : 0x39 
data: FF 02 50 80 02 00 00 80
       |  |  |  |  |  |  |  |
      ??  |  |  |  |  |  |  |  = (always 0xFF)
         AA  |  |  |  |  |  |  = 0x00 = off, 0x02 = heater on, 0x08 = circulation
            TS  |  |  |  |  |  = Setpoint temperature (x/2 - 40 °C)
               TL TH  |  |  |  = Room temperature to heater (x/10 - 50 °C) 
                     ??  |  |  = (always 0x00)
                        ??  |  = (always 0x00)
                           CI  = 0x00 = comfort (or circulation). 0x80 = Intensive

Eberspacher diesel heater
ID  : 0x3A
data: 9A 00 35 36 50 00 50 27
       |  |  |  |  |  |  |  |
      ??  |  |  |  |  |  |  |  = (always 0x9A)
         ??  |  |  |  |  |  |  = (always 0x00)
            TO  |  |  |  |  |  = outlet temperature (x/2 - 40 °C)
               TI  |  |  |  |  = intermediate temperature (x/2 - 40 °C)
                  TS  |  |  |  = setpoint temperature (x/2 - 40 °C)
                     ??  |  |  = (always 0x00)
                        AA  |  = some status, possibly fan related 
                            |    0x00 off
                            |    0x20 during circulation
                            |    0x40 cool-down/fade-out of heater
                            |    0x50 heater on
                           BB  = 0x00=off, 0x02=comfort, 0x27=intensive 


Most literature of the LIN bus assumes that there is a “Leader” on the bus and one or more “Followers”. Typically the Leader sends a header consisting of “Break-Sync-Indentifer” and the Followers respond with 2-8 bytes of data and a checksum. This paradigm works well for sensors which values the Leader likes to know. (See this NXP link for leader/follower terminology). Now on a LIN bus typically there are also actuators, which are also Followers. Actuators need to be provided with data so that they know what to do.

From this perspective the Leader can provide the data of the response part and the Follower listens to this data. From a puristic view one could say that the device that implements the Leader also implements a Follower. The second follower than listens in on the information.

In case of the Eperspacher heater I believe that the message with identifier 0x39 is the Leader’s message of the Touch screen to the heater to provide all the information needed for the operation of the heater. The 0x3A message is a typical sensor type message where the touchscreen sends the message and the heater send the response of its operational conditions. Strangely enough it is hard to find information on this way of operating a LIN bus. I come to this conclusion because there is not other communication on the LIN bus to provide mode and set point to the heater from the touch screen and I also believe there si not other connection between display and heater except for the Lin bus.

Leave a Reply

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