Way back in March 2012 I backed my first Kickstarter project, the Air Quality Egg from Wicked Device, a project to build a community-led air quality sensing network. It has been a long time coming but despite Royal Mail’s best efforts it has finally arrived.
From the Air Quality Egg website: “A community-led air quality sensing network that gives people a way to participate in the conversation about air quality. The Air Quality Egg is a sensor system designed to allow anyone to collect very high resolution readings of NO2 and CO concentrations outside of their home. These two gases are the most indicative elements related to urban air pollution that are sense-able by inexpensive, DIY sensors.”
The kit comes as two identical looking ‘eggs’, one goes outside and contains the sensors for NO2 (nitrogen dioxide) and CO (carbon monoxide) as well as temperature and humidity, the other is the base station that plugs into your network or router to connect to the internet. The main boards inside both eggs are SMT variations of our old friend the Nanode with the sensor unit also containing a custom designed shield containing the sensors along with sockets that allow additional sensors such as a dust sensor to be added. Once set up the base station relays the data from the various sensors to a customised version of the cosm.com platform at airqualityegg.com
The project came in for some criticism for being late to deliver (not at all unusual on Kickstarter), it was originally estimated for delivery in July 2012 and the kits didn’t actually start shipping until January 2013 and communication along the way wasn’t as good as it could have been, with irregular updates often spread across several sources. It did get a bit better towards the end though and the important thing is that they got there in the end, something that can’t be said of all Kickstarter projects.
So what’s it like?
Both parts of the kit are housed in identical flattened egg shaped cases. The remote egg consists of an SMT Nanode (without the ethernet hardware fitted) with a custom sensor shield containing an ATtiny88 microprocessor, an I2C multiplexer, MAC/EEPROM chip, DHT22 temperature/humidity sensor, an E2V MICS 2710 NO2 sensor and a MICS 5525 CO sensor as well as voltage regulators for the sensors heaters. There are also sockets for up to four more I2C sensors. In the bottom of the egg is a fan to ensure that fresh air is constantly drawn in through the egg to circulate around the sensors. Due to the power usage of the fan and heaters for the CO and NO2 sensors the remote egg is mains powered via a transformer and not battery powered.
The base egg is a fully populated SMT Nanode with a small shield containing an RGB LED and a DC power socket for connection of the mains adapter. There is also space for a push button but this isn’t fitted.
Sadly nobody thought about worldwide power plug standards so all the Kickstarter units were supplied with mains adapters that have US style 2 pin plugs. Even if providing UK and other European plugs wasn’t an option it would have made more sense to have discounted the price slightly and shipped them without the adapters and we could source our own locally, it would have reduced the shipping and customs charges a little too. Fortunately I managed to find one US-UK adapter in a drawer for one of them and I replaced the other with a UK adapter I had going spare.
While the egg shape does seem to make some sense for the sensor unit, the way the two halves fit together does give me some concerns about how it will stand up to the wonderful British weather so I’ve put some insulation tape round the join just to add a little bit more protection and made sure it is as well sheltered as I can, only time will tell how well it fares. The egg shape isn’t as suited for the base station in my mind, it makes it larger than it needs to be and can make it awkward to find a space for but I understand the economical benefits to using identical cases for both units and this is a small complaint. It does look quite nice when it lights up too.
The electronics all seems well designed and well made and the egg hardware and firmware is Open Source with schematics and board designs available on Solderpad and the Arduino based firmware available on GitHub.
Setting the egg up should be pretty seamless unless like me you have one of the earlier ones with a bug in the automatic Cosm provisioning (caused by a change at Cosm) but there is an update to fix that here. There has also been a bug fix this week for high readings being reported by the sensor egg so it would make sense to update both the base and sensor eggs before starting.
Once armed with your updated eggs you need to go to the Air Quality Egg website and enter the MAC address of your base egg (on a sticker on the inside lid of the box) as well as a location and a name and optional description and elevation.
When the base egg is first plugged into a network it will get an IP address via DHCP and attempt to connect to Cosm to register itself and obtain a feed number. The base egg also broadcasts its unique MAC address for 30 seconds when it is first turned on and waits for a reply from the remote sensor egg, once this has been received the two are paired together. The RGB LED in the base egg will light the egg up to indicate what is happening, there is a diagram here showing how that works.
That’s it, you should now see data start to appear at your feed on airqualityegg.com (Here is mine) although it will take a little while for the CO and NO2 sensors to warm up and start returning sensible data.
The airqualityegg.com website is still pretty rudimentary at the moment, all you can do is see the current reading from the eggs and it is missing some obvious things like units for the measurements (NO2 and CO are measured in Parts Per Billion (PPB), temperature in °C and humidity in %) but hopefully it will improve with time. You can also view graphs of the data over time on Cosm.com (here’s my Cosm feed) and I know I’m not the only one also thinking of ways to feed the data into other things like emoncms, this could be done by pulling the JSON or XML feeds from Cosm, modifying the egg base firmware to send to emoncms as well as Cosm or perhaps receiving the sensor eggs transmissions on my existing gateway.
Update – after a quick hack involving scraping the AirQualityEgg.com website and cron I now have the AQE data coming in to emoncms, much better as it integrates nicely with my other stuff and has better visualisations. It’s not a very elegant solution but it will do for now.
Update 2 – I’ve now updated the script to import the Air Quality Egg data into emoncms to use the Cosm API instead of scraping the AirQualityEgg.com site which is less likely to be broken by external changes.
One thing to be aware of is that the CO and NO2 sensors are uncalibrated, the firmware does support calibration but it just isn’t practical at this price point for every individual sensor to be calibrated in a lab when building the kits. Out of the box the calibration value is set to a value in the middle of the datasheet range which should be good enough to determine if the air quality in a location is good/ok/bad and how it changes over time and there are people trying to work out a method of DIY calibration or ways to use data processing techniques like mean-variance and blind calibration to improve accuracy.
As well as the PPB values the eggs are also sending the raw resistance data from the sensors to Cosm so it is possible that could be used to correct the data once something is figured out but at the moment the priority is on deploying the network of sensors with more processing to interpret the data to come in the future.
The more eggs are out there the more useful the data will be, you can buy the Air Quality Egg from Wicked Device in the US for $185 (or just the sensor shield on its own for $95) or from OpenEnergyMonitor in the UK at £125