Difference between revisions of "Understanding the SDS011 particle sensor"

From RevSpace
Jump to navigation Jump to search
(Closed Firmware)
(The board)
Line 28: Line 28:
 
This info can then be used to feed a physicist with a theoretical model of potential measurements that can be performed with this setup.
 
This info can then be used to feed a physicist with a theoretical model of potential measurements that can be performed with this setup.
 
=== The board  ===
 
=== The board  ===
The board might be reverse-engineerable.
+
The board might be reverse-engineerable.  
The following actions need to be done  
+
 
 +
To do:  
 
# Determine the GPO and GPI of the STM32 while processing  
 
# Determine the GPO and GPI of the STM32 while processing  
 
# Measure the control circuit of the laser module.  
 
# Measure the control circuit of the laser module.  
# Create a matching circuit, filtering and gain of the instrumentation amplifier analysed.  
+
# Create a matching circuit, filtering and gain of the instrumentation amplifier analysed.
 +
 
 
=== The sensor ===
 
=== The sensor ===
 
The following actions need to be done
 
The following actions need to be done

Revision as of 20:47, 7 March 2020

F031K6, photo Cmpxchg

Particle sensor SDS011, understanding its inner workings

On March 3rd, Cmpxchg and Oberoid placed the infamous SDS011 particle sensor on the dissection table at Revspace. The SDS011 is extensively used for citizen science projects when air quality is in doubt.

Our goal is to create a new algorithm for its micro-controller which can be published in the public domain and is therefore open for the scrutiny of others. This article is a log of our findings while opening up the sensor and also a description of the process of understand the physics behind the functioning of the device.

Operation of the SDS011

In the SDS011 particles are detected by recording the light that is scattered by the dust particle when hit by a laser beam. The scatter patterns are picked up by a photo-diode which signal is amplified and then fed to a micro-controller. The micro-controller interprets the data stream and relates it to known properties of representative dust samples. The algorithm behind the this fitting is unknown.

Closed Firmware

Recently a number of scientific articles appeared that try to assess the validity of the SDS011 sensor. However, little is published about the exact physical inner workings of the device, nor on its pre-programmed firmware. Until now researchers take the functioning of the device as a black box, its firmware is considered corperate property and therefore cannot be tinkered with.

The SDS011 is also the preferred sensor in most citizen science campaigns of governmental initiatives in Germany, The Netherlands and Belgium. For example in the monitoring campaign “de Schone Luchten”, the SDS011 plays a central role in gathering date for the public dialogue about dust exhaust of a local steel mill. Within the scientific community as in the groups of concerning citizens there is a growing concern about the the scientific significance of the data collected by the SDS011.

To estimate the scientific value of the data gathered by the SDS011, we think that it is important that the working of the device should be open to the public. Therefore we decided to open up the apparatus and investigate its inner workings.

The goal of this project is to not to crack the corporate code of the SDS011, but instead to reprogram its micro-controller with a new algorithm that forms the basis for future development of particle sensors in the public domain.

People that are interested in this project can visit the RevSpace Hackerspace, which is accessible every tuesday on the social night.

Reverse engineering

The follow effort needs to be done to get more information about the pcb board and the sensor. This info can then be used to feed a physicist with a theoretical model of potential measurements that can be performed with this setup.

The board

The board might be reverse-engineerable.

To do:

  1. Determine the GPO and GPI of the STM32 while processing
  2. Measure the control circuit of the laser module.
  3. Create a matching circuit, filtering and gain of the instrumentation amplifier analysed.

The sensor

The following actions need to be done

  1. Determine type of the photosensor
  2. Measure size of size of hole before sensor.
  3. Create a layout of the lightbox. Angles of second order reflections drawn.
  4. Measure air speed.
  5. Estimate the focus area of laser beam on the airflow.


1. Software update process

The STM32 32 pin microcontroller seems to been modified with the SWD debug pins cut off. The BootP pin is still accesible. The UART is accessible. Flashing the microcontroller thus has to take place via de UART, or, with effort, by touching up onto the exposed tinned copper metal cutoffs, while avoiding the SMT components. Another option is to buy an off-the shelf STM32 component, put in an 'opensource' bootloader and firmware, cut off the pins to make it fit on the PCB, and use hot-air to put it on/replace it, and work from there.

2. Software control 2.1 Firmware update process via a bootloader and application, over UART 2.2 Application firmware to control laser, blink a led, perform ADC configuration and a short burst of raw measurements, to be output

   over uart

Sources and references

Datasheet smt32f031k6