# Comandos y calibracion Atlas Scientific EZO Esta implementacion sigue los datasheets oficiales vigentes consultados para: - EZO-pH, datasheet V6.1, revision 02/2024. - EZO-DO, datasheet V5.8, revision 03/2025. - EZO-EC, datasheet V5.5. - EZO-RTD, datasheet V3.7, revision 10/2024. ## Transporte I2C Los comandos son cadenas ASCII sin retorno de carro. Despues de escribir el comando se espera el tiempo de procesamiento y se solicita la respuesta. El primer byte de una respuesta I2C es: | Codigo | Significado | |---|---| | `1` | Solicitud procesada correctamente | | `2` | Error de sintaxis | | `254` | Procesando; aun no esta lista | | `255` | No hay datos | El ejecutable `sensors/EZOCommand/EZO_COMMAND` implementa este intercambio y reintenta las respuestas pendientes. ## Calibracion EZO-RTD Calibracion de un punto: ```text Cal, Cal,? Cal,clear ``` Ejemplo: `Cal,25.00`. ## Calibracion EZO-pH Orden recomendado: ```text Cal,mid,7.00 Cal,low,4.00 Cal,high,10.00 ``` El punto medio siempre debe realizarse primero. Ejecutar `Cal,mid` sobre una calibracion existente elimina los otros puntos. El estado se consulta con `Cal,?` y la salud de la sonda con `Slope,?`. ## Calibracion EZO-DO Un punto: ```text Cal ``` Dos puntos, en este orden: ```text Cal,0 Cal ``` `Cal,0` usa solucion de cero oxigeno. `Cal` usa la sonda estabilizada en aire atmosferico. Compensaciones disponibles: ```text T, S, S,,ppt P, ``` ## Calibracion EZO-EC Primero se configura la constante de la sonda con `K,` y se realiza la calibracion en seco: ```text K,1.0 Cal,dry ``` Calibracion de dos puntos: ```text Cal,dry Cal, ``` Calibracion de tres puntos: ```text Cal,dry Cal,low, Cal,high, ``` No se debe usar `Cal,0` en EC. El valor cero corresponde unicamente al paso `Cal,dry`. ## Modos del backend - `EZO_MODE=auto`: usa hardware si encuentra `/dev/i2c-1` y `EZO_COMMAND`; de lo contrario usa demo. - `EZO_MODE=hardware`: exige bus y ejecutable reales; si faltan, la API devuelve error en vez de simular. - `EZO_MODE=demo`: genera respuestas de desarrollo sin acceder al bus. Para preparar Raspberry Pi: ```bash make -C sensors/EZOCommand sudo usermod -aG i2c $USER EZO_MODE=hardware npm start ``` Es necesario cerrar sesion y volver a entrar despues de agregar el usuario al grupo `i2c`. ## Fuentes oficiales - https://files.atlas-scientific.com/pH_EZO_Datasheet.pdf - https://files.atlas-scientific.com/DO_EZO_Datasheet.pdf - https://files.atlas-scientific.com/EC_EZO_Datasheet.pdf - https://files.atlas-scientific.com/EZO_RTD_Datasheet.pdf