Saturday, November 19, 2022

 At Home CADR Testing for Air Cleaner Devices



These instructions are for performing an at-home CADR test in a small chamber such as a bathroom or a portable greenhouse. This procedure should give pretty precise results, with an error estimation.

A simpler but less precise procedure is described in this dylos video:

Their spreadsheet can be used, or Portland State's ACE-IT spreadsheet

I have yet to do a thorough evaluation of the difference between this method and those spreadsheet methods, but an initial evaluation suggested they can be off by a bit. That is fine for some use cases and in those cases those methods are appropriate.


  • Aqueous salt solution
    • Purchase a premade, sterile 7% salt solution. This is preferable, but expensive.
    • Get deionized water (distilled is acceptable but deionized is better) & kosher salt (NOT common table salt which is iodized and does not dissolve well). Common sizes of these items, 1 Gallon and 48 Oz, are plenty and will last for many, many experiments. -- if you go this way you'll need a kitchen scale to measure the salt by weight.
  • Mesh nebulizer
    • The UC Davis paper uses a Wellue, but I could not find one. I have this one (link), it may disappear from amazon as tends to happen. A key feature for me is that it can be USB powered from a wall wart.
  • Sensirion SPS30 with Development Kit (link)
    • The development kit is an SPS30 + a $40 USB cable, so some might hesitate to get it. I understand that perspective. But that $40 USB cable enables the use of Sensirion's ControlCenter software (link) so not only does it remove the task of wiring up the SPS30 to something, it also removes the task of writing software to record the data. That's good value, and I recommend it. If instead you feel inclined to wire one up and write some software, have at it.
    • SPS30 records particle sizes from 0.3 - 10 microns, see the datasheet.
  • A computer to record the data.
  • A space to run the experiment that is within the recommended temperature and humidity range of the SPS30. From the SPS30 datasheet, "The sensor shows best performance when operated within recommended normal temperature and humidity range of 10 to 40 °C and 20 to 80 % RH, respectively." I try to keep to around 70 °F and 40 % RH.
  • A small table to put the particulate sensor on.
  • A portable greenhouse
    • The one I use (59" x 59" x 72") seems to be discontinued but a similar one is available (link).
  • A mixing fan
    • I use a small HT-800 series Honeywell. Any similar small table fan that can be angled upwards will do.
  • Some tape

 Outline of Experimental Procedure

Firstly, this technique builds off of the excellent paper "Characterizing the performance of a do-it-yourself (DIY) box fan air filter" by Rachael Dal Porto, Monet N. Kunz, Theresa Pistochini, Richard L. Corsi & Christopher D. Cappa which can be found here. See the supplemental section of the paper for a description of their technique. Roughly summarized, it is:

  1. Generate particulate matter in a room.
  2. Turn on an air cleaner device to remove that particulate matter.
  3. Observe the rate of decline of particulate matter using a particulate matter sensor, this allows calculation of the Clean Air Delivery Rate (CADR) of the air cleaner device.

Of course, there is more to it than that. A couple of really important things to consider:

  • Particle decay due to the natural ventilation and deposition that occurs in the space. In any space there is a certain amount of air exchange with the outside -- this is the ventilation component. It could be due to HVAC, an open window, or the unsealed bottom of a garden tent. Deposition is the process of particle matter floating around until it hits stuff in the room and settles on it. Particle decay due to ventilation and deposition can vary quite a lot depending on the environment chosen for the test and environmental conditions like temperature, humidity, etc. And it can be significantly large, so it has to be subtracted from the decay caused by the air cleaner in order to get an accurate measurement of the air cleaner.
  • The well-mixed assumption. The test is built on the assumption the particulate matter is well-mixed within the space. To achieve this, an extra fan is placed in the environment and pointed towards the wall.
  • Background particle concentration in the space. If the space has a significant background particle concentration (the particle concentration before the experiment starts) this makes the math that needs to be done... annoying. This can be dealt with by raising particle concentrations for the test to levels much higher than background or by running air cleaner device(s) prior to the experiment to reduce the background concentration. Once one of those things is done, background concentration is assumed to be zero.

Accounting for ventilation & deposition as well as making sure the air is well-mixed, the experiment becomes:

  1. Select a space for the test, hereafter referred to as the test chamber.
  2. Ensure background particulate levels are low enough (preferably zero) by selecting a test chamber with low particulate or running air cleaner(s) prior to the experiment.
  3. Turn on the mixing fan. It should be placed near a corner of the chamber, pointed at the corner.
  4. Begin recording particulate matter levels using the particulate matter sensor. It should not be up against the wall or immediately next to the air cleaner device.
  5. Generate particulate matter in the test chamber.
  6. Allow the particulate matter to decay so that ventilation and deposition in the chamber can be measured.
  7. Save the recorded particulate matter levels for the ventilation and deposition part of the experiment.
  8. Reset the particulate matter in the space to an acceptable background level (as close to zero as possible).
  9. Begin recording particulate matter levels using the particulate matter sensor. It should not be up against the wall or immediately next to the air cleaner device.
  10. Generate particulate matter in the test chamber.
  11. Turn on the air cleaner device. It should be placed near the center of the chamber.
  12. Allow particulate matter to decay so that effect of the air cleaner device can be measured.
  13. Save the recorded particulate matter levels for the air cleaner device part of the experiment.

That's the basic outline of running an experimental trial. Next, I will walk through the particulars and practicalities of performing the experiment.

A note on effects of the small chamber size:

Using the smaller chamber (UC Davis and AHAM test procedures use larger sized rooms) may overstate the impact of ventilation and deposition due to the small space. This may be exacerbated by the high mixing fan speed I have selected. The ventilation and deposition added by turning on the air cleaner device's fan(s) may be understated because the effect of the high mixing fan speed dominates. Both of these factors mean that the reported CADR in a small chamber may be an understatement when compared to testing the devices in a larger chamber. It is unknown how large this effect is, but given comparisons to AHAM tested devices that showed similar results, it is not expected to be too large.

Setting up the Greenhouse

Stand up the greenhouse. Tape the flaps to the floor to reduce how much air escapes out of the bottom, leaving room for power cords to run under the walls.

The power cords for the mixing fan and the air cleaning device are run under walls of the greenhouse so they can be turned on and off without disturbing the chamber.

Setup the Mixing Fan

Place the mixing fan in the corner of the greenhouse and run the power cord under the wall of the greenhouse. If you're using a small room, the mixing fan can simply be plugged in in the room since it can remain on for the duration of the test. I set my fan to the highest speed.

Setup SPS30

Put the SPS30 on a small table inside the chamber, then run the USB cable under the wall of the greenhouse. If you're using a small room like a bathroom you'll want to find some way to run it under the door.

My SPS30 is wrapped in several layers of aluminum foil as shielding because I suspect it may be receive some electromagnetic interference.

Before settling on the SPS30 I tested out the Plantower PMS5003 and the SDS011. I found that the results from those sensors were more unreliable than from the SPS30. Plus, the SPS30 has the ControlCenter software, which makes it much easier to get going.

Setup Sensirion ControlCenter

Get Sensirion ControlCenter from and install it. It's available for Windows, Mac, and Ubuntu.

Then, plug the USB into the computer and start ControlCenter. The SPS30 shows up in the top left.

To start recording particulate samples (default rate is once per second, which is good) click 'Start'. We are interested in the PM2.5 Mass Concentration range as this will give a CADR that approximates performance for respiratory aerosols.


ControlCenter shows particle mass concentration, number concentration, and particle composition which is a live view of how the particles are binned.

To stop recording, click 'Stop'.

To get the data file that has just been recorded, click 'File' > 'Open Data Log Folder'


Mix Salt Solution

Using a kitchen scale measure out 30 grams of salt and 300 grams of water. The density of water is 1 g/mL so this is 300 mL of water. I am assuming you do not have any laboratory glassware, so this is a good way to way to get a precise amount of water.

Vigorously mix the salt and water together until the salt is no longer visible. I use a stirring plate and an erlenmeyer flask, but any capped container will do and salt will mix with water just by shaking or stirring.

Now you have 300 mL of 100 g/L salt solution.

Setup the Nebulizer

Positioning the Nebulizer

I place the nebulizer on the outside of the chamber, near the floor, poking through a small gap in the zipper.

I've got it propped on some things so it is level with the zipper. I get it level because if it's pointed up, it tends to think it's out of solution and shut itself off.

I plug the nebulizer into a USB wall wart for power.

Adding Salt Solution to the Nebulizer Cup

Fill the nebulizer's cup with the salt solution, taking care not to spill. It is best to fully remove the cup from the nebulizer and fill it a safe distance from the nebulizer. Salt water is corrosive and spilling it on the nebulizer can cause corrosion that will kill the nebulizer (I have done this). Wipe away any excess salt solution prior to putting the nebulizer cup back on the nebulizer.

Further, I recommend removing the nebulizer cup when going in and out of the greenhouse so it doesn't get knocked over and spilled, which could lead to corrosion of the nebulizer.

Cleaning the Nebulizer

After a number of experiments there will be salt buildup and the nebulizer may quickly shut off after being turned on. The manual includes thorough cleaning procedures. Most of the time it is sufficient to run the outside of the cup and the nozzle attachment under the sink.

Running the Experiment

Ventilation and Deposition Trial

  1. Make sure the SPS30 is connected to the computer.
  2. Place an air cleaner device in the center of the chamber, running the power cable under the wall (or under the door if using a small room). Deposition can change drastically based on the shape and materials of the air cleaner device.
  3. Turn on the mixing fan at high speed.
  4. Close the chamber, with the nebulizer poking in as shown in Step 7.
  5. Click 'Start' in ControlCenter to begin data collection.
  6. If pm2.5 is more than 10, run the air cleaning device to drop it under 10.
  7. Turn on the nebulizer
  8. Monitor the mass pm2.5 level in ControlCenter, stop the nebulizer when pm2.5 is greater than or equal to 800. It should rise to > 1000 before stopping.
  9. Allow the pm2.5 level to decay to under 100, then turn on the air cleaner device until pm2.5 is under 10 again.

Get the data file and name it something to do with the device being tested, with 'vd' in the name for ventilation and deposition.

Air Cleaner Trial(s)

  1. It is expected that this immediately follows the VD trial or another air cleaner trial so the mixing fan is still on, nebulizer still has salt solution in it, SPS30 is connected, etc.
  2. Click 'Start' in ControlCenter to begin data collection.
  3. If pm2.5 is more than 10, run the air cleaning device to drop it under 10.
  4. Turn on the nebulizer
  5. Monitor the mass pm2.5 level in ControlCenter, stop the nebulizer when pm2.5 is greater than or equal to 900. It should rise to > 1250 before stopping.
  6. Allow the pm2.5 level to decay to 1250, then turn on the air cleaner device. The analysis interval is [1000, 100], starting at 1250 gives time for the device to power up and get to full speed before the 1000 mark is hit.
  7. Allow the pm2.5 level to decay to under 10, then turn off the air cleaner device.

DO NOT open the chamber during this trial or the ventilation and deposition trial. This may drastically change the result, as it effectively adds a ton of ventilation to the experiment.

To reduce error, run at least three trials. For higher CADR devices (300+ cfm) it is expected that error will be larger in this setup. The error can be reduced by running additional trials.

The ventilation and deposition experiment should definitely be re-run if environmental conditions such as temperature and relative humidity have changed, if the air cleaner device under test is changed, or if anything has moved inside the test chamber. It is good practice to re-run it for each complete set of trials.

Dealing with Air Cleaners that Don't Turn on When Plugged In

If it's a smart device, you may be able to turn it on with an app.

If it's not, try opening unzipping the chamber a small amount, one or two inches, and stick a broomstick in to poke the button you need to poke. A hole this small won't alter ventilation and deposition significantly.

Data Analysis

The supplementary material of the UC Davis paper goes into this, but here is an overview.

Particle decay follows an exponential decay curve. This equation is:

Concentration_t = Concentration_bgd + Concentration_t0 * e^(-ACH * t / 3600)

  Concentration_t = Concentration at time t
  Concentration_bgd = Background particle concentration (we assume this is 0)
  Concentration_t0 = Concentration at the beginning of the decay interval
  ACH = Air changes per hour
  t = time (in seconds)

(divide by 3600 converts from seconds to hours to put ACH in terms of hours)

The data collected allows fitting a curve to find the ACH term. The ACH term can then be used along with the room volume to determine CADR.

CADR = V_r * (ACH_total - ACH_vd) / 60

  CADR = Clean air delivery rate, expressed in cubic feet per minute
  V_r = Volume of room, in cubic feet
  ACH_total = ACH from trial where air cleaner device is on
  ACH_vd = ACH from trial measuring ventilation and deposition

(divide by 60 converts hours from ACH term to minutes for cubic feet per minute)

There's two tasks:

  1. Fit the decay curve for the ventilation and deposition trial to find ACH_vd
  2. Fit the decay curve for an air cleaner trial to find ACH_total

Then we can find CADR of the device. The results of each air cleaner trial are then averaged together, and error is expressed as the standard error of the mean.

Fitting the curve

I fit the curve with the least squares method. This method is more accurate when fitting a line, rather than an exponential curve. So with a bit of math, the exponential decay equation is converted to a linear equation, and that equation is used to do the fitting.

Concentration_t = Concentration_bgd + Concentration_t0 * e^(-ACH * t / 3600)
# Assume Concentration_bgd is zero
Concentration_t = 0 + Concentration_t0 * e^(-ACH * t / 3600)
# Take the natural log of both sides
ln(Concentration_t) = ln(Concentration_t0 * e^(ACH * t / 3600))
ln(Concentration_t) = ln(Concentration_t0) * ACH * t / 3600

So, take the natural log of the pm2.5 values and fit it to the right-hand side of that equation using the least squares method.

A python notebook for performing this analysis on files from Sensirion ControlCenter is provided at






No comments:

Post a Comment