Posted on 11 Comments

Jaguar S-Type Aux Heater / Webasto Thermo Top V Part 2 – W-Bus Diagnostics

As I mentioned in the previous post, these heaters have a standard interface that’s used for control & diagnostics, the W-Bus. This is transmitted over the K-Line of the vehicle bus, and all heaters, regardless of firmware modifications done by the various car manufacturers respond to this interface. Official Webasto diagnostic adaptors are available, but these are just a very expensive serial adaptor. A much cheaper option is a ~£5 Universal ODB adaptor.

ODB2
ODB2

Above shows the signals on the ODB connector – the ones we’re interested in here are Pin 16, the +12v supply, and Pin 7, K-Line. Connect Pin 16 to the positive supply to the heater, and Pin 7 to Pin 2 on the Webasto heater. (Valid for all TT-V heaters).

Device Selection
Device Selection

Once these two connections are made to the heater, fire up the Thermo Test software. The screen above will be displayed. Pick W-Bus at top left.

COM Port Selection
COM Port Selection

First thing, connect the ODB adaptor to USB, and change to the correct COM port in Thermo Test. There may be several in the list, but a newly connected USB device should show up with the highest COM number.

Thermo Test
Thermo Test

Once Thermo Test is running, start communications by going to the Diagnosis Menu > Start Diagnostic (F2 keyboard shortcut).

Initialized
Initialized

After a few seconds, communication will be established. This will show faults, if any are present, and allow testing of the heater & it’s component parts. A summary report can be generated with Diagnosis > View Summary:

Diagnosis report                                               Webasto Thermosystems
------------------------------------------------------------------------------------------


Configuration:
--------------
  W-Bus version...............................................................3.3           
  Device name.............................................................X204 SH           
  W-Bus code.......................................................715CC0E73F8000           
  Fuel type................................................................Diesel           
  Circulating pump in control idle period.......................................0           
  Heating duration limitation.................................................255 [min]     
  Factor for shortening of ventilation duration...............................1/1           
  Device identification number..........................................09007236E           
  Dataset identification number.......................................09006806H05           
  Software identification number........................................000000000           
  HW version................................................................51/03           
  SW version..................................................Tuesday/07/04 12.12           
  SW version (EEPROM).........................................Tuesday/07/04 12.12           
  Date of manufacture control unit.......................................27.10.03           
  Date of manufacture heater.............................................04.02.04           
  Customer identification number.....................................4R8318K463AE           
  Serial number........................................................0000123626           
  Test signature.............................................................4B42           
  Minimum voltage threshold....................................................10 [V]       
  Maximum voltage threshold....................................................16 [V]       
  Delay for supply voltage min. detection......................................20 [s]       
  Delay for supply voltage max. detection.......................................6 [s]       

Operating data:
---------------
  Working hours.............................................................44:03 [h:m]     
  Operating hours.........................................................5388:08 [h:m]     
  Start count...............................................................19129           
  Burning duration PH 1..33%.................................................0:00 [h:m]     
  Burning duration PH 34..66%................................................0:00 [h:m]     
  Burning duration PH 67..100%...............................................0:00 [h:m]     
  Burning duration PH >100%..................................................0:00 [h:m]     
  Burning duration SH 1..33%.................................................0:00 [h:m]     
  Burning duration SH 34..66%................................................0:00 [h:m]     
  Burning duration SH 67..100%...............................................0:00 [h:m]     
  Burning duration SH >100%..................................................0:00 [h:m]     
  Working duration PH........................................................0:51 [h:m]     
  Working duration SH......................................................121:10 [h:m]     
  Start counter PH..............................................................6           
  Start counter SH............................................................854           
  Ventilation duration.......................................................0:00 [h:m]     

Error:
------

------------------------------------------------------------------------------------------
12.03.17  17:17:30                                       Webasto Thermo Test  2.16.1

This shows all the important stuff, including running hours. (5388Hrs on this heater!). Most importantly, there are no faults listed.

Heater Running
Heater Running

The heater can be fully tested by issuing a start command from the Command Menu > Parking Heating option. Obviously cooling water will be required for this, along with an external water pump. (The water pump control output on these heaters seems to be totally disabled in firmware, as they rely on the engine’s coolant pump). I used a bucket of water along with a small centrifugal pump to provide the cooling. During this test I noted that the firmware is much more aggressive in these units. The marine versions shut down at ~72°C water temperature, whereas these don’t so the same until ~90°C.

Now I’ve managed to communicate with the heater, I’ll get onto building a standalone controller so I can dispense with the Windows VM for control.

Posted on 2 Comments

Eberspacher D5W ECU Constant Overheat Error

Eberspacher ECU 25 1599 50 00 00
Eberspacher ECU 25 1599 50 00 00

Here’s another Eberspacher control unit, this time from an ancient D5W 5kW water heater. The system in this case is just flaky – sometimes the heater will start without fault & run perfectly, then suddenly will stop working entirely.
The error codes are read on these very old units via an indicator lamp connected to a test terminal. In this case the code was the one for Overheat Shutdown.

Considering this fault occurs when the heater is stone cold, I figured it was either a fault with the sensor itself or the ECU.

Temperature Sensor
Temperature Sensor

The temperature sensor is located on the heat exchanger, right next to the hot water outlet fitting. I’m not sure what the spec is, but it reads exactly 1KΩ at room temperature.

ECU PCB
ECU PCB

The PCB is held into the aluminium can by means of crimps around the edge that lock into the plastic terminal cover. Inserting a screwdriver & expanding the crimps allows the PCB to be slid out.

Casing Crimps
Casing Crimps

The factory date stamp on the microcontroller dates this unit to March 1989 – considerably older than I expected!
Unlike the newer versions that use transistors, this ECU has a bunch of PCB relays to do the high current switching of the water pump motor, fan motor & glowplug.
Overall the board looks to be solidly constructed, with silicone around all the larger components.

ECU PCB Solder Side
ECU PCB Solder Side

Here’s the solder side of the PCB, which has a generous coating of sealant to keep moisture out.

Bad Joint Closeup
Bad Joint Closeup

Looking at the solder joints for the row of relays on the top side of the PCB, it looks like that there’s some dry joints here.
I suspect that years of vibration has taken it’s toll, as the relays are otherwise unsupported. It wouldn’t be possible to use silicone to secure these devices as they are completely open – any sealant would likely stop them from operating.

Resoldered Joints
Resoldered Joints

Using a very hot soldering iron I managed to get the joints to reflow properly, using lots of flux to make sure the conformal coating didn’t interfere with the reflow.

Posted on Leave a comment

Marine Potable Water Management System

LCD Panel
LCD Panel

Having two separate water tanks on nb Tanya Louise, with individual pumps, meant that monitoring water levels in tanks & keeping them topped up without emptying & having to reprime pumps every time was a hassle.
To this end I have designed & built this device, to monitor water usage from the individual tanks & automatically switch over when the tank in use nears empty, alerting the user in the process so the empty tanks can be refilled.

Based around an ATMega328, the unit reads a pair of sensors, fitted into the suction line of each pump from the tanks. The calculated flow is displayed on the 20×4 LCD, & logged to EEPROM, in case of power failure.

Water Flow Sensor
Water Flow Sensor

When the tank in use reaches a preset number of litres flowed, (currently hardcoded, but user input will be implemented soon), the pump is disabled & the other tank pump is enabled. This is also indicated on the display by the arrow to the left of the flow register. Tank switching is alerted by the built in beeper.
It is also possible to manually select a tank to use, & disable automatic operation.
Resetting the individual tank registers is done by a pair of pushbuttons, the total flow register is non-resettable, unless a hard reset is performed to clear the onboard EEPROM.

Main PCB
Main PCB

View of the main PCB is above, with the central Arduino Pro Mini module hosting the backend code. 12-24v power input, sensor input & 5v sensor power output is on the connectors on the left, while the pair of pump outputs is on the bottom right, switched by a pair of IRFZ44N logic-level MOSFETS. Onboard 5v power for the logic is provided by the LM7805 top right.

Code & PCB design is still under development, but I will most likely post the design files & Arduino sketch once some more polishing has been done.