HOWTO: Low Cost Heat Sterilizer for Virus Inactivation

akiba 2020-04-09
2020-04-18 Updated

New research on actual SARS-CoV-2, aka Coronavirus, by the National Institute of Health shows that SARS-CoV-2 can be inactivated by dry heat. This is 70 deg C for 60 minutes. Please check the preprint release of the medical paper here.

2020-04-14 Updated

Apparently new research on actual SARS-CoV-2, aka Coronavirus, shows that they are quite resistant to heat. Although heat can inactivate the virus, it may not inactivate all of it. Please see this article for more information.

In a previous post, I discussed different ways that masks could be sterilized for reuse. I dismissed the heat sterilization technique as “too fiddly” and requiring an “industrial oven specifically for sterilization”. I’ve been thinking more about it recently and started questioning my rationale for dismissing it.

Steam sterilization is an easier process because the transition from water to steam occurs at a fixed temperature (100 deg C) which means you don’t need any specific gear to regulate temperature. For heat sterilization, you would need some control mechanism to keep the temperature at approximately 70 degrees C for thirty minutes in order to properly sterilize a mask or tools, at least according to Stanford Medicine.

I decided to contradict myself and see how difficult it’d be to set up a heat sterilization chamber. Interestingly enough, it’s not as difficult as I expected.

The Theory

Heat sterilization is quite straightforward. Viruses similar to Covid-19 such as SARS and influenza are known to be weak against temperatures greater than 60 degrees C and it’s believed that Covid-19 is as well. There are still further tests that need to be conducted regarding definitively proving heat can deactivate Covid-19, and various groups are working it.

In the meantime, let’s discuss how we’re going to set up a low cost heat sterilization chamber. Trying to hit 70 degrees C is actually not a herculean effort, since typical consumer ovens go higher than 200 degrees C. Generally we’d need a heating element, temperature controller, and a suitable chamber.

For the control, I ended up building it myself for this experiment. I used an Arduino and a relay module and implemented a very simple form of temperature control called bang-bang. It’s simply an on-off control mechanism similar to a thermostat. When you hit the low temperature set-point, you turn on the heating element. When you hit the high temperature set-point, you turn it off.

Bang-bang temperature control isn’t a great control mechanism and is usually only good if you:

  • Don’t need super accurate temperatures
  • The temperatures don’t fluctuate quickly

Luckily in this case, both criteria are met. We just need to hit around 70 degrees C and the temperature doesn’t change so quickly in our chamber.

The Build

The first thing to think about is what we’re going to use to heat the enclosure. Heating elements are quite specialized devices that are both hard to get and can be expensive. Instead I decided to use a standard 100W incandescent light bulb.

Incandescent light bulbs are still plentiful and can be purchased at most hardware stores or via Amazon. They are horribly inefficient as a light source with only 10% of the energy that goes into them producing light. Luckily the other 90% of that energy produces heat meaning it’s quite efficient as a heat source. Yay!

Light bulbs are actually quite good as heaters and if you’re old enough to remember the EZ-Bake Oven, the oven was heated using one. So a 100W light bulb with 90% heat essentially becomes a 90W heating element.

Because we’re not dealing with high temperatures, I decided to use standard, low-cost plastic enclosures for my sterilization chamber. As long as the melting point was much higher than the target temperature, I thought it might be okay so I decided on the following enclosure.

This was a fail. I didn’t take into account that because it wasn’t an insulated enclosure, it was losing heat like crazy through the sides and the top. The further I tried to heat the inside above the ambient room temperature, the faster the heat would leak out. Finally I hit an equilibrium where I just couldn’t heat it above 42 degrees C.

After going back to the drawing board, I figured I would either need more light bulbs or a well insulated sterilization chamber. I decided to start with the insulated chamber.

I went with a styrofoam box from the local hardware store which is used for keeping vegetables or meat cold as they’re being transported. Since we’re in a farm town near a fishing town, these get used quite often by the locals. This particular one was around $8 USD. I think any kind of cold storage box would do as well such as an Igloo cooler (US) or Esky (Australia).

