EZO-O2

Notice: This page is an original repo-authored summary informed by Atlas Scientific documentation. It is not an official Atlas Scientific manual.

Purpose

This page captures the repo-relevant behavior of the EZO oxygen family.

Repo Status

This family is at the TYPED_READ tier. src/ezo_o2.h covers R, RT, T and O over I2C and UART. Calibration and Alarm are deferred; use the raw transport APIs for those. The firmware lookup in src/ezo_product.h does not cover it. None of this has been run on a circuit.

Product Summary

  • reads gaseous O2 from 0 to 42 %
  • default transport mode is UART
  • default I2C address is 108 (0x6C)
  • the i reply identifies it as O2
  • ships factory calibrated, and supports temperature compensation with T and RT
  • Cal,low,n arrived in firmware 1.02

Measurement Model

A reading can report percent concentration, parts per thousand, or both, selected with O. The record sets the output schema to query-required, because the datasheet’s default state names only O2, so read O,? and pass the mask to the read helper.

The datasheet says a reading becomes a CSV string when PPT is enabled, but no page prints one. The driver parses two values as percent, then parts per thousand, inferred from the ?,O,%,PPT query reply. Confirm that on a circuit before relying on it.

Over UART, RT replies *OK and then the value, the reverse of R, so use ezo_o2_read_response_with_temp_comp_uart() after it.

Timing Notes

The I2C pages print 900 ms for R and RT, 1300 ms for Cal,n and Cal,0, and 300 ms for most other commands.