Test measurements - Strooom/SmartTherm GitHub Wiki
After soldering all components I decided to check the signal path with a scope (Rigol MSO2202) Setting a 25% dutycycle on the 'boiler drive' pin D8, results in this waveform.
Voltage is nice from GND to 3.3V, and frequency is indeed 1 KHz. This then goes into the optocoupler U2B and comes out on the 24V side of the board
Note that when there is no drive from the microcontroller, R4 pulls the transistor Q1 open, so the output is low. This is to avoid that without a proper drive from the MCU, the boiler should go on, for example when the MCU crashes for some reason.
Opamp U3A then amplifies the signal to 0-24 V, opamp U3B applies a low-pass filter, turning the square wave into a DC voltage with only a small 20mV ripple
Note: the noise on the signal is from the 24V supply I was using for test.