Issues with the SO2 sensor ULPSM-SO2 968-006


I have issues with the SO2 sensor ULPSM-SO2 968-006. We bought the sensor from Digikey and use the program provided in GitHub by David Peaslee (GitHub - SPEC-Sensors/ULPSM: Public Arduino Library for ULPSM (ultra-low power sensor module) or SDK (sensor development kit)), which was also seen from a post in this forum. However, it seems that the program checks if the measured parameter (Vref) is almost the same as the calculated parameters. We refunded and bought another sensor thinking that the problem are from the sensor but when we plugged in the same code, the same results happened.

  1. The expected Vref is around 1700mV
  2. The measured Vref from the ULPSM is 1600mV (Which is also double-check using a multimeter)
  3. That is why the program thinks that there is a problem in the configuration and hence, advised to recheck the settings.

Say for instance we bypass and use the expected Vref instead the result are too high, that it exceeded the 20ppm.
It is either that two ULPSM-SO2 968-006 are defective, or there is a problem with the code itself being released in the public domain.

I would really appreciate your help since this project is funded by the city (Air Quality Monitoring).

Code portion:
Serial.println(“Remove Sensor.”);
if (sensor1.OCzero(n)) {
Serial.print("Vref new = ");
} else {
Serial.println(“Recheck Settings, Zero out of range”);
while (1) {

Hello @cmoral,

Welcome to the forum, and thanks for reaching out.
I am going to contact a few people to try to find more information for you.


Are you attempting to connect to the 968-006 to an arduino of some sort directly, or are you using the adapter included in the developer kit, 968-025?

Per the readme and from the schematic in the referenced repo, it can be seen that the Vref output from the ULPSM is a rather high impedance signal, which is likely to be influenced by the simple act of attempting to measure it with an Arduino ADC pin or a meter of insufficiently high input impedance. This may be a part of the issue.

There are also a number of variables in the software that need to be set appropriately in order for that sanity check to pass; the value of R2 and and settings of the jumpers XYx in the schematic for any given sensor need to be represented in the code appropriately, or else the calculated/expected value is likely to diverge from measured values. The settings for the ADC reference voltage would be another one to check.

At days’ end, the precise value of the Vref output is neither specified nor guaranteed, as it’s not really relevant to the operation of the sensor; it is the difference between the Vref and Vgas outputs that is of interest.

1 Like