AirGradient Forum

Help Us with the Wi-Fi Issue of Firmware 3.6.0

I have a I-9PSL (doesn’t seem to have any other characters after that) and a O-1PST. Both are connected to the same Wi-Fi, but only the O-1PST seems affected.

Looking at the Home Assistant history, I can see that the O-1PST got disconnected two times so far: first it was on 2026-01-19 right before 3PM CET. I only noticed it late in the evening. I unplugged the USB-C cable and after plugging the cable back in, it was fine. Second disconnect was on 2026-01-26 after 1PM CET; I noticed again in the evening and I restarted it.

As a suggestion: in Home Assistant, I only see that the firmware is up to date, it doesn’t specify the actual firmware in use. It would help to see exactly when the firmware was upgraded…

O-1PST doesn’t have a screen.

I have a Fritzbox (German brand of router/AP combo). Nothing fancy, no VLANs. I have IPv6 enabled, but the AGs don’t seem to support it, unfortunately… O-1PST is 2m away from the Fritzbox, I-9PSL is about 5m away.

  • O-1PST that is affected:
{
  "country": "AT",
  "pmStandard": "ugm3",
  "ledBarMode": "co2",
  "abcDays": 8,
  "tvocLearningOffset": 12,
  "noxLearningOffset": 12,
  "mqttBrokerUrl": "",
  "temperatureUnit": "c",
  "configurationControl": "cloud",
  "postDataToAirGradient": true,
  "ledBarBrightness": 100,
  "displayBrightness": 100,
  "offlineMode": null,
  "model": "O-1PST",
  "monitorDisplayCompensatedValues": false,
  "disableCloudConnection": false,
  "corrections": {
    "atmp": {
      "correctionAlgorithm": "ag_pms5003t_2024",
      "slr": null
    },
    "rhum": {
      "correctionAlgorithm": "ag_pms5003t_2024",
      "slr": null
    }
  },
  "httpDomain": "",
  "extendedPmMeasures": false
}

  • for reference, here’s also the I-9PSL that is NOT affected (so far):
{                                                                                                                                                                                             
  "country": "AT",                                                                                                                                                                            
  "pmStandard": "ugm3",                                                                                                                                                                       
  "ledBarMode": "co2",                                                                                                                                                                        
  "abcDays": 8,                                                                                                                                                                               
  "tvocLearningOffset": 12,                                                                                                                                                                   
  "noxLearningOffset": 12,                                                                                                                                                                    
  "mqttBrokerUrl": "",                                                                                                                                                                        
  "temperatureUnit": "c",                                                                                                                                                                     
  "configurationControl": "cloud",
  "postDataToAirGradient": true,
  "ledBarBrightness": 100,
  "displayBrightness": 100,
  "offlineMode": false,
  "monitorDisplayCompensatedValues": false,
  "model": "I-9PSL",
  "disableCloudConnection": false,
  "corrections": {
    "atmp": {
      "correctionAlgorithm": "none",
      "slr": null
    },
    "rhum": {
      "correctionAlgorithm": "none",
      "slr": null
    }
  },
  "httpDomain": "",
  "extendedPmMeasures": false
}

Yes, I only have one SSID.

No, just one AP.

No. Maybe worth mentioning that the Fritzbox router/AP is NOT the DHCP server, I have a separate device for that (pihole running on a Odroid-C2, if that matters).

Yes

Yes, it’s intergrated with HA, but I still have cloud as source of config.

I haven’t downgraded, both devices are still on 3.6.0. I have another I-9PSL in another location also on 3.6.0, but that also has been stable so far.

4 Likes

My details were already in the “Indoor monitor disconnects and does not reconnect” thread, and I updated to provide the few extra details requested here that were not already there.

1 Like
  1. Model number of the monitor that has the issue?

1 x O-1PST, 1 x I-9PSL, 1 x I-9PSL-DE

  1. Please describe the symptom of the issue you experienced. For example, it randomly disconnects from your Wi-Fi, or you can observe some patterns in its behavior.

This has occurred after making network changes, as well as randomly in the middle of the night. I do see that in at least one instance the device roamed to a more distant AP before disconnecting entirely. Lately, it does not reconnect until I manually power cycle the device.

  1. What does the OLED screen of the monitor show when it is disconnected? And what is the color of the LED on the left of the monitor (red, purple, etc.)?

