Code Monkey home page Code Monkey logo

cellabox's Introduction

Image of Cellabox

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.

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:

HELP CELLABOX

(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

Climate Module

Indoor Air Quality Module

Outdoor Air Quality Module

Indoor PM2.5 Module

Outdoor PM2.5 Module

  • ID = ???
  • Sensors = ???
  • ??? Module Wiki

List of sensors

The firmware supports different sensors:

How to get started

How to define your own module

  1. Contact Reto Keller about your module [email protected]
  2. Reserve a module ID number with adding your sensor to the list of modules above.
  3. If you are planning to implement a new sensors: add the sensor to the list of sensors.
  4. Add a page with the module description to the Wiki
  5. 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.
  6. Implement your module and sensors on the nRF52840.
  7. Once tested, commit your changes to this repository.

TODO

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.

Bugs

Submit bugs and issues to Github — Issue Tracker.

Tools

  • IDE: Eclipse Mars.2 Release 4.5.2. You can find more details here.
  • ECAD: Use KiCAD to draw schematics and PCB designs.

Questions

Before you start to contribute or if you have questions, send me an email: [email protected].

License

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.

cellabox's People

Contributors

retobkeller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cellabox's Issues

IP address: cannot get IP address

The issue is, that sometimes, the Thread node does not get an IP address..
This seems to be an issue from time to time.

// ---------------------------
// If IPv6 address of the cloud is unspecified try to resolve hostname.
// ---------------------------
if (!thread_coap_utils_peer_addr_is_set())
{
UNUSED_VARIABLE(thread_dns_utils_hostname_resolve(thread_ot_instance_get(), m_cloud_information.p_cloud_hostname, dns_response_handler, NULL));
return;
}

FW resets after some time

There must be a problem with calculation time in the RTC ISR.

  • When CB_RtcInit() is not run at the beginning of the program --> the FW runs flawlessly
  • When CB_RtcInit() is run and RTC ISR is executed void CB_RtcHandlerSensorData(nrf_drv_rtc_int_type_t int_type) then, the FW resets after some time.

It may be possible that the watchdog resets the FW because the FW does not get an IP address?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.