Steam control using single setpoint PID on the Rancilio Silvia

The stock steam thermostat on the Rancilio Silvia heats the boiler to  ~ 295° F, then turns off. It does not turn the boiler on again until the temperature drops to ~ 245° F. This wide variation provides poor quality foam, certainly not the rich, thick foam you've come to appreciate at your local coffee house.

So, when I added a PID to my Silvia, I decided that I wanted to control the steam temperature as well as the brew temperature. The problem was that I only had a single setpoint PID, an Auber SYL-1512. This PID did have an alarm circuit, however, so I devised an inexpensive way to use the alarm circuit to provide much better control of the steam setpoint than the stock Silvia offers.

With reference to the sketch below, it works as follows:

Power to the PID is provided by the Silvia via the red, black and green dotted lines connected to the Auber SYL-1512 PID. When the Silvia is powered on, the PID's normal Solid State Relay (SSR) output controls the relay through diode D2, regulating the brew temperature.

The PID is programmed such that the High alarm trip point is set to 295° F and the Low alarm trip point is set to 296° F. This causes the alarm switch connected to J1 to turn ON when the temperature drops below 295° and OFF when the temperature exceeds 296° F.

When the Steam switch is activated, the 12V adapter is powered on through the dotted purple wire, providing voltage to the alarm contacts of the PID. (Any power adapter with sufficient voltage to activate the SSR,  usually 3-32 volts, will work here.) This voltage is carried through the closed alarm contacts and diode D1 to the SSR, turning it on. This heats the boiler until the alarm trip point of 296° F is reached. At this temperature the alarm contacts open, turning off power to the SSR so the boiler turns off. When the steam valve is opened to steam the milk the boiler temperature drops below 295° F so the alarm relay contacts in the PID close once again, activating the SSR and heating up the boiler, providing consistently high steam temperature and pressure.