Disabled, can’t say.

  1. Network setup: Describe your network setup. Please also specify the brand and model of each network equipment.

I have a UniFi network with three APs: UniFi Dream Router 7, U7 Lite, UniFi Express 7

  1. AirGradient monitor configuration - accessible via web browser with a phone or computer connected to the same Wi-Fi as the monitor that has the issue using: http://airgradient_<serial_number>.local/config

I-9PSL

{
  "country": "TH",
  "pmStandard": "ugm3",
  "ledBarMode": "co2",
  "abcDays": 8,
  "tvocLearningOffset": 12,
  "noxLearningOffset": 12,
  "mqttBrokerUrl": "",
  "httpDomain": "",
  "temperatureUnit": "c",
  "disableCloudConnection": false,
  "configurationControl": "local",
  "postDataToAirGradient": true,
  "ledBarBrightness": 0,
  "displayBrightness": 0,
  "offlineMode": false,
  "monitorDisplayCompensatedValues": false,
  "extendedPmMeasures": false
}

I-9PSL-DE

{
  "country": "TH",
  "pmStandard": "ugm3",
  "ledBarMode": "pm",
  "abcDays": 8,
  "tvocLearningOffset": 12,
  "noxLearningOffset": 12,
  "mqttBrokerUrl": "",
  "temperatureUnit": "c",
  "configurationControl": "local",
  "postDataToAirGradient": true,
  "ledBarBrightness": 0,
  "displayBrightness": 0,
  "offlineMode": false,
  "monitorDisplayCompensatedValues": false,
  "model": "I-9PSL-DE",
  "httpDomain": "",
  "disableCloudConnection": false,
  "extendedPmMeasures": false
}

O-1PST

{
  "country": "TH",
  "pmStandard": "ugm3",
  "ledBarMode": "co2",
  "abcDays": 8,
  "tvocLearningOffset": 12,
  "noxLearningOffset": 12,
  "mqttBrokerUrl": "",
  "temperatureUnit": "c",
  "configurationControl": "local",
  "postDataToAirGradient": true,
  "ledBarBrightness": 100,
  "displayBrightness": 100,
  "offlineMode": false,
  "model": "0-1PS",
  "httpDomain": "",
  "disableCloudConnection": false,
  "monitorDisplayCompensatedValues": false,
  "extendedPmMeasures": false
}
  1. Is your Wi-Fi network using a unified band (a combined Wi-Fi name without separating 5GHz and 2.4GHz)?

Yes

  1. Is your Wi-Fi a mesh system, have multiple access points, or use Wi-Fi extender?

Multiple APs, not a mesh system, not using a WiFi extender (all hardwired)

  1. Do you have your Wi-Fi DHCP server configured to assign a static IP address for connected devices?

No

  1. Does the monitor connect to the AirGradient dashboard?

Yes, but not when the issue is occurring.

  1. Does the monitor connect to Home Assistant or other platforms?

HA, but not when the issue is occurring.

  1. Is this Wi-Fi issue gone after you downgrade your AirGradient monitor from firmware 3.6.0 to 3.4.1?

Have not attempted but this issue started within the last week or so and all devices are on 3.6.0. I was happy to see this post here when I came looking for support.

1 Like

