Hi Guys
Any updates as I am seeing the same thing - so I wrote a simple script to just look at the raw readout and voltage, when it is placed in an anaerobic cabinet (5% Carbon Dioxide, 5% Hydrogen, and 90% Nitrogen) and the sensor is very unstable - the Raw/AD is jumping between 77 and 1020 and the Voltage is 0.07 to 0.8V - I have a Grove Oxygen Sensor Pro (Pre-calibration. Part No. 101020912) - running with a Wio Terminal and this code
#include “TFT_eSPI.h”
TFT_eSPI tft;
void setup() {
// Initialize Serial
Serial.begin(9600);
// Initialize the TFT screen
tft.init();
tft.setRotation(3); // Landscape orientation
tft.fillScreen(TFT_BLACK);
// Set up the display layout
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.drawString(“Grove O2 Sensor”, 10, 10);
tft.drawString(“Voltage Reader”, 10, 40);
// Draw labels
tft.setTextColor(TFT_CYAN);
tft.drawString(“Raw A/D:”, 10, 80);
tft.drawString(“Voltage:”, 10, 110);
tft.drawString(“V”, 200, 110);
Serial.println(“Grove O2 Sensor - Simple Voltage Reader”);
Serial.println(“Sensor connected to A0”);
}
void loop() {
// Read analog value from A0 (Grove connector)
int rawValue = analogRead(A0);
// Convert to voltage (Wio Terminal: 3.3V reference, 12-bit ADC = 4096 levels)
float voltage = (rawValue * 3.3) / 4096.0;
// Clear previous readings on screen
tft.fillRect(120, 80, 120, 60, TFT_BLACK);
// Display readings on screen
tft.setTextColor(TFT_GREEN);
tft.setTextSize(2);
tft.drawString(String(rawValue), 120, 80);
tft.drawString(String(voltage, 4), 120, 110); // 4 decimal places
// Print to Serial monitor
Serial.print("Raw A/D: “);
Serial.print(rawValue);
Serial.print(” - Voltage: ");
Serial.print(voltage, 4);
Serial.println(“V”);
// Update every second
delay(1000);
}
cheers - Julian