0-10 VDC control voltage. Possible with automation HAT?


Automation HAT’s product description states it has 3 x 24V tolerant sinking outputs.

I have a ventilation system, and the fan speed can be controlled in 8 steps by applying a 0-10 VDC control voltage as described in the documentation:

Can I use Automation HAT’s 24V tolerant sinking outputs for that?

If not, what would people suggest?


You can, but you will most likely want to bypass the Automation HAT Python library and use RPi.GPIO’s PWM functionality directly.

You will also need a 10v power supply- or possibly less if you’re not worried about achieving the maximum speed.

Is this control voltage also the fan’s power supply, or is it a separate control line? I’m guessing the former.

You would have tie the ground of your Xv power supply into the ground on Automation HAT, then connect your fan to the positive terminal of the power supply, and the fans negative terminal to the sinking output driver on Automation HAT.

I did exactly this with a PC fan on Friday.

Assuming you have a 10v supply, you should then be able to do this in Python:

import RPi.GPIO as GPIO

OUTPUT_1 = 5


pwm = GPIO.PWM(OUTPUT_1, 25000) # Second value is PWM frequency in Hz, pick an appropriate value

pwm.start(50) # This is duty cycle in %, in this case it should supply ~5v

You can then use pwm.ChangeDutyCycle(n) to dial in values accordingly or each speed.


Thanks for your input.

The 0-10V is only a control input (probably close to this: https://en.wikipedia.org/wiki/0-10_V_lighting_control)

I might change strategy and connect myself to the RS485 bus of the ventilation system. This way I could not only control fan speed but also read out other parameters like in-flow air temperature etc.

The ventilation device is this btw: https://www.vallox.com/en/products/vallox_90_se.html