AC high power control


I’m looking to control a 230V 3KW heating element.

It will be heating 5-15 liters of water at a time to a specific temperature (~60-70C) and boiling.
The temperature control is fairly easy with thermostat like control since PID is overkill with slow systems like this. However, boiling with 3KW is overkill in a bad way so I want to be able to regulate the power.

I have a few options but I doubt which one is best.

-(1)Simple SSR control. Use time based modulation to “regulate” the power (9 sec on 1 sec off = 90% power etc)
-(2)Zero crossing detection similar to this
-(3)Similar to 2, but switch on on 0 point as well to prevent large current spikes/noise on the AC line.
-(4)Rectify the AC and use ‘simple’ PWM and a thyristor. Probably needs a massive capacitor.

I’m thinking of taking route 3 but perhaps other options are a better choice, I’d love your input.


I am not sure I understand all of your problem parameters. You say that thermostat like control (what I would call a “bang-bang” controller) that is either on or off is fine, but then you want different non-temperature sensing control scheme. Is that just for the controlled boil? For holding temperature in the 60-70C range, thermostatic control with hysteresis will work well.

A little math shows that 15L with a 3000W heater would take around 26 minutes to go from 25C to 100C so I don’t think your heater is undersized per se. You would want the element on full blast for this phase.

For the maintaining-a-boil phase, either (1) or (2) would work well depending on what you want for a reaction time. Your (2) is the standard lamp dimmer. High power DC (4) is a different animal and unless you are very experienced I would recommend against it.

I would look for a higher power rating than what your element pulls. In particular there are many 3500W Arduino compatible dimmer devices on eBay, but I would look for something bigger in the 5000W+ range for robustness.

I would also mount a thermostatic NC switch in line with the power near the element as a safety. You could get 160C or 180C 20A@240V switch pretty easily since these are used as safety switches in electric clothes dryers. Even so I would never leave this thing unattended for long periods!

Finally if you are brewing beer, there seem to be lots of people here in forum with experience building controllers for brewing. Search around and you will find them!


If your just looking to sometimes keep the water temp (~60-70C) and boiling. Why not just use a out of the box PID solution? Something Like This

Or are you wanting to do more than just heat water, say like remotely monitor or control it, thus requiring the a Particle product.


I did something similar. It was the same concept, but the application was a heating cable to prevent water freezing in a pipe.

In my case, I used an out of the box PID solution to handle temperature control. It came with the cables, but it made everything simple.

Then I used a Photon with a SSR to handle On/Off functionality. I could get the weather report automatically and only turn on the system when I needed to prevent the water from freezing. In your case, you could turn on the heater a bit in advance of needing the hot water and turn it off when its no longer needed.

Of course, you could do all the control yourself, but you have to build in the logic to do it. Luckily, your control loop will not need to be super fast for your application, so it should be relatively easy.

Some SSRs switch internally on zero crossing, so you could have a solution that meets both option (1) and (2) at the same time.

As bko recommends, choose a higher power rating than needed.
For example, my system draws 14 A on 120 V. I chose a SSR rated for 25 A at 240 V that switches at the zero crossing. Also in my case, the SSR required a heat sink. A SSR is not cheap, but the price difference of a SSR that has lots of extra margin was less than $2 more than a SSR that was pushed to its limit and risked failure.


It indeed is intended for brewing beer. Looks like I’ll be going for option 2 since that is a little better to control than 1. Thanks for your input on safety, didn’t think of those simple, yet effective, thermostat switches!

@seulater The reason I’m doing it like this is because of price (eventhough that link is very affordable!) and well, because why not :smile: Looking to integrate it with IFTTT and get push messages when stages in the brewing are done etc.

@cyclin_al I have a 20A SSR. The load is 13A so 65%. The datasheet states 50-60% “load current safety factor”. I got a heatsink as well since it’s a tad over the factor + 13A load = heat. Can’t find if it’s zero crossing or not but it most likely is considering an AC SSR contains a triac. Hopefully the store knows what they’re selling and didn’t sell me a counterfeit SSR. Didn’t buy a Fotek for this reason.

Thanks for your input everyone :smile:


@TheHawk1337, It looks like you did some decent research to know that there are counterfeits out there. I could not find a reliable supplier of the Fotek SSRs in the country where I live with the fear of ending up with a counterfeit, so I ended up going with Crydom relays from a reliable supplier. The price difference between a 10A Crydom and a 25A Crydom was less than $2, which is minimal price for a lot more capacity.
There should be a way to tell if the SSR is zero crossing or not. Sometimes it is hidden in the datasheet. For example, the Crydom D2425-10 is NOT zero crossing, which I used for a 1.7A motor control (inductive load) but the Crydom D2425 is zero crossing, which I used for the 14A heater cable (resistive load).

Let us know which SSR you have, maybe someone here knows if it is zero-crossing or not.

Happy brewing!


I bought the XSSR-DA2420, datasheet.

I’m guessing “The bidirectional control silicon output and zero circuit shutdown” means zero crossing in Engrish :smile:

I can’t find a lot of info about this SSR besides some german posts on arduino forums etc. but I guess it indeed is zero crossing.


@TheHawk1337, I am pretty sure that quote in the datasheet means turning off the SSR will happen on the zero crossing. Turn-on will likely happen immediately, and not necessarily on the zero crossing. That will likely be okay for your application.

Did you take note of the very last application note in the datasheet? It indicates that you need to take care of over-voltage and over-current protection on the output. Over-current protection is easy; an appropriately rated fuse should do the trick. Over-voltage will probably be something rated for AC based on the concept of a set of zener diodes.