I just got my One v9 a while back. Since ONE_v9.ino is very readable (that’s for keeping it that way!), I decided to just keep it but point APIROOT to a local server. (Then I made some small changes so the LED displays other sensor values.)
From the most recent thread Model number for CO2 calibration? I see that CO2 recalibration isn’t done. So I wanted to add the part of C02_CALIBRATION (sic) that does this.
Is there anything irreversibly bad that can happen if I run the wrong commands in firmware? As in something that breaks the sensor?
Is this basically what’s needed? Plus error checking. EDIT: added crucial missing line.
S8_UART * sensor_S8;
S8_sensor sensor;
sensor_S8->get_firmware_version(sensor.firm_version);
sensor.sensor_id = sensor_S8->get_sensor_ID();
sensor_S8->manual_calibration()
then poll this in a loop until its true
sensor.ack = sensor_S8->get_acknowledgement();
if (sensor.ack & S8_MASK_CO2_BACKGROUND_CALIBRATION) {
// Done calibration
}
Thanks.
Some other notes:
-
Some of the library names at the top of ONE_v9.ino don’t quite match if you try to install it through arduino-cli instead of search inside Arduino’s UI. Here’s how I ended up installing all dependencies.
arduino-cli lib install “Adafruit NeoPixel”
arduino-cli lib install arduino-sht
arduino-cli lib install S8_UART
arduino-cli lib install “PMS Library”
arduino-cli lib install “Sensirion Gas Index Algorithm”
arduino-cli lib install “Sensirion I2C SGP41”
arduino-cli lib install U8g2
arduino-cli lib install WiFiManagerarduino-cli lib install “AirGradient Air Quality Sensor”
-
There’s references to the blink example on various Airgradient pages but there’s no blink example for newer hardware.
For example, here The AirGradient ONE Air Quality Sensor (Presoldered-Version, PCB Version 9) “Then flash this code the same way you flashed the BLINK example”