# Modifying a thermostatic radiator valve for micro control

The photo below shows a electrical thermostat controller. The upper part is the motor with a gear. The motor has two wires attached. A red and a black one for the current.

What this component does is regulation a heater. There is a little pin which will be brought in different positions by the motor and the gear. From the side it looks like this.

The pin is inside the case the the heater is at max.

|


Here the heater is at half temperature:

|---


and here the heater is at zero:

|------


You can see this pin in the following image.

This function seems to me similar to a servo. The position of the pin has a defined minimum and a defined maximum.

Edit: I do not want to damage the gear. When I use an Arduino or RaspberyPi I can use a GPIO to control it but I have no idea how I know the min, max and current position.

Edit: I got an answer from the manufacturer.

Detection is effected by means of a light barrier and reflectors which are mounted on the gears of the transmission.

Me: Meaning that that will automatically stop the engine and turn on the gearbox would not be possible, even if you are current in one direction continuously to the engine?

No, that would not be the case. The information of the light barrier be integrated into the engine control. A durable power of the engine would not be permitted.

Also I get:

The driving of the motor is realized by a so-called H-bridge. Depending on the direction in which the motor is to just turn, are either the transistors T1 and T4 are turned on or dieTransistoren T2 and T3. The base resistors R2, R3, R4 and R5 are at the transistors so dimensioned that a sufficiently large collector-emitter current can flow, but the power loss across the base-emitter path is kept low, in order here also To save power. The diodes D1 and D2 is protection diodes hervorgeru- an unacceptably high back-emf to the switching transistors, fen by the motor, avoid. To determine the position of the valve actuating section If on a gear using the Reflex Opto coupler RFK20 off the revolution pulses asks. The activation of the reflex coupler is performed using the transistor T6, which is connected across the base resistor R16 of port P2.1. As soon as the transit transistor is turned on, the transmitter diode of the reflex coupler via the emitter-collector path and R15 powered. The polled gear Berad contains three reflective markers .Once a emerges these marks before the reflection coupler, the transistor of the reflex coupler switched through and the Port P0.1 is pulled to ground, which in turn is considered a pulse.

(Motorsteuerung means motor control)

Here are my assumptions:

• the room temperature is given from a sensor
• there is a target temperature given too
• I do not want to use the given electronics, I just want to use the gear and the motor and control the motor myself.

How can I control the motor with a GPIO or PWM pin for example to set to different positions?

• How about driving the motor until it's stuck? Or long enough for it to be stuck? – Dmitry Grigoryev Dec 14 '15 at 10:33
• I do not want to damage the gear. When I use an Arduino or RaspberyPi I can use a GPIO to control it but I have no idea how I know the min, max and current position. – confile Dec 14 '15 at 10:36
• Well, I don't see how you can fit a position sensor in there... – Dmitry Grigoryev Dec 14 '15 at 10:51
• The electronic which is currently in this device must do something like that. – confile Dec 14 '15 at 10:51
• Minus 1 and vote to close. Instead of doubting and running around like a chicken with its head cut off, why don't you contact the manufacturer and find out for sure? This whole thing is ridiculous. – EM Fields Dec 14 '15 at 13:09

For those not familiar with this device, it is a motorised hot water central heating radiator (thermostatic) valve or TRV. Many brands are available for retrofit with options for wireless control and integration into a home automation system.

I suspect that an internal limit switch shuts off the motor at end of stroke. The valves are supplied with adaptors to adjust the actuator position relative to the valve pin and this may be good enough to prevent the motor continuously driving against the pin.

Bear in mind that the control of the valve is not drive to a position based on temperature but rather open or close based on difference between setpoint and actual. It's similar to the way you press the accelerator on a car - it's not a particular position for a set speed but rather you act as the feedback loop giving more throttle if under-speed and less if over-speed with the amount proportional to the error.

I'm curious about the innards myself. I'll see what I can find.

[Update]

The device I had read most about is the HomeMatic eQ-3. This is a wireless, battery powered control valve actuator complete with LCD, etc. As in your device this has a motorised actuator to drive the valve pin.

The Installation and Operating Manual. Page 34 states

