CO2 Soil Respiration Chamber
- 1 Nano's documentation of camara-respiración-suelo
- 2 UROŠ new CO2 soil chambers
- 3 Testing and hacking the SCD 41
- 4 Testing the soil chamber at the beach
- 5 CO2 soil chambers
- 6 Test Measurements @ Yogyakarta / Lifepatch
- 7 Soil Geeking @ Lifepatch with Matt
- 8 Early Experiments
- 9 More about CO2 sensors:
- 10 References
Developed during the RandeLab Soil Retreat as part of the HUMUS.Sapiens research phase and discussed on the forum. Continued during UROS (UROŠ - Ubiquitous Rural Open Science Hardware) in Maribor, 2021.
Nano's documentation of camara-respiración-suelo
Also discussed on the GOSH forum here: https://forum.openhardware.science/c/projects/camara-de-respiracion-de-suelo/56
UROŠ new CO2 soil chambers
Based on FeatherS2 and new SCD41 Sensor sponsored by Sensirio. We'd like to thank here again for the Sensirion eval-kit donated to the UROŠ project and we are looking forward to receive more sensor chips and manufacture our own UROŠ break-out boards, see below.
FeatherS2 version using arduino libraries
See the first test code on github
- ESP-32 FeatherS2 (USB-C & circuitpython native support and many other features)
- Sensirion's SCD41 CO2 sensor
- OLED diyplay, 0.96inch, I2C, Yellow/Blue ,SSD1306
- BMP280 pressure and temperature sensor
- Dallas DS18x20 temperature sensor waterproof probe
- LiPo battery with connector to FeatherS2 board
- (on-board BOOT) 1 small button
- 1 big red button
- ... what else? speaker?
Installing the ESP-32 and firmware
- test your system, blink something. mbe pre-installed bootloader for circuitpython. press boot / rest to go into bootmode and upload from arduino IDE
- the first time, you might have to press "reset" button manually, later it should "Hard resetting via RTS pin..."
- See the code on our new github. Look for the newest file under software/ESP32-S2.
- Making more logos is easy to! check this online converter.
Send and receive data via Serial
The data is sent in the following format:
- Each line is timestamped (in sec, could be also in millis)
- data rate can be modified. At the moment BMP280 is read every 200 millis, SCD41 every 5000 millis, DS18b20 every 30sec
- Maybe some delays here and there. Still needs optimization
- 3 values from SCD41:
- CO2 (ppm)
- Temperature (ºC)
- Humidity (%)
- 3 values from BMB280:
- Pressure (Pa) (could be also sent in hPa?)
- Altitude (calculated in meter above sea level, calibrated with: #define SEA_LEVEL_PRESSURE 1010.0f // sea level pressure 1013.25
- Temperature (ºC)
- 1 value from soil temperature probe (DS18b20)
- ** Temperature (ºC)
TimeSec: 256 CO2: 419 Temp: 31.09 Hum%: 76.58 BMB-Pres: 98763 Alti: 188.50 BMP-Temp: 30.14 SoilTemp: n.c. TimeSec: 256 CO2: 419 Temp: 31.09 Hum%: 76.58 BMB-Pres: 98763 Alti: 188.50 BMP-Temp: 30.14 SoilTemp: n.c. TimeSec: 257 CO2: 419 Temp: 31.09 Hum%: 76.58 BMB-Pres: 98763 Alti: 188.52 BMP-Temp: 30.13 SoilTemp: n.c. TimeSec: 257 CO2: 419 Temp: 31.09 Hum%: 76.58 BMB-Pres: 98763 Alti: 188.52 BMP-Temp: 30.13 SoilTemp: n.c.
You can reveive the data for testing in the Arduino IDE, and it should look as following:
You can also receive the data in a serial plotter, i suggest for example the tauno-serial plotter
The regosh team in Mendoza has been working on a python based serial plotter dedicated to soil respiration measurements. See their gitlab for more details.
Optimizing display and usability
PVC chamber for field-use
Building the chamber
- Standard PVC piping (4 inch / 10 cm diameter)
- Standard PVC covers/lids (4 inch / 10 cm diameter)
- Aviation connectors, 5 pin
- Aviation connectors, 3 pin (for external soil temperatur probe)
- small computer fan, 5-12V (has to run on very low rpm)
Comparing the different Sensors
Circuit Python and FeatherS2
See some first notes and experiments here: https://mega.hackteria.org/index.php/s/AzikGk77wAdPdqg
Mbe add even another VOC sensor?
With all the libraries and examples prepared by sensirion and Adafruit, it was easy to connect it all together using the FeatherS2 and CircuitPython. A first prototype is connected and working.
First measurements look promising, very stable, relatively fast response times. The library is very easy to use, auto-calibration has to be turned off. During the start of the code you can adjust a temperature_offset to calibrate the temp sensor. Additionally you have to adjust the pressure or altitude to where you are doing the measurement, altitude offset (default hardware is 0m). First experiments show that this is pretty crucial, details will have to explored and discussed with the sensirion tech team.
Testing and hacking the SCD 41
Checking the PCB and the footprint to plan our own reflowing of PCB
Opening up the sensor
What is inside? As described on the sensirion product page, the new sensor works on the "photo-accoustic effect". So it's similar, but also a different method, than other NDIR sensors.
It's pretty easy to understand what's under the hood for the SCD41. There is a signal-processor, to read and control the sensor components and communicate to the outside via I2C, there is the "classic" SH40 temperature & humidity sensor, and now... There is an IR emmiter with a dedicted filter on it and a MEMS microphone. Everything is enclosed within a small metal case, with a hole to the outside world and a particle filter stuck onto it.
Photoacoustic effect is the generation of acoustic waves as a result of light absorption in a material. As an example, consider a laser beam that is passed through a gas sample, which is enclosed in a cell of a constant volume. The laser energy absorbed by the sample molecules leads to local heating of the gas, which causes a pressure increase. If the optical excitation of molecules is done periodically, by modulating the laser power or frequency, also the pressure change is periodic. This acoustic wave at the modulation frequency can be detected with a microphone. The microphone signal is directly proportional to the absorbed power, which makes it possible to determine the concentration of absorbing molecules in the sample. Taken from this source on laser spectroscopy
Designing UROŠ - CO2 brkout PCB
PCB (printed circuit board) breakout board for CO2 sensor (SCD41), NEO-pixel (WS2812B) and I2C interface (JST-SH4)
The files "as ordered" are available on github: https://github.com/GenericLab/UROS-CO2_brkout
UROŠ - CO2 brkout PCB reflow soldering
We managed to reflow a first working version of our own PCB!!!
Just un-flowed from the original Sensirion break-out board using our nice little reflow hotplate. Cos we didn't have proper reflow solder paste, we just tinned all the pads with normal solder, and wigged it off to create a very thin flat layer of solder on all the copper for the SCD41 sensor. Then mounted the sensor and back onto the hotplate, using 220 / 250 °C, and after it seemed to have settled down into the molten solder, we took the board off and cooled it down.
Then we soldered the remaining parts, some resistors for pull-up on the I2C channel, LED and a NeoPixel on the backside.
Wiring it up, connecting the I2C connection and the extra wire for the neo-pixel.... It works!!
Minting UROŠ - CO2 brkout as NFT on OpenSea
Go to OpenSea NFT marketplace
Serial Plotter and how to get dedicated soil resp data
Started to use this tool tauno-serial-plotter to plot data and export .png or .csv for further analysis / storage.
Testing the soil chamber at the beach
See all data on dusjagr's public channel: https://thingspeak.com/channels/1718702
CO2 soil chambers
Further developments during dusjagr's residency at Lifepatch June - August 2018
results on our-sci
using this script: https://gitlab.com/our-sci/measurement-scripts/tree/master/mh-z16-randen
PVC pipe Chambers
RandeChamber aka Kilju Chamber
Test Measurements @ Yogyakarta / Lifepatch
Respiration measurement Lifepatch rooftop
1st measurement, late afternoon
2nd measurement, noon
Respiration measurement Lifepatch frontyard
1st measurement around noon
Tibor's rice experiment
CO2 absorbtion with NaOH crystals
Beach Sand | dried and rewetted
Soil Geeking @ Lifepatch with Matt
Great opportunity to do some testing and sharing of protocols with Matthew Daniel from Global Urban Forest. This turned out to be a great little gathering of overlapping networks from GOSH, our-sci, hackteria and the local soil, gardening and permaculture geeks around Lifepatch.
Testing trials in lifepatch garden
Visit to Pak Paning's permaculture farm
Comparing sensors and chambers
Using the Our-Sci Platform
More about CO2 sensors:
New Sensirion SCD 4x Optoaccoustic sensor
See Adafruit libraries and circuitpython examples:
Nondispersive infrared sensor
MH-Z16, available with an I2C board:
New Library!: https://github.com/WifWaf/MH-Z19
This page is about the MH-Z19 CO2 sensor and some experiments done with it:
Using the MH-Z19 CO2 sensor PWM readout, simple arduino code:
More on ABC, Automatic Baseline Correction
Immerhin kann man den Sensor per Hd-Pin (7s gegen GND) auf 400ppm (Außenluft) eichen.
CCS BME combo
This one I ordered 2.... but check I2C adress. and connect "WAK" to GND
- #define CCS811_ADDR 0x5A //Alternate I2C Address
- myBME280.settings.I2CAddress = 0x76;
A low-cost versatile system for continuous real-time respiratory activity measurement as a tool in environmental research