@jmaguire
I see your ConfigurationControl is set to Local. How are you getting firmware updates? Do you change it to Cloud from time to time so it pulls the firmware from there? Or are you manually installing it?

  1. Model number of the monitor that has the issue? (I-9PSL-DE, O-1PST, etc.)

     I-1DIY and I-9PSL-DE both on 3.6.0 firmware.
    
  2. Please describe the symptom of the issue you experienced. For example, it randomly disconnects from your Wi-Fi, or you can observe some patterns in its behavior.

    Both are in a disconnected state with red/purple led lit on upper left corner. Neither are connecting to the Airgradient cloud. Both seem to inconsistently be available on the local network via wifi. Rebooting either does NOT result in reconnection and forcing an earlier firmware does not work via the cloud. I will be manually updating/downgrading to the previous version, 3.4.1. When rebooting, “Connecting to server…” takes several minutes followed by “Skipping firmware update…”

  3. What does the OLED screen of the monitor show when it is disconnected? And what is the color of the LED on the left of the monitor (red, purple, etc.)?

    Purple upper left. 2 green upper right. Both units are the same.

  4. Network setup: Describe your network setup. Please also specify the brand and model of each network equipment.

    Unifi network with 2 access points. Converged wireless 2.4/5Ghtz bands.

  5. AirGradient monitor configuration - accessible via web browser with a phone or computer connected to the same Wi-Fi as the monitor that has the issue using: http://airgradient_<serial_number>.local/config

    I-1DIY
    {
    “country”: “US”,
    “pmStandard”: “ugm3”,
    “ledBarMode”: “co2”,
    “abcDays”: 8,
    “tvocLearningOffset”: 12,
    “noxLearningOffset”: 12,
    “mqttBrokerUrl”: “”,
    “temperatureUnit”: “f”,
    “configurationControl”: “both”,
    “postDataToAirGradient”: true,
    “ledBarBrightness”: 100,
    “displayBrightness”: 100,
    “offlineMode”: false,
    “model”: “I-1DIY”,
    “disableCloudConnection”: false,
    “monitorDisplayCompensatedValues”: false,
    “corrections”: {
    “atmp”: {
    “correctionAlgorithm”: “none”,
    “slr”: null
    },
    “rhum”: {
    “correctionAlgorithm”: “none”,
    “slr”: null
    }
    },
    “httpDomain”: “”,
    “extendedPmMeasures”: false
    }

I-9PSL-DE
{
“country”: “US”,
“pmStandard”: “ugm3”,
“ledBarMode”: “co2”,
“abcDays”: 8,
“tvocLearningOffset”: 12,
“noxLearningOffset”: 12,
“mqttBrokerUrl”: “”,
“httpDomain”: “”,
“temperatureUnit”: null,
“disableCloudConnection”: false,
“configurationControl”: “both”,
“postDataToAirGradient”: true,
“ledBarBrightness”: 100,
“displayBrightness”: 100,
“offlineMode”: false,
“monitorDisplayCompensatedValues”: false,
“model”: “I-9PSL-DE”,
“extendedPmMeasures”: false
}

  1. Is your Wi-Fi network using a unified band (a combined Wi-Fi name without separating 5GHz and 2.4GHz)?

Yes.

  1. Is your Wi-Fi a mesh system, have multiple access points, or use Wi-Fi extender?

2 WAPs.

  1. Do you have your Wi-Fi DHCP server configured to assign a static IP address for connected devices?

No. All assignments are automatic.

  1. Does the monitor connect to the AirGradient dashboard?

Normally, yes.

  1. Does the monitor connect to Home Assistant or other platforms?

Not yet.

  1. Is this Wi-Fi issue gone after you downgrade your AirGradient monitor from firmware 3.6.0 to 3.4.1?

Still testing. Will have to do this manually as neither device is connecting for the automatic download.

1 Like

OK, I was doing work other work today that caused me to reset my AP’s, and the results are very revealing.

Without duplicating my description in the other thread completely, what I had been seeing was my outdoor going offline when the single AP that it could “hear” did it’s weekly restart - my indoor (which can hear both AP’s) did not go offline, and those two AP’s reboot about 15 minutes apart, confirming that the AG device could move between APs (same SSID, running fast roam).

Today, I ended up rebooting both AP’s at the same time, and both the indoor and outdoor sensor dropped off the network. The indoor went solid red and offline, and the outdoor just offline. No sign of either device MAC on either AP.

So, what it sounds like is that the 3.6.0 code cannot recover from signal loss, plain and simple. Those with intermittent drops I suspect have marginal signal, thus the frequency of the issue. My signal is quite strong to both devices, so I don’t see the seemingly random drops, but do see 100% correlation to signal loss and failure to recover. (Note that the network config has been stable for years, and any release prior to 3.6.0 did not have any issues with the restarts.)

So, to duplicate, I suggest simply restarting (or power cycling) the test AP, and see how the AG device handles the drop.

2 Likes

Thank you everyone for the input. I’ll let our engineer know about these.

Please feel free to add any information you want to share that might be listed on the questionnaires.

Again, in the meantime. For those who want to revert to the previous firmware, you can follow the guide I mentioned in the post. Let us know if you need help.

Thanks!

HA supports flashing them with updates directly.

Just as another datapoint, today I briefly disconnected one of my APs from power and then reconnected it. As a result, two of my AirGradients went offline and stayed offline, never reconnecting until manually power cycled (the indoor units.)

2 Likes

I’m not sure why I’m not having the same issue as others. My ONE is upgraded to 3.6.0, I have 2 Unifi access points hardwired. 2.4 Ghz + 5 Ghz on a single SSID.
I even manually rebooted each AP and haven’t experienced the connection loss of others.

Very odd

1 Like

I am using multiple AP’s, but NOT using “fast roam” (the AG WiFi appears to hate it . …) although the one that consistently had died every time can only “hear” viable signal from one of them . . . That’s all that I can think that might differ here, since a single AP restart doesn’t cause an issue (the devices will migrate) but a full outage does.

Not sure on timing when I blew them both out . . . I had been working another issue, and had made a number of changes, so may have been offline longer than a single restart. (I’ve not specifically retested, but that was all that I had done when I noted that both were down).

1 Like
  1. I have two AirGradient monitors, both running firmware 3.6.0 that are having issues
    1 x I-9PSL-DE_kit Monitor Serial Number: d83bda1a320c
    1 x O-1PST_kit Monitor Serial Number: d83bda1c6268
  2. When the monitors get disconnected from Wi-Fi for some reason (in example router reset, or any random disconnection) they sometimes are unable to reconnect when the Wi-Fi is available again. Then I have to power off the disconnected monitor, and then power on for the monitor to reconnect. Disconnections are random, and sometimes happen to both monitors while other times only affect one monitor.
  3. I usually have the OLED screen and the LEDs turned off because the I-9PSL is in my bedroom, the O-1PST has no screen or LEDs. When the LEDs are on, sometimes I saw the leftmost on in purple color, even if the monitor was connected
  4. Network Equipment: Zyxel DX5401 Firmware V5.17(ABXA.2)b9

http://airgradient_d83bda1a320c.local/config
{“country”:“IT”,“pmStandard”:“ugm3”,“ledBarMode”:“co2”,“abcDays”:30,“tvocLearningOffset”:12,“noxLearningOffset”:12,“mqttBrokerUrl”:"",“httpDomain”:"",“temperatureUnit”:“c”,“disableCloudConnection”:false,“configurationControl”:“both”,“postDataToAirGradient”:true,“ledBarBrightness”:0,“displayBrightness”:0,“offlineMode”:false,“monitorDisplayCompensatedValues”:false,“model”:“I-9PSL-DE”,“extendedPmMeasures”:false}
http://airgradient_d83bda1c6268.local/config
{“country”:“IT”,“pmStandard”:“ugm3”,“ledBarMode”:“co2”,“abcDays”:30,“tvocLearningOffset”:12,“noxLearningOffset”:12,“mqttBrokerUrl”:"",“temperatureUnit”:“c”,“configurationControl”:“both”,“postDataToAirGradient”:true,“ledBarBrightness”:0,“displayBrightness”:0,“offlineMode”:false,“monitorDisplayCompensatedValues”:false,“httpDomain”:"",“disableCloudConnection”:false,“extendedPmMeasures”:false,“model”:“O-1PST”,“corrections”:{“atmp”:{“correctionAlgorithm”:“ag_pms5003t_2024”,“slr”:null},“rhum”:{“correctionAlgorithm”:“ag_pms5003t_2024”,“slr”:null}}}
6. My Wi-Fi uses a unified band, without separating 2.4GHz and 5GHz
7. My Wi-Fi has no multiple access points and I don’t use Wi-Fi extenders
8. My Wi-Fi DHCP is not configured for static IP addresses
9. Both monitors are connected to an AirGradient dashboard
10. I have no HomeAssistant nor other platforms
11. I’ve not yet downgraded to 3.4.1. I hope in a new firmware that solves the problem without downgrading

1 Like

@MallocArray Yes, that’s what we have to investigate why it happens randomly and some users don’t experience the issue at all.

I have been trying to reproduce the issue with my routers (all-in-one router+AP) which are Xiaomi AX3200 and TP-Link Archer MR202. I haven’t seen the issue so far.

Our engineering team is capturing logs and letting the monitors run. Hopefully, we’ll find something out soon.

Is Eng using a debug build, or ???

And does logging persist after a power cycle?

I seem to have 100% predictability on generating this issue, and would be glad to try to capture logs/info if helpful.

(I also have the AG code from GIT here, and buildable. I don’t run that, but it’s available as well . . . I’ve looked at this a bit, but not yet deciphered the convoluted path that some of the wireless stuff take, and have not found where a number of the ESP wireless library stuff is set yet . . .

If you use this link: AirGradient ONE (I-9PSL), Open Air (O-1PST) and Open Air Max (O-M-1PPST...) Firmware Versions

You have the option to display logs instead of installing the firmware after clicking “Flash Now”
You could do that and then generate the issue and collect any logs displayed for support.

It does not keep logs stored in the device or after a reboot, so you have to copy it from your screen.

1 Like

Hi @tadawson ,

Since you already able to build the codebase and your monitor has the issue, could you try flash your monitor using patch on this branch?

Really appreciated!

1 Like

Let me give that a go. I’m not sure if I can get it on my outdoor (over 3 feet of snow right now, so can’t get it down or acess buttons, but let me verify that I can trigger my indoor and then try to load that.

If there is a way to OTA load this, I could likely get it on the outdoor as well (I haven’t looked . . . )

1 Like

Chiming in here…looks like a bug for sure with 3.6.0. Both my AG (indoor and outdoor) units disconnected 3 times in the last 10 days requiring a manual reboot to restore connectivity.

1 Like

OK, some information here . . .

I just went back to 3.6.0 to confirm that I can wedge it, and have the Indoor on the Arduino IDE, watching the serial output, and dumped both my AP’s (full signal loss). The unit DID go red, and did not reconnect.

I’m trying to upload the text file of the log, but the site won’t let me . . . for unknown reasons, a text file is forbidden . . .

If the team would like the full log output, please provide me a means to send it, and I’ll get it on the way. It’s only about 82K, so will mail (or whatever) easily.

It’s odd, that after the initial error, it seemed to take some time before the RSSI report vanished (even though the AP’s were down). I see nothing that looks like a network loss/retry.

The only error I see is this:

Custom correction applied
Custom correction applied
WiFi RSSI -52

---- PAYLOAD
{“pm01”:0,“pm02”:0,“pm10”:0,“pm01Standard”:0,“pm02Standard”:0,“pm10Standard”:0,
“pm003Count”:6.17,“pm005Count”:6,“pm01Count”:1.67,“pm02Count”:0,“pm50Count”:0,“p
m10Count”:0,“pm02Compensated”:3,“firmware”:“PMS5003x-151”,“atmp”:22.18,“rhum”:33
.35,“rco2”:1445,“tvocIndex”:101.83,“tvocRaw”:31299.08,“noxIndex”:1,“noxRaw”:1640
7.58,“boot”:10,“bootCount”:10,“wifi”:-52,“resetReason”:1,“freeHeap”:155356}

[AgWifiClient] Info: Post measures to
https://hw.airgradient.com/sensors/airgradient:d83bda1b8570/measures
[680634][E][ssl_client.cpp:37] _handle_error():
[start_ssl_client():273]: (-78) UNKNOWN ERROR CODE (004E)
[680745][E][WiFiClientSecure.cpp:144] connect(): start_ssl_client: -78
[AgWifiClient] Error: Failed post measures to server with response code -1

Online mode and isPostToAirGradient = true

Free heap: 155336
Custom correction applied

CO2 = 1418.33 ppm
Temperature = 22.18 C
Relative Humidity = 33.35
TVOC Index = 101.7

After this, the normal processing loop seems to keep running, with no errors logged, but no RSSI either.

1 Like

(Cleaned up prior “diatribe” . . .)

Looks like there may be an issue with the code in the git repo, beyond 3.4.1. If I checkout 3.4.1, I can build and install fine. If I select 3.6.0, the default 3.6.1, or the fix/wifi… branch, it builds cleanly and uploads OK, but will not start - the display stays at a black screen, and the serial monitor shows the bootloader looping. In this state, if I checkout 3.4.1 again, all works. I’ve dumped the IDE cache between builds, so that should be clean, and have the specified version of NimBLE in play, and no other external libraries.

Please advise, and I’ll make another go at loading the test code.

2 Likes

Hi @tadawson ,

Could you send the log to support and say forward it to me? https://www.airgradient.com/support

Thank you for your time helping.