After reviewing AirGradient Pro Kit, I was contacted by AirGradient, and they offered me two Open Air units for review. I was planning to buy and review an Open Air unit anyway, so I don’t think it biased my review, but I think it should be noted nevertheless.
Indoor Air is a Priority
People spend most of their time indoors, and exposure time matters, which means that your bedroom is a perfect place to start your air quality improvement journey. I placed my first AirGradient Pro unit in my bedroom, and it helped me identify the following issues:
- CO2 concentration often reached 2,300 ppm by the early morning, which is considered unhealthy. Let me cite Canadian regulations as an example:
The recommended long-term exposure limit for CO2 is 1,000 ppm (based on a 24-hour average). The guidelines are based on effects observed in epidemiological studies in schools or offices and controlled exposure studies.
- PM 2.5 often exceeds 5 μg/m3, which is a WHO safe air threshold. Those spikes often coincide with ventilation, which hints that the outdoor air isn’t always as clean as I thought.
The data obtained for cause-specific mortality also support a long-term PM 2.5 AQG (Air Quality Guidelines) level of no more than 5 μg/m3.
How to Reduce CO2
There are a few things which increase indoor CO2 concentration:
- Human and animal breathing
- Gas-powered kitchen appliances
- Gas-powered heating
I don’t have any gas appliances in my house, but my bedroom needs to accommodate two persons and a single dog every night. Sleeping alone would certainly help, but it would be nice to find more realistic and universal solution. That solution is ventilation.
Before the Industrial Revolution, the outdoor air contained about 280 ppm of carbon dioxide. Our material well-being has reached unbelievable heights since then, but most of those improvements are based on cheap energy extraction, which happens to produce a lot of carbon dioxide. As a result, the current atmospheric CO2 level is already approaching 420 ppm.
The good news is, 420 ppm is still safe for breathing, so you can simply let some outdoor air in if you want to reduce your indoor CO2 concentration. Targeting 420 ppm is rarely a good idea, since ventilation involves heat transfer, which adds more work for your AC or a heating system. I’d say anything below 750-1,000 ppm is probably fine.
How to Reduce PM 2.5
As far as I understand, high PM 2.5 concentration is much more dangerous than high CO2 level, so I would probably choose being exposed to 2,000 ppm of CO2 over 50 ug/m3 of PM 2.5. Unfortunately, Thais often burn their garbage on the spot instead of utilizing it properly, and I’m not really in a position to change this culture. I often smell burning plastics and other nasty stuff when I’m walking my dog or tending my garden. Obviously, I don’t want to let any air into my house during those periods. This air is toxic, and it smells bad, too.
Given the facts above, it’s pretty clear that ventilation is necessary, but you should only ventilate your house when the outdoor air is safe and clean. I guess it’s OK to let some slightly dirty air in, if you don’t have a choice and if you have an air filter, but filters aren’t cheap, and they can’t fully eradicate bad odors. The best filters are also pretty noisy, since pushing the air through a good filter is hard, so it’s better to avoid this step or at least to minimize the working time of your air treatment system.
Outdoor Air Monitoring
As we figured out earlier, ventilation can only improve your indoor air quality if the outdoor air is actually cleaner, but how do you know if it’s safe to ventilate? That’s the main issue I’m trying to solve and getting an outdoor air monitor seems like a good solution. CO2 and PM 2.5 aren’t the only things I’m interested in, I’d like to keep track of as much other metrics as possible. I’m using self-hosted Home Assistant as a backend, and it makes it easy to keep and review all the historical data.
AirGradient Open Air
As I mentioned earlier, I’ve got two units, one of them being pre-assembled and another one is more of a DIY type. The DIY kit doesn’t require any soldering, which is good, since I don’t really know how to solder. Buying a Pinecil is on my TODO list, but I’m not sure when I’ll have time to pick up this valuable skill.
The box itself is unremarkable, it contains the picture of a product, a brief summary of company’s goals and priorities and some contact details which can come handy if you need any assistance of if you have questions about the product.
For a pre-assembled version, the box itself only contains an Open Air unit and a 4 meter-long USB cable:
DIY vs Pre-Assembled
The DIY kit looks almost identical to a pre-assembled unit, and it’s made from the same components. I’m pretty sure that Plantower has a sensible QA process, and it’s extremely unlikely to get a sensor which does not work at all, but AirGradient also has their own air chamber which they’re using to test the pre-assembled units, just to add an extra level of confidence.
Here are the main distinctive features of the pre-assembled model:
- Every pre-assembled uint is tested by AirGradient, and you can always fetch your test report from your AirGradient dashboard.
- There is a 1-year warranty period.
- The serial number is etched on the back side of the case, which makes it slightly more convenient to perform an initial setup.
By the way, here is a test report which I got for my pre-assembled model:
I contacted AirGradient for more details, and they claimed that about 3% of Plantower sensors fail their tests, but it’s only because those tests require 5 μg/m3 precision while the manufacturer only promises 10 μg/m3 precision. It looks like Plantower is very conservative in their claims regarding their sensor accuracy and most of their sensors are much more precise than stated in the specs.
Assembling the DIY Model
There are a few misc tools to connect all the pieces together:
The heart of this device is two identical Plantower sensors:
It’s pretty easy to connect those sensors to the main board:
The case consists of two parts, and they fit together nicely:
Assembling AirGradient Open Air is pretty easy, but you need to be careful when connecting the sensor wires, because they are quite thin, and it’s easy to damage them by applying more pressure that they can handle. I tried not to touch them and press on the plastic area around them in order to connect those wire plugs to their corresponding sockets.
Mounting is the most complicated part of AirGradient Open Air setup, and there are two recommended methods:
- Mounting on a pole
- Mounting on a wall
I guess there aren’t many people who have a spare pole which also happens to be equipped with a power socket, so wall mount seems to be the only way for most of us. Basically, you need to find a place nearby an external power socket, and you might want to aim high, since hanging your sensors too close to the ground can expose them to the amounts of dust which are only present on the ground level, and it might not represent the air you inhale or feed to your ventilation system.
Air quality can depend on the height at which you sample your outdoor air, and I think this problem can be approached from two angles:
- Put your sensors where your nose is, just to be certain that the data best represents what you actually inhale. I can’t back this claim with any science, but is seems like the safe bet.
- If you have an automatic ventilation system, it might make sense to hang your sensors somewhere close to your inlet vent holes, just to make sure that the readings will represent the air which goes into your home.
I have a drill, but I only used it once, when I needed to hang a mailbox. I have a cheap wired model and almost no experience, so drilling two holes 3.5 meters high wasn’t exactly an easy job for me. To complicate matters, I knew that there is a hidden powerline going through the same spot, and I certainly didn’t want to damage it.
I choose a 10 cm padding from the roof and the wall on the right. I was pretty anxious about the powerline, so I turned off the corresponding switches and checked the wires with a non-invasive voltage detector. Also, I paused the drilling process a few times just to make sure there is no plastic fragments in the holes or among the dust. Needless to say, you should also make sure that the ladder is stable, and you should wear some protective equipment such as a dust mask and a pair of glasses.
I settled on this point because I have an outdoor power socket nearby, but I surely don’t like the aesthetics of an exposed USB cable and I will probably drill the roof and hide the cable there. The other option was to install it in a front yard, but there is a risk that a proximity to my car and the road can cause short term spikes which aren’t really actionable and I don’t see any good reasons to track them.
Setting up AirGradient products can be a bit tricky, here is a high level overview:
- You need to prepare your smartphone and make sure that your router is prepared to handle 2.4 GHz connections. Most routers default to 5 GHz because it’s much faster, but that extra speed comes at a cost of slightly reduced range and stability. I believe that’s the reason why most smart home devices prefer 2.4 GHz, but cost and availability might also be a factor there. Most Espressif microcontrollers aren’t 5 GHz capable, although there are a few new models which support both 2.4 GHz and 5 GHz frequencies.
- After powering on your device, you’ll have 90 seconds to find and join its Wi-Fi network. After joining that network, you’ll be redirected to a device Wi-Fi setup page, where you should type your 2.4 GHz home Wi-Fi network name and password. After that, your new AirGradient device will be able to connect to a cloud dashboard (which is completely optional but more on that later).
- AirGradient Open Air doesn’t have a display, so it’s not usable without a cloud dashboard or some other backend. You can use your own backend to store the sensor readings, but the easiest way to get started is to create an AirGradient cloud account and to add your device to the web dashboard. You’ll need to type your device serial number, which is etched on the back side of the unit.
AirGradient hardware and software are fully open source and there is no vendor lock-in. The device is based on ESP32-C3-MINI-1, which can be fully reprogrammed with Arduino or ESP Home. You can also just use GCC to build a binary and flash it with the open source esptool.
What Does Open Source Mean, Exactly?
When it comes to air quality sensors, AirGradient is the only open source software and hardware company I’m aware of, but I noticed that many people don’t really understand what it means in an IoT context.
Smart home appliances are actually pretty complex, and they have many components sourced from different vendors. When an IoT company calls its software open source, they usually mean the code they upload to the microcontroller. There are many microcontroller subsystems and external parts which may run their own software and that software is unlikely to be open source.
In case of AirGradient, their firmware is available on GitHub, and it contains pretty much everything which they instruct their hardware to do. It doesn’t cover a Wi-Fi stack or a USB stack, for example, because it’s done by the microcontroller vendor (Espressif) and there is no way to see how it works, as far as I’m aware. I think Espressif has an open source SDK, and its Arduino core is open source, too, but there are always some lower-level subsystems which tend to be run by unverifiable code blobs.
Same goes to many external modules, such as Plantower PMS5003T, which is used in Open Air products. Those sensor modules have their own firmware, and it can be very hard to figure out that it actually does. For instance, you can’t really assume how a light scatter measurement becomes a μg/m3 value which goes to the microcontroller. Some modules may hold a bunch of historical measurements and only report the average values. Fully open source software is currently a pipe dream, but not adding any more closed code on top of that mess is a good start.
Open source hardware is also a tricky term. The hardware is not really open source all the way down to the atomic level, because it’s impossible to find fully transparent components with every physical piece being documented and shared with the public. Open source hardware just means that the way those components are wired is well known and easily reproducible. If you’re a software engineer like me, your can imagine it as a dependency graph, where some of your libs may depend on other lower-level libs, which themselves depend on some weird pre-compiled blobs, but everything seems to work as promised so no one takes an issue with that.
Does it mean that open source is just a deceptive marketing trick? No, and there are two main reasons:
- Open source firmware makes it easier to debug your devices or point them to your own server, breaking the vendor lock. It also guarantees that AirGradient is not spying on you.
- Open source hardware design makes it easier to replicate the device and that’s the only protection you have from being ripped off in case the company decides to raise their prices to an unreasonable level. The ease of replication is the best guarantee of sensible pricing.
- Open source hardware tends to be easier to repair.
- It’s usually much easier to modify and extend open source hardware. Coupled with open source and equally modifiable firmware, it gives you the ultimate flexibility and a sense of being in control of your stuff.
Another important thing which must be noted is licensing. It’s not impossible to reverse engineer many closed IoT devices, but it’s still a waste of your time, and the manufacturers can always sue you if you try to copy their products. Open source licences tend to be very liberal about what you can do with the source code and hardware schematics alike.
Obviously, this device is as accurate as its sensors, and the only sensors on board are two identical Plantower PMS5003T.
Particle Maximum Consistency Error (PM2.5 standard data):
Which raises two questions:
- Is it true?
- If it’s true, is it good enough?
The first question can be answered by looking for tests and tear-downs online, here is a few interesting links:
- Nature: Long-term field comparison of multiple low-cost particulate matter sensors in an outdoor urban environment
- Review, Teardown: Plantower PMS5003 Laser Particulate Monitor Sensor
- The Plantower PMS5003 and PMS7003 Air Quality Sensor experiment
In short, it seems like Plantower, as well as many other low cost PM 2.5 sensors, is pretty accurate. Although low cost sensors might disagree within a single digit range, but they can quickly capture any spikes in PM concentration, so there is no lag, and you can act on that data right away.
In my view, the stated accuracy is good enough, but you should understand that the manufacturer is basically saying that the sensor can report somewhat healthy 5 µg/m3 even if the real PM concentration is pretty unhealthy (up to 15 µg/m3). That’s an extreme example, but it’s the worst case you should know about. Personally, it’s not a big deal for me, because I’m interested in detecting much more dangerous PM concentrations (20-50 µg/m3 and more), and this sensor can do that if a fast and reliable fashion.
I also asked AirGradient if they have any data on the accuracy of the components used in Open Air production, and they told me that they run a global co-location test with the aim of completely understanding the performance of Open Air units. They maintain a list of their current research partners, and this list includes many of the world’s top educational institutions.
The case is really nice, and I like it very much. Everything fits well, and the plastic is nice and smooth. This kind of plastic is UV resistant, so it shouldn’t get brittle and change it’s color from white to yellow in a few months.
You can also 3D print your own case if your damage the original one or if you just don’t like it for whatever reason. Unfortunately, I don’t have a 3D printer, so I can’t really experiment with my own enclosure designs. A friend of mine got a $500 3D printer, and I’m impressed with what it’s capable of, so maybe I’ll try it too.
Open Air board is a radical departure from a design approach used in an indoor Pro model. The Pro model basically has two boards, and only one of them is made by AirGradient:
This board looks much more polished, but SMT-mounted components also have some downsides, such as reduced modularity. I really like the fact that I can take off that D1 mini and use is as a general purpose dev board in any other project. I also have many spare D1 mini boards, so I can easily replace the board if it fails.
Although Open Air boards are less common, they are available in the AirGradient online shop, and they can also be used as general purpose dev boards. I guess I’m okay with that, since AirGradient boards are open source, easy to use and affordable. In fact, they offer slightly better initial setup experience for Arduino users, because they work out of the box, unlike some common dev boards such as C3 mini, which requires some weird button press combos and re-powering the board after the first reflash.
The only thing I miss is board auto-detection when working with Arduino. Unfortunately, it’s a hardware issue, since Arduino board detection is based on USB vendor ID (VID) and USB product ID (PID) combination, which aren’t always re-programmable.
Here is a part of
You can check this Espressif repo to figure out what those numbers mean. In short,
0x303a is USB vendor ID which belongs to Espressif, and
0x1001 is a default value which C3 controllers are unable to change. As a result, AirGradient board won’t be recognized by Arduino and there is no way to recognize it automatically, which means that you need to select the board manually before flashing new firmware. This issue affects all C3 boards and there is nothing special about AirGradient Open Air board, but I hope Espressif or any other manufacturer will make their future chips more flexible in that regard.
AirGradient Open Air has two identical Plantower sensors. It can also work with a single sensor, but having two sensors allows the firmware to average out the readings, which is supposed to reduce volatility. It also allows the firmware to perform some sanity checks since those sensors are supposed to produce similar readings. If there is a significant disagreement, it’s a clear indication of a hardware failure.
Components: External Hardware Watchdog
The inclusion of Texas Instruments TPL5010 is probably the most mysterious part of Open Air board. I don’t know much about that chip, but it looks like an external timer which is used to improve power efficiency. Most IoT devices don’t really need to be awake all the time, so they can power off and let the external timer wake them up when necessary. Many microcontrollers can disable most of their subsystems when being asked nicely, so you can avoid using a separate timer chip, but external timers aren’t that uncommon.
The website doesn’t say much about the purpose of that timer:
We integrated an external hardware watchdog chip that automatically reboots the unit in case something goes wrong and thus the monitor can achieve high uptimes.
So I decided to ask AirGradient and here is the reply I got:
It could be that voltage fluctuations crash the MCU or potentially memory leaks etc. Basically, on each successful data transmission to the server the watchdog is reset. If for whatever reason the transmission is not happening, the device will reboot. Before we used it we had sometimes monitors getting stuck after a few weeks and needed a reboot. The watchdog basically led to monitors running for years without any intervention needed.
It looks like this chip is solving a real problem, but it has nothing to do with power efficiency. Outdoor units can be mounted in pretty inconvenient places, so minimizing any manual interventions seems like a good priority.
Notes on Power Management
AirGradient Open Air requires a power socket, which is a serious pain point, and it begs the following questions:
- Would it be better to power it from batteries, like a TV remote?
- Can’t it be equipped with a solar panel and a rechargeable battery?
Some devices, such as TV remotes, are supposed to be powered by a couple of AA or AAA batteries, which are usually non-rechargeable, and they can last for a few years. Those devices spend most of their time sleeping, so their power draw is extremely low. Rechargeable batteries may sound like a good idea, but they have a natural rate or discharge of about 10% a month, which would limit the device lifetime from a single charge. AirGradient Open Air is not a low power device as it draws hundreds of mA during transmissions, so it won’t even last a month when powered by batteries.
More power-hungry devices such as smartphones or power tools are expected to drain their batteries many times a year, which makes it impractical to use non-rechargeable batteries. When you expect your battery to drain in a few hours of days, you’ll probably won’t even notice that it loses a tenth of its charge a month.
I think it’s possible to reduce the power draw of AirGradient Open Air, but it would still require a pretty massive rechargeable battery. Solar panel output depends on environmental factors and there is too much uncertainty in using them as the only power source. Needless to say that both of those components add to costs and complexity, so I’m not convinced that it would be a good idea to make a “wireless” version.
There is also some evidence that Plantower sensors work best when they’re powered on all the time, so it would be risky to use any aggressive optimizations without some serious testing.
AirGradient Open Air is the only open source air quality sensor I’m aware of, so there is nothing to compare it to. Although the mounting is a bit tricky, the device itself is accurate and very affordable.
Open Air is aggressively optimized for reliability and as little maintenance as possible, which are sensible priorities. It’s clear that the company learned a lot since the release of the indoor model, and it shows. The design and quality of the case are really impressive, and I like the fact that they’re sharing their experience and findings with the public via their corporate blog. I was always interested in how you can get from an idea to a mass-produced product, and I’ve learned a ton from AirGradient website and a community forum.
- Open source
- Cloud is optional, so there is no lock-in
- Can be easily integrated with Home Assistant, which plays well with Espressif hardware
- Extremely resilient
- High quality case made from 2.5 mm ASA plastic
- Great support and community
- Mounting is hard
- The repo is a bit messy
- There no mobile app which would make onboarding and device management easier for non-technical users
- While the device itself has a USB type C port, the other side of the included cable has an old style type A plug. There are plenty of wall adapters with type C ports and I think that type A shouldn’t be used in any new devices.