I am trying to carry out heat treatment of Steel cylinders. I want to set up my own heat treatment apparatus. I am using the popular ZVS (Zero Volt Switching) driver for this. I bought this device.

In my experiment I want to control the heat supply according to temperature. When the temperature reaches a threshold then the device should turn off. When the temperature goes below this threshold then it should switch back on.

At first I thought of doing this with an SSR (Solid State Relay) where I would control the on/off function to the ZVS driver from Arduino. In regards to using SSR I have the following two questions:

  1. I found in a YouTube video that the workpiece should not be inserted in the coil before turning on the driver. I don’t have the link to the video but he said the reason was to avoid cross conduction in MOSFETs. This is not a problem for the initial insertion. However, as I plan on using the relay with the workpiece still inside the coil I may not be able to take out the workpiece (already hot) in and out.

  2. What could be an alternative technique to control the power to the ZVS driver?

  • \$\begingroup\$ Adjust the DC bus voltage. \$\endgroup\$
    – user57037
    Commented Apr 25, 2018 at 6:25

1 Answer 1


For repeat-ability I would suggest that you require some form of PID temperature control. You could use a simple thermostat but that would not present a repeatable temperature profile given atmospheric variances, etc. This can be achieved with an Arduino as you mentioned - google "Brett Beauregard" for some great PID tutorials on Arduino.

Depending upon how tight the temperature control needs to be, and this does not sound like an application where you require it to be held <1C, I would suggest a simple thermocouple or RTD PID temperature controller with relay controlling the DC link voltage (see ebay for cheap ready-made PID options), that covers the temperature range you are after. This should allow you to keep the heating and cooling within around 10C.

Ultimately you can vary the DC link voltage to get the required power, but in the ZVS mentioned, minimum voltage is 12V, so nowhere near zero power output is possible without modification of the ZVS. Also, it would require a more complex setup (with modifications to the ZVS) to be able to continuously vary the DC link voltage, but for the purpose you have outlined I would suggest it is likely overkill (albeit more elegant and better controlled).

The issue with the switching approach however, is that the switching will cause additional stress and heat in your MOSFETS. However if you set the operation such that the relay operates at a maximum of >1Hz, you should be OK. The reason that the workpiece should not normally be in the coil at startup is because it causes the inductance of the coil to shift, which may inhibit oscillation. If self-oscillation does not occur, the mosfets will short out and burn. Switching the DC supply causes large currents at startup when the workpiece is cold, and this is often less of an issue when the workpiece is hot (in the case of ferric materials). I have discovered in the past that the 'requirement' of having an empty coil at startup is not necessarily true and very much depends upon the relationship of the coil and the workpiece, and such operation IS often possible (albeit less sophisticated than it could be).

Since this is a DC supply, I am not sure what kind of SSR you will be using or where you hope to place it. A mechanical relay is possibly a better bet, placed between the DC power supply and the ZVS. I say this because if you switch the power supply instead, it will take time to come up to voltage, which is likely to cause problems with oscillation (many PSUs this is even a feature, "soft start"). By switching the DC Link with a relay it will be true on/off operation.

In short you will need to experiment, since your work coil, the size of your work piece, and its coupling to the coil will determine what you can achieve. I would suggest trying the relay option first as in many cases it works just fine with an appropriate interval (>1Hz). I would then reduce the DC link voltage manually as far as possible to provide:

  • The required ramp time (heat-up)
  • The minimum current draw required
  • To reduce the quantity of on/off switching cycles demanded by the PID control

If switching proves unreliable than you will need to consider varying the DC link, which will require a power supply that may be controlled from the PID temperature controller. I would also suggest that you should include some kind of oscillation detection, and fusing to the device in the longer term as you could have issues with exploding mosfets and / or fire if left unattended and the oscillations failed, presenting a dead short to the power supply.

  • \$\begingroup\$ Thank you very much for the detailed explanation. I hadn't heard of the PID control before but now I will explore in detail. I am using the MAX6675 thermocouple. I found this video youtube.com/watch?v=LXhTFBGgskI. I think he is using PWM to control the DC. This could be a problem with the ZVS because of a similar problem stated here reddit.com/r/AskElectronics/comments/4mqatk/…. So perhaps the relay is the best option. Cheers. \$\endgroup\$
    – Shuf
    Commented Apr 27, 2018 at 6:58
  • \$\begingroup\$ No problem. The main issue with using PWM is that the frequency is often too high, so there are many on/off cycles that are not at zero voltage, dissipating heat in the mosfets. The other issue that can occur is where the resonant frequency produces a load near the the switching frequency of the SMPS, however this can be negated with an large RC filter. You COULD use PWM at >1Hz and it should work well with the relay, but the switching would be every second, not just as required. Look for a relay with high cycle / current capacity (automotive?). Certainly achievable with a MAX6675 and arduino. \$\endgroup\$ Commented Apr 27, 2018 at 12:19
  • \$\begingroup\$ FYI, for you could also potentially employ a PNP fet on the dc link, but that again is a complication, at which point you may be better served by looking at other approaches (gate drive, etc). Given you have that ZVS already I would recommend getting something to work with relay first and then improve it. With simplicity comes understanding and self resonant oscillators can be very finicky things to troubleshoot when you start adding in components and changing things - much easier to start from something that works, than something that simply does not. \$\endgroup\$ Commented Apr 27, 2018 at 12:29
  • \$\begingroup\$ Sorry for the late reply. I was on exam duty this week. I am going through your answer again and again. I'm confused about one thing. You said the relay should operate at a max of > 1 Hz. Do you mean to say "< 1 Hz" or "minimum" instead of maximum. For example if I use 2 Hz it would be > 1 Hz but it is larger than the maximum 1 Hz. Please excuse me, I am actually from mechanical stream, I am very new to all these so I am being very careful not to fry anything. Thank you so much for your help again. \$\endgroup\$
    – Shuf
    Commented May 2, 2018 at 5:04
  • \$\begingroup\$ From your answer: "I say this because if you switch the power supply instead, it will take time to come up to voltage, which is likely to cause problems with oscillation (many PSUs this is even a feature, "soft start"). By switching the DC Link with a relay it will be true on/off operation." This is correct because it is generally advised to put a manual On/off switch in the DC supply to give a kick. Please see this youtube.com/watch?v=hnwfFBinrwg. In short, I am going to use a mechanical relay. Only thing I hope is the stationery work piece will not be a problem. Thank you again. \$\endgroup\$
    – Shuf
    Commented May 2, 2018 at 5:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.