Skip to content

Sensor Data Outputs

The uThing::VOC provides a rich set of environmental data. This page details each output field and the available reporting formats.


Data Dictionary

This section serves as a reference for every data point the device can report.


temperature
Units: Degrees Celsius (°C)
Range: -40 to +85
Description: The ambient air temperature, compensated by the BSEC algorithm to account for any heat generated by the device itself.
humidity
Units: Relative Humidity (%RH)
Range: 0 to 100
Description: The ambient relative humidity, also compensated by the BSEC algorithm.
pressure
Units: Hectopascals (hPa)
Range: 300 to 1100
Description: The atmospheric barometric pressure.
gasResistance
Units: Ohms (Ω)
Range: ~1k to 1M
Description: The raw resistance value from the MOX gas sensor. This value decreases as the concentration of VOCs increases. It is the primary input for the IAQ calculation.
IAQ
Units: Index
Range: 0 to 500
Description: The Indoor Air Quality (IAQ) index, calculated by the BSEC algorithm. It is a relative score based on a learned environmental baseline. See the BSEC guide for a full explanation.
iaqAccuracy
Units: Status
Range: 0, 1, 2, or 3

Description: Indicates the current calibration status of the IAQ value. This is a critical field to check.

  • 0: Sensor is stabilizing. Data is not reliable.
  • 1: Uncertain. The algorithm has not yet found a stable baseline.
  • 2: Calibrating. The algorithm is actively learning.
  • 3: Calibrated. The IAQ value is reliable.
eqCO2
Units: Parts-per-million (ppm)
Range: 400 to 5000+
Description: An estimated CO₂ concentration derived from the measured VOCs. It is useful for indicating changes in air quality from human presence but is not a direct CO₂ measurement.
eqBreathVOC
Units: Parts-per-million (ppm)
Range: 0.5 to 10+
Description: An estimated concentration of VOCs that are characteristic of human breath. This value is also a strong indicator of room occupancy and ventilation status.


Relative Humidity

Relative humidity refers to the ratio of the amount of moisture in the air at a certain temperature to the maximum amount of moisture that the air can retain at that same temperature.


Output Formats

The device can report the data above in three different formats. You can change the format by sending a configuration command.

JSON (Default)

The default format is JSON, which is easily parsed by most applications.

{
    "temperature": 24.68,
    "pressure": 1019.38,
    "humidity": 45.64,
    "gasResistance": 597617,
    "IAQ": 28.3,
    "iaqAccuracy": 3,
    "eqCO2": 511.21,
    "eqBreathVOC": 0.52
}

CSV

For easy logging to spreadsheets, you can use the Comma-Separated Values (CSV) format.

The column order is:

temperature, pressure, humidity, gasResistance, IAQ, iaqAccuracy, eqCO2, eqBreathVOC

24.65,1019.42,46.23,597617,26.9,2,506.7,0.51
Tip: Logging to a CSV File

As a quick way to do simple datalogging, the sensor data can be sent to a plain text file with the following command:

cat /dev/ttyACM0 > airQuality.csv &
The & symbol runs the process in the background. The generated file can then be opened in Excel or any spreadsheet application.

For a long therm and reliable data logging, check the uBridge CSV plugin.

Human-Readable

This format includes units and is useful for quick interactive checks in a serial terminal.

Temperature: 24.70 C, Humidity: 45.12 rH, Pressure: 1019.38 hPa, Gas resistance: 599759 ohms, IAQ: 27.1, IAQ Accuracy: 3, CO2equivalent: 507.1, Breath VOC equivalent: 0.51