After inserting the batteries, all segments on the display (A) are actuated and then the software version number appears on the display for a short time. Then the valve drive moves the control pin (E) completely back to make installation easier. During this time the display shows „A1“. If the control pin (E) completely back the display shows „A2“.

If the device doesn't have a limit switch it either works by running back for a fixed time (unlikely) or it senses the increase in current when the motor stalls.

Pate 35 goes on to say

Put the valve drive on the heater valve ... Press the channel button on the valve drive one time briefly. The display shows "A3". The drive closes the valve completely. If the valve is completely closed, the device display shows "0%".

This seems to be the calibration cycle. As you have figured out already you need to know where the actuator first engages with the valve pin and where end of travel is. My guess is that it times its run from A2 to A3, possibly picking up the change in current when it first touches the pin due to the valve spring resistance and then continues on until it detects the hard stop.

I suggest you try hooking up your multimeter in amps mode in series with the battery or motor connections and do some tests. When you connect up the batteries it should go into calibration mode. Note the current at the various positions. (Push a stick or drill-bit into the actuator orifice so you can see its position move from the outside.) If you connect in series with the motor you should see the sign change as the motor changes direction.

Finally, to answer your question, I don't think you can or need to convert the device to a servo. In itself it's an open-loop actuator but when paired with a thermostat it can form part of a closed loop temperature control system.

• There is no switch. Only the two wires to the motor. – confile Dec 14 '15 at 18:11
• Addressed in the update. – Transistor Dec 14 '15 at 19:08
• I got an answer from the manufacturer. "Detection is effected by means of a light barrier and reflectors which are mounted on the gears of the transmission." Me: Meaning that that will automatically stop the engine and turn on the gearbox would not be possible, even if you are current in one direction continuously to the engine? "No, that would not be the case. The information of the light barrier be integrated into the engine control. A durable power of the engine would not be permitted." – confile Dec 15 '15 at 14:52
• Well done for getting the info from the manufacturer. The English is a bit garbled but I think he's saying that I'm wrong and that there is a photo-sensor (probably on the PCB) looking at reflectors on the gearhead. He's also advising you not to stress the gears by driving continuously. Edit your question with the info provided and give a bit more information on what you want to achieve. Change question title to something like "Modifying a thermostatic radiator valve for micro control" as the original title was sounds a little mad. – Transistor Dec 15 '15 at 18:19

Based on the response from the manufacturer - was that their English, Google Translate's or your translation? - I think you'll only damage something by modifying the controller too much. I would like to propose an alternative solution.

You haven't given enough information in your question so we have to make some assumptions:

• You are going to use this TRV as a TRV.
• You want to control the TRV remotely.
• You want to use a micro to control the TRV.
• The valve position will be set by the micro program using feedback from a temperature sensor.
• Control will be wired (and not wireless).

simulate this circuit – Schematic created using CircuitLab

If you were to add a little heater in the form of a resistor in close proximity to the internal temperature sensor (maybe a Pt1000 in the device?) and couple them closely you could spoof a room temperature rise which should cause the valve to close. By reducing the on-time of the resistor you could cool it down and valve should open.

To get this to work you'll need to do some tests and calculations to see how much power you'll need. You will also need to set the TRV internal setpoint higher than the max room temperature that you'll ever see - otherwise it will close by itself.

• I did the German to English translation with google translate. – confile Dec 15 '15 at 19:12
• I want to control the motor with my ESP8266 GPIO or PWM pin for example. – confile Dec 15 '15 at 19:13
• Please see my edit. Do not focus on the temperature sensor I got this part. My problem is still how to set the motor to the min and max position and how I can set it to a specific position in between. Do you have an answer for that? – confile Dec 15 '15 at 19:19
• What I'm saying is leave the TRV alone except for addition of the heating resistor. You control the heat (only 1/4 watt) and let the TRV work as normal. Much simpler and less risk of damage. Tidy up the Google translation before anyone sees it! ;^) – Transistor Dec 15 '15 at 19:24
• I do not know what you mean. My goal is to replace the motor control with an ESP8266 and control it from WiFi this way. – confile Dec 15 '15 at 19:26