Implementation of new Sensirion SEN-5X sensors

We made a firmware with SEN5X and we are testing 10 sensors, some emulate SPS30 and SHT3X
You can download the bin files on the /bin directory and flash the sensor with FalshESP8266.exe

1 Like

I will give it a try! I already had a look at your project. Interesting…
I live very close to Schiphol (and the A9 highway.) I can even smell the jet fuel occasionally. There are only a very few stations in my area, so time to pay attention to pollution through a citizen project. (Although ‘fijnstof’ is not the biggest risk in my area…)

It works… (just a temp indoor setup to test the electronics / SW)
Thanks Fred (and the community of course ) !!!

Interesting to see the differences between the SDS011 and the SENS-55…

1 Like

Hi fredvduin,
sadly the FlashESP8266.exe from your Github does not work. Using Win11 23H2

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.ComponentModel.Win32Exception (0x80004005): Das System kann die angegebene Datei nicht finden
   bei System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   bei System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   bei FlashESP8266.Form1.bttn_flash_Click(Object sender, EventArgs e)
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9232.0 built by: NET481REL1LAST_C.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll.
----------------------------------------
FlashESP8266
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/andre/Downloads/Neuer%20Ordner/FlashESP8266.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9181.0 built by: NET481REL1LAST_C.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9236.0 built by: NET481REL1LAST_B.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9032.0 built by: NET481REL1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9032.0 built by: NET481REL1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9236.0 built by: NET481REL1LAST_B.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9032.0 built by: NET481REL1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9032.0 built by: NET481REL1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.8.9032.0 built by: NET481REL1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

you need file esptool.exe


FlashESP8266.exe need this file

1 Like

Thanks, that worked :slight_smile:

I will use your firmware for SEN55 too, since I have an urgent VOC monitoring problem in Zoutleeuw/Belgium, & I was expecting to have the latest release supporting the SEN55 by now, but clearly something intervened…
Thank you!
Can you supply me with one of your API # in test, I’m developing a display for sensor.community, and need to have an example of the JSON messages with SEN55 data, for testing, while I don’t have a meter with SEN55 myself now.
BTW, nice work, proficiat. I whish i was there already … (started in october 2023, aiming at having DNMS & a self-designed display working by now…)
And in the process, found out about the SEN55…

We use MQTT and is implemented in our firmware
Example

{
“SEN55_P0”: “4.98”,
“SEN55_P2”: “5.23”,
“SEN55_P4”: “5.23”,
“SEN55_P1”: “5.23”,
“SEN55_N05”: “33.82”,
“SEN55_N1”: “39.06”,
“SEN55_N25”: “39.14”,
“SEN55_N4”: “39.15”,
“SEN55_N10”: “39.16”,
“SEN55_TS”: “0.40”,
“SEN5X_temperature”: “23.13”,
“SEN5X_humidity”: “50.85”,
“SEN5X_NOx”: “1.00”,
“samples”: “2870”,
“min_micro”: “50069”,
“max_micro”: “99486”,
“interval”: “145000”,
“signal”: “-46”,
“SEN5X_VOC”: “96.80”
}

Monitoring VOC and NOx: MQTT => Mosquitto server => NodeRed => MariaDB => Grafana

@Rik_Drabs When using the SEN5x please remember that the VOC values are index values and only “valid” for a single location. With auto calibration this value may even not be comparable over a longer time even on the same location …

Where can I get a cable for SEN55 at a favourable price? I can only find offers on the Internet that are just as expensive with shipping as the SEN55 itself. The cheap solution of making a plug myself failed because it is too fine and small.

I have bought them from Ali

1 Like

I have connected the SEN55 to Tasmota. I find this sensor rather disappointing. Supposedly there are almost or exactly the same values for the different particle sizes.

SEN5X PM 1 µm 1,9 µg/m³
SEN5X PM 2,5 µm 2,0 µg/m³
SEN5X PM 4 µm 2,0 µg/m³
SEN5X PM 10 µm 2,0 µg/m³

I switched on a hoover in a small room and the values go up, but remain very similar to each other.

SEN5X PM 1 µm 9,6 µg/m³
SEN5X PM 2,5 µm 10,5 µg/m³
SEN5X PM 4 µm 10,9 µg/m³
SEN5X PM 10 µm 11,0 µg/m³

That’s great to hear!

Measured values add up from small to large size so in your case you have most particles upto 1 PM therefore showing almost the same values from 1 PM to 10 PM
Best to look at the TPS value, Typical Particle Size

Here are the values over a whole week.

Overexposure by a factor of 10 to 1000 will be detectable, and that is the intention. Monitoring the problem in Zoutleeuw has opened my eyes to the damage that VOCs can cause when these substances are grossly abused by people with the intention of harming and driving away their VOC-sensitive neighbors, while at the same time authorities “prefer” to look away, against doctor’s advice, using as an excuse “We don’t have any meters”, and “We don’t smell a thing”.

The display is going fine, with a webserver interface style sensor.community, an evolution from my already on Github published “displayPM”. In the mean time the display supports up to 32 locations with each 4 sensor ID’s, and can monitor the whole network of sensors with meaningfull messages readable from a distance of 6 to 10 meters away.
It is a nice (and cheap) tool for exposing the air quality problem to the public in general.
The latest version will be published on Github under a new name, as it is too different from displayPM.

When will the full support for the SEN55 be available, from sensor on an ESP8266, to data available in the database, on the API, on Grafana, and on the MAP ?
Can I in the mean time have some sensor ID’s with a SEN55, already supporting all info on the API, to test the display ?
I used to assemble lots of PM meters with SDS011/DHT22, and last year with SPS30/BME280.
I can assemble a meter with a SEN55/BMP280 combination, but how can i have a working API interface, like the one that will be available later? The hardware or components are no problem, but the API over internet doesn’t support all data from the SEN55, as i understand, only the SPS30 subset ?