Back to

Additional sensors?

Is it possible to purchase Citizen Science Station sensors to augment the capabilities of my Citizen Science Kit? I’ve seen how to purchase CSK units through Seeed (though those are out of stock), but I haven’t been able to find info about CSS purchasing.

Yes, it is possible to extend the basic Smart Citizen kit by adding sensors. But how?

The first thing you will need is a knowledge of electronics and the second thing is a capacity to code using C++ language. The first to physically connect the 3rd party sensor, and the second to add or modify program code within the firmware to read the sensor and add it to the data stream sent to the central data collection server. Thirdly you may need to consider how your new sensor will be physically mounted adjacent to your SmartCitizen kit. Perhaps you will need to design a new enclosure or modify sn existing design. So, 3D modelling and printing expertise may come in handy for that and you will need access to a printer.

And the FABLAB Barcelona team may need to assist you to get the additional sensor recognized and allow results to be displayed.

So, 3 major elements.
(1) connection: the smart citizen Data board exposes a connection called “AUX” which is a Grove connector with two data pins and two dc supply pins that can manifest as either I2C, serial comms, ADC depending on settings you make in firmware. By default it’s I2C, which assumes your sensor is “smart” enough to be polled on the Aux line. You will need to determine it’s 7 bit address in the I2C address range. You will also need to pay attention to the value of pullup resistor on the two I2C wires. It should ideally be about 10 k ohms or higher to match with the SC Data board.

The smart citizen data board supplies 3.3 volts dc on the Aux grove connector. It has limited current draw capacity. So your sensor specifications need to be compatible and hav Ed low power requirements.

(2) firmware. Examine the firmware library found on Github. You will find it’s set up to be coded using platformio in the language of C++ and an object oriented coding style. You will need to analyze the existing code to get the hang of how it’s put together. I can tip that’s it’s a hub and spoke layout.
First determine if perhaps your new sensor is already handled in the existing code. It’s a possibility because many have been here before you and due to the Smart Citizen station a wide range of additional sensors are already handled. Look in “auxBoard.cpp” and also look at “sensors.h”.
If your sensor is not already in the list of supported sensors then it’s time to contact @oscgonfer and negotiate to see if FablabsBCN can support adding your new one. They have things to do on the host end if they agree. you can get it working but might not be able to publish the data.

I hope this information has given you a leg up to understand how you might go about the process to add a new or different sensor to your smart citizen kit.

Just bear in mind that the whole SmartCitizen deal is all about you devising your own solution to handling system design and building of small (and large) IoT devices.
So do not expect that the FablabsBCN team can help you out with every little problem you might encounter. You got to do most of the thinking that’s required. They have their day jobs to do. You do need to be self reliant in this space. That said, they might be able to help out on occasion.


Hi @funkydung ,

Thanks for writing!

So, responding to the original question:

Is it possible to purchase Citizen Science Station sensors to augment the capabilities of my Citizen Science Kit?

Yes, there are plenty of supported sensors. They are all listed here: Supported sensors - Smart Citizen Docs
The ones listed there are off-the-shelf sensors, and should be detected by the SCK directly. You can purchase them in distributors (, are big ones - or other local shops depending on where you are)

I’ve seen how to purchase CSK units through Seeed (though those are out of stock),

Yes, and we currently only have stock through Fab Lab Barcelona sales channel.

but I haven’t been able to find info about CSS purchasing.

If you are interested, drop an email at and we can discuss.

However, you should think that the sales we offer from the lab are “off-the-shelf”, which means, (1) they come fully finalised and integrated (we do not offer ad-hoc developments unless there is a big project behind, for obvious reasons), (2) they are probably not the way we envisioned the hardware to be used (more as a kit, not as a final unit), and (3) probably you will miss all the fun and joy that comes when you succeed at assembling some sensors on your kit, or even printing your own enclosure!

Ideally, the hardware should be expanded with sensors and other things (like enclosures, GPS or power, even solar!) We try to provide as much documentation as we can for this, and all the development we do for projects is open, so that anyone can use it. Also, we try to compile all the projects the community makes so that we can share the results.

To summarise, there are three options:

  1. Working with off-the-shelf supported sensors from the list (easy, cheap)
  2. Buy finalised units from us (depends on what you want to focus on (easy, more expensive)
  3. Work on the integration of some external sensors. For this, @bryn.parrott comment applies fully

Hope this helps! Let us know your thoughts!

Thank you for the thorough reply. That’s definitely beyond what I have the time and skills for, but perhaps some day that won’t be the case. In the meantime, I’m not so much interested in adding miscellaneous third party sensors as I am in possibly turning a Kit into a Station, using the same sensors the design team used.

The off-the-shelf sensors that are already supported sound like the way to go. :slight_smile: Unfortunately, I now find myself troubleshooting my unit, because it keeps losing WiFi connectivity. If I unplug it and disconnect the battery, I can get it to connect and upload for a little while, but it’s just a matter of hours or minutes until it goes offline again. :frowning:

Hi @funkydung,

Can you put here your device url and, if you are familiar with the shell, can you put here the version?
Maybe a simple firmware update helps.