A comparative test of two particle sensors


Just a few days go another PM2.5 and PM10 particle sensor has landed on my desk. This time is an SDS011, a sensor manufactured by Nova Fitness, a spin-off from the University of Jinan (in Shandong). It’s quite a popular sensor, being used in many citizen science projects, of which I mention the global air quality map maintained by luftdaten.info.

I bought it with the intent to use it to make a luftdaten.info monitoring station (and blog about it, of course). But first I will play with it for a few days, to see what it can do.

SDS011 particle sensor

SDS011 particle sensor


And of course, as I already have an HPMA115S0 sensor from Honeywell, it makes sense to put the two sensors together and compare their performance.

As a quick comparison between the two sensors we find a lot of things in common:

  • both sensors use Laser-based light scattering particle sensing
  • both sensors measure PM2.5 and PM10
  • both sensors have a range of 0 μg/m3 to 1,000 μg/m3
  • both sensors use serial communication to send particle data
  • both sensors require 5V power
  • the current draw is 100mA for SDS011 and 80mA for HPMA115S0
  • both sensors use 3.3V logic levels

There are also some differences:

  • each sensor comes with its communication protocol over UART
  • SDS011 has a relative error of 10%
  • HPMA115S0 has an accuracy of ±15%
  • SDS011 returns dust data with two decimals
  • HPMA115S0 returns data as an integer, with no decimals
  • SDS011 sends dust data every second
  • HPMA115S0 can perform measurements on demand
  • Average live of SDS011 is 8000 hours in continuous mode
  • HPMA115S0 will last for 20,000 hr (continuous mode)
  • SDS011 has a hose connector for the air intake

Using the sensors with Arduino boards

To make a comparison of the two sensors I will connect both sensors to an Arduino Due board, and I will log the dust data on SD card.

The board of my choice is a Flip & Click from MikroElektronika, which I variant of an Arduino Due, plus four mikroBUS sockets. The reason for choosing the Arduino Due platform are:

  • the board provides 5V power and has native 3.3V logic levels
  • I already have a microSD click board in my inventory
  • for the HPMA115S0 I have an adapter made from a PROTO click, which I have used in my first HPMA115S0 project.

Of course, one can use an Arduino Due, a breadboard and a generic SD card adapter with the same results. Just respect the wiring in my project, as follows:

  • SDS011 uses Serial1
  • HPMA115S0 uses Serial2
  • The CS line for the SD card is digital pin 52
  • The project used one diagnostics LED connected to digital pin 40. You can skip it if you wish.

As for the software, I used the following libraries:

  • https://github.com/sensebox/SDS011-select-serial
  • https://github.com/Electronza/HPMA115S0

The library for SDS011 appears as being incompatible with the Arduino Due. Trust me; it works fine for this blog post.

For the HPMA11sS0 I used my own library, described here.

1 2


    • Teodor Costachioiu
      Teodor Costachioiu on


      I’ve been very busy and I didn’t have the time to finish the analysis. I’ll try to do it the next week.

Leave A Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.