Now that I had the chamber squared away, I put together my heating setup. Before I continue, I found out that you could just buy a temperature controller for about $30. I totally recommend going this route, unless you really like doing things from scratch.

My heating setup consisted of the following:

  • An Arduino-compatible board (The FreakLabs Fredboard), fan, and temperature sensor (DS18B20). The fan is used to churn the air so the heat gets evenly distributed. The temperature sensor is used for the temperature control of the system.

  • A relay module. This one is the same as the cheapies you’d buy for $1 on eBay. We use these in our Arduino workshops and we package it up so it’s safe and a bit more user friendly. Essentially, it’s used to turn on and off electrical appliances.

And our heating element, a 100W incandescent light bulb.

The setup is actually quite simple and followed this connection diagram. We used the Arduino to control when to turn on and off the light bulb based on the temperature. For any temperature below 70 deg C, we turned on the light bulb. For any temperature above 73 deg C,we turned it off.

The reason we had a gap between our ON and OFF set points was so the controller wouldn’t quickly cycle on and off, which happens if we have the set points at say 70.1 deg C and 69.9 deg C. That gap is called hysteresis and is mainly used so you don’t oscillate between the ON and OFF states so much.

Here’s a shot of how the system actually looked. It’s quite simple.

This time, the project was a success and I can definitively say you can heat the inside of a styrofoam box to 70 degrees quite quickly. In fact, I logged the temperature vs time so you can see how quickly it heats up:

It takes approximately 3 minutes to go from ambient to 70 degrees C using the 100W light bulb. From there, the bang-bang controller keeps the temperature oscillating between 70 and 73 deg C. Since it’s an insulated box, the heat take a while to dissipate so the relay isn’t toggling on and off so quickly.

The styrofoam box also looks quite stunning when you turn off the lights. When the heating element turns on, the box becomes translucent.

The code for the temperature controller is here. You will also need the OneWire library and the Dallas Temperature library for Arduino.


So finally, it actually is slightly more fiddly to create a temperature chamber but you can take a huge shortcut by buying a temperature controller. With heat sterilization, the plus side is that you can actually scale the size of the temperature to the largest insulated box you can find. You might need more than one light bulb, but those are cheap. I suspect this is a slight advantage over steaming since most steam chambers I’ve seen are not very large.

I also think that dry heat has a benefit over ultraviolet sterilization (UVGI). For UVGI, you can only decontaminate the surface. Any shaded areas will not be sterilized or at least receive a much smaller dose than surfaces directly exposed to the UV light. Heat on the other hand is pervasive and as the mask or whatever tool is being sterilized comes to the target temperature, it should inactivate the viruses even in the pores and folds.

Good luck and stay safe, from Hackerfarm.


  1. Nice project! Line the inside of your chamber with aluminum foil – shiny side toward the heat – and you’ll improve effiency and stability of the inside temperature.

  2. Hi there, I’ve built mine using a slightly modified steam cooker. The temperature (without the lid) stays constantly around 70 degrees Celsius. After the process, I hung the mask until It’s completely dry, storing it in a homemade paper bag. Please take a look at it on my YouTube channel. RCLoversan

  3. You’re not supposed to wet the mask with steam, that will remove some, if not all of the static electric charge in the meltblown layer and greatly decrease the mask’s performance.

  4. ^ that was a reply to G’s comment.

    To the author: which source should we trust regarding the temperature needed to completely deactivate SARS-CoV-2? So far the paper mentioned in the SCMP article is the only one I have read which says over 70°C is needed. The medical paper you linked on April 18, as well as this paper published on The Lancet Microbe ( , see supplementary material for full test results), say 70°C is good enough.

  5. I am going to go with the NIH document since they have actual data on SARS-CoV-2 and inactivation. Also the SCMP article says the research refers to 60 degrees at 1 hour whereas NIH says 70 degrees at 1 hour. It is also possible to go higher than 70 degrees C with just a light bulb as long as the insulation is good enough.

Post a new comment