The native stock firmware does everything the device is supposed to do and with the Home Assistant integration for AirGradient, you can get all of your sensor values in HA so you can setup automations. You can also do the configuration of the device through the AirGradient Dashboard site, or you can change the Configuration Control to “Local” so HA can configure most aspects of the device.
The ESPHome firmware does take a bit more to configure if you aren’t already using ESPHome as you need to have a local ESPHome server, either as a Docker container or an addon to Home Assistant in most cases.
Once you are using that, there are some new levels of flexibility you can do without having to know Arduino/ESP-IDF type language and compiling.
Setting a static IP or defining wifi credentials as part of flashing is just a few new lines in the YAML file
Want to swap out the SHT40 sensor for the SHT30 sensor? Just update the line to reflect the new package and then click the Install button temp_humidity: github://MallocArray/airgradient_esphome/packages/sensor_sht40.yaml
ESPHome has new releases every month, so there is always a chance of new software features or improvements and any security issues are addressed promptly by the ESPHome team.
The earlier AirGradient models haven’t received any native firmware updates recently, so no new features for firmware have been released for quite some time
My main reason for running on ESPHome at this stage is for better use of the LED bar. I greatly prefer using the full bar with colors over the native firmware that only uses a few LEDs on the right, adding more as air quality gets worse. And my absolute joy is the Combo LED mode, where the bar it split into 3 segments that reflects the 3 major sensor values, CO2, PM2.5, and TVOC, which lets me know everything I need from across the room at a glance. Once of these days I’ll see if I can add it to the Native firmware as an option.