New Firmware Versions for Beta Testing Available

We will soon publish a new release of the open source firmware with some great new fetures:

  • MQTT Support
  • Set ABC period for SenseAir S8
  • Local polling support
  • TVOC raw support

The beta versions to flash directly from the browser for AirGradient ONE and Open Air are available here:
Beta Firmwares

Descriptions of these new features are also on that page.

If you like to test it, please do so and let me know your feedback.

By the way, what we are still working on:

  • OTA (over the air) updates
  • Better use of the LEDbar
  • Factory reset on device
  • Better identification of firmware version on the dashboard

Any chance you are also looking into local storage for a few hours so that if wifi connection goes down or is lost that data is still available?

1 Like

Yes could be something we can do but probably after we completed the more pressing issues like OTA.


I have loaded the beta firmware on an Airgradient ONE and have it pushing to the mosquitto server in homeassistant here. It’s been up for a little over a day now and things seem ok.

One thing I noticed is there is some drift in the timing of the updates. Rather than posting every 60 seconds, it will post every 61 or 62 seconds.


Looking forward to “Better use of the LEDbar”. Would like to know more about what is planned for this future feature.

Hi, thanks for the latest firmware! The local polling HTTP API is super useful as I was easily able to setup a cron script to poll sensor readings and then relay them to my local influxdb/grafana server for nicer display/logging.

However, it appears that the device reboots itself roughly every 15 minutes, causing the TVOC sensor to provide false readings. The OLED screen is also stuck on “Add to Dashboard” along with a single lonely purple LED showing. Previously I believe the default was current temperature and RH% readings.

Going to the IP address of the device via the web browser does not provide an expected configuration for the device, just a “Not found: /” response.

I understand this is all beta software, but hope some UI/UX tips are helpful :slight_smile:

Thanks for the feedback. We will investigate the reboots.
What works you suggest to display when people go directly to the ip address?

The number of LEDs light up will increase with the concentration. Currently the fw is wrong as only two LEDs light up.

Thanks for the feedback. Do you also see periodic reboots or does it run stable for you?

That will be helpful. So, for instance, if the PM2.5 is chosen to be monitored, if the reading in the window is 0 then we should see only 1 LED lit up in Green? And as the level rises it will increase in number of LED’s and change color based on the level. For instance over 5 or 10 for PM2.5 it would change to Yellow and eventually if it’s severe to RED?

Yes exactly this is what we plan.

Here’s what comes to mind:

  • WiFi configuration (e.g. change SSID or wipe configuration)
  • Configuring static IP address or use DHCP
  • Configure host name (e.g. if you might have several airgradient devices), this hostname could show up on the OLED screen
  • Configure what is displayed on the OLED screen

I saw the described behavior (Add to Dashboard text, single purple LED) intermittently with the 3.0.0 release, but it went away after a while. I’m not currently seeing it on my device.

Just a note that on this beta version of the firmware the NOx is not transmitted to our server due to a wrong property name.

Been using this beta on my devices for a few days. It works pretty well.

I was easily able to set up Telegraf to poll the local url to grab all the stats I need, and throw them into influx. Works far easier than MQTT, which i was planning on using.

Seconded this. I really like the addition of the RESTful URI.

@ektaroc @nitrogen @groner @Crypton @stevebythebay @Mud0556 I just published a new firmware version:
Beta Firmwares


  • Fixed NOx not sent to server
  • Factory Reset (long press button)
  • Improved PM polling
  • Additional mDNS attributes
  • Added support for OpenMetrics
  • Added humidity compensation formula for PMS5003T

Please give feedback if you notice anything.


I upgraded 2 airgradient (I-9SPL) devices, and one Openair module (not sure of the model, an older one with2 PM detectors)

The first I-9SPL went fine, as did the OpenAir device.

The 2nd I-9SPL however, the display didn’t come up at all. The device still booted.

On the console, the JSON displayed said the display WAS active.

Webserver init: airgradient_[[REDACTED]].local
Post payload: {"wifi":-49,"boot":0}
Get server config: {"country":"US","pmStandard":"ugm3","co2CalibrationRequested":false,"ledBarTestRequested":false,"ledBarMode":"off","displayMode":"on","placeOpen":false,"abcDays":8,"model":"I-9PSL","mqttBrokerUrl":[[REDACTED]]"}
Server configuration: 
             inF: false
         inUSAQI: false
    useRGBLedBar: 255
           Model: I-9PSL
     Mqtt Broker: mqtts://[[REDACTED]]
 S8 calib period: 8
Save config
Get server config: {"country":"US","pmStandard":"ugm3","co2CalibrationRequested":false,"ledBarTestRequested":false,"ledBarMode":"off","displayMode":"on","placeOpen":false,"abcDays":8,"model":"I-9PSL","mqttBrokerUrl":"[[REDACTED]]"}
Server configuration:

EDIT: I Can provide the Serial number to you in a private message if you want/need it.

Some other (minor, but will probably impact SOMEONE in the future)

  • when setting the wireless AP, if you are impatient and do it quickly, you will press the “set wireless” button and nothing will happen. It appears something isn’t quiet ready when this happens, and perhaps the buttons should only appear when everything is ready. Perhaps a “please wait while the unit initializes” is necessary? Otherwise someone will think their unit is broken when they mash on the button and nothing happens.

  • The I-9SPL’s seem to need to hit a button to boot in the update mode, while the Openair device doesnt. It’d be nice to not need to take down the I-9SPL devices to update them, like the Openair devices. If such a thing is possible, it’d be nice.

Does the display come on after a power cycle? Was that the device you needed to push the button to get into flash mode.

Sometimes the device needs to be put into special flash mode with the button.

So far I believe we cannot control when or if this happens via the firmware.

1 Like