Cellabox is an Open Source Air Quality Project. According to the WHO, air pollution from both outdoor and indoor sources represents the single largest environmental risk to health globally. Help to solve the air quality problem and join Cellabox! Better Air Quality Through Better Data.
This repository contains firmware (C code) for nRF52840 with a Thread network implementation (OpenThread) and a connection to the cloud platform of thethings.iO.
- Nordic nRF52840
- OpenThread network
- Drivers for sensors from Sensirion, SPEC Sensors and ST Microelectronics
- Cloud connection with CoAP to thethings.iO
We don't have any sponsors or supporters. We very much appreciate if you were able to use some of our code and want to say thank you:
(c) 2017-2018 Cellabox, all rights reserved.
Cellabox FW concept
IMPORTANT: there is only one single FW build for all modules (the so called Cellaboxes). The FW initializes itself depending on the module identity (ID = [0...63]. Which IO pins are used for the module ID? - here is the pinout.
List of sensor modules
- ID = 0
- Temperature and humidity
- Climate Module Wiki
Indoor Air Quality Module
- ID = 1
- VOC, T&H, pressure
- Indoor Air Quality Module Wiki
Outdoor Air Quality Module
- ID = 2
- O3, NO2, SO2, CO, T&H, pressure
- Outdoor Air Quality Module Wiki
Indoor PM2.5 Module
- ID = 3
- PM2.5/PM10, VOC, eCO2, T&H, pressure
- Indoor PM2.5 Module Wiki
Outdoor PM2.5 Module
- ID = 4
- PM2.5/PM10, T&H, pressure
- Outdoor PM2.5 Module Wiki
- ID = ???
- Sensors = ???
- ??? Module Wiki
List of sensors
The firmware supports different sensors:
- Temperature and humidity (T&H) = Sensirion SHTC1 (1.8V)
- Temperature and humidity (T&H) = Sensirion SHT30 (2.7V)
- Barometric pressure = ST LPS22HB
- Volatile Organic Compounds (VOC) = Sensirion SGPC3
- Volatile Organic Compounds (VOC), equivalent CO2 (eCO2) = Sensirion SGP30
- Ozone (O3) = SPEC Sensors 110-401 + TI LMP91000
- Nitrogen dioxide (NO2) = SPEC Sensors 110-501 + TI LMP91000
- Sulfur dioxide (SO2) = SPEC Sensors 110-601 + TI LMP91000
- Carbon monoxide (CO) = SPEC Sensors 110-102 + TI LMP91000
- Particulate matters PM2.5/PM10 = Honeywell HPMA115S0-XXX (5V)
How to get started
- Install Eclipse for nRF52840:
- Setup Eclipse for Cellabox: Eclipse_Mars_HowToSetup_2017.pdf
- Order development kit: Preview Development Kit nRF52840
- Order sensors: order the sensors you need for the module(s).
- Wire your module: see our schematics here.
- (Optional) Define your own module: here.
How to define your own module
- Contact Reto Keller about your module email@example.com
- Reserve a module ID number with adding your sensor to the list of modules above.
- If you are planning to implement a new sensors: add the sensor to the list of sensors.
- Add a page with the module description to the Wiki
- Add a folder with your schematic like this: cellabox/hw/kicad/id=?_sensor-name/. Draw your schematic with the free and open source ECAD KiCAD.
- Implement your module and sensors on the nRF52840.
- Once tested, commit your changes to this repository.
Track TODOs and tasks on Github — Cellabox Project.
If you hard code something or you have to continue there later — write TODO in the comment and start a task in the Cellabox Project. Also start a Cellabox Project task to describe future features of your module or the FW in general.
Submit bugs and issues to Github — Issue Tracker.
- IDE: Eclipse Mars.2 Release 4.5.2. You can find more details here.
- ECAD: Use KiCAD to draw schematics and PCB designs.
Before you start to contribute or if you have questions, send me an email: firstname.lastname@example.org.
Cellabox is released under the [BSD 3-Clause license]. See the
LICENSE file for more information.
Please use and reference to Cellabox in case you use this software or part(s) of it.