CO2 Gadget incluye un menu completo y uniforme que funciona tanto en la pantalla del medidor como a traves del puerto serie (USB). Lo que ves en la pantalla lo ves en el terminal serie, y viceversa, simultaneamente. Esto significa que puedes configurar tu medidor aunque no tenga pantalla ni botones, usando solo un programa de terminal.
Desde el menu puedes ver informacion del dispositivo, configurar todos los parametros (WiFi, MQTT, BLE, sensores, pantalla, bajo consumo, etc.), calibrar los sensores, guardar las preferencias y reiniciar el medidor.
Contenidos
Con botones (pantalla)
- Pulsacion larga en el boton superior = Enter / seleccionar opcion
- Pulsacion larga en el boton inferior = Atras / deseleccionar
- Pulsacion corta en el boton superior = Arriba / anterior opcion
- Pulsacion corta en el boton inferior = Abajo / siguiente opcion
Por puerto serie (USB)
Abre un terminal serie a 115200 baudios. Una vez conectado, pulsa la tecla * para entrar al menu. La navegacion se hace con las siguientes teclas:
- Tecla * = Enter / seleccionar opcion
- Tecla / = Atras / deseleccionar
- Tecla + = Abajo / siguiente opcion
- Tecla – = Arriba / anterior opcion
Ademas, los numeros y letras del teclado se usan directamente para introducir valores (SSID, contrasena, broker MQTT, etc.).
Atencion: Los caracteres /, *, + y - estan reservados para la navegacion del menu. Si necesitas introducir alguno de ellos en un campo (por ejemplo en el SSID o la contrasena WiFi), no podras hacerlo por el puerto serie y tendras que hacerlo desde la pantalla o la interfaz web.

El menu principal tiene seis opciones. Desde aqui accedes a toda la funcionalidad del firmware:
- Information — Informacion de solo lectura del dispositivo
- Configuration — Ajuste de todos los parametros del medidor
- Calibration — Calibracion del sensor de CO2
- Save preferences — Guarda la configuracion actual en memoria no volatil (NVR)
- Reboot — Reinicia el medidor (con confirmacion previa)
- Exit — Sale del menu y vuelve a la pantalla principal con las mediciones
1. Information
Muestra datos de solo lectura del medidor: voltaje de bateria, fecha de compilacion del firmware, version completa, sabor de placa, tiempo de actividad (uptime), direccion IP y BLE Device ID. Util para diagnosticos rapidos.

2. Configuration
Es el nucleo del menu. Contiene los siguientes submenus, cada uno con sus propios ajustes:


CO2 Sensor
Selecciona el tipo de sensor de CO2 conectado y ajusta los parametros relacionados:
- Sensor: Auto (I2C, Sensirion SCD30/SCD40/SCD41), MH-Z19, CM1106, Senseair S8
- Autom. Cal: Activa o desactiva la calibracion automatica (ABC)
- Pres. Comp: Compensacion por presion atmosferica en mbar (0-2000)
- Altitude: Altitud en metros para correccion (0-9999)
- Orange / Red: Umbrales de CO2 para los niveles naranja y rojo
- Debug Sensors: Activa logs de sensores por el puerto serie para depuracion


BLE
Configuracion del Bluetooth Low Energy. Requiere que la placa ESP32 tenga BLE soportado:
- BLE Enable: Activa o desactiva el modulo BLE completo
- MyAmbiance: Activa la salida de datos para la app Sensirion MyAmbiance
- BTHome: Activa el protocolo BTHome v2 para Home Assistant
- BTHome Enc: Activa la encriptacion AES-CCM de los datos BTHome
- BTHome key: Configura la bind key para BTHome encriptado
- Publish Sensors: Selecciona que sensores se publican por BTHome (CO2, temperatura, humedad, bateria, PM2.5, presion, PM10, voltaje, PM1.0, PM4.0)

WiFi
Configura la conexion WiFi del medidor: SSID, contrasena y hostname. Tambien permite cambiar de red sin necesidad de la app MyAmbiance.

MQTT
Configura el broker MQTT: servidor, puerto, topic, client ID, usuario y contrasena. Incluye soporte para MQTT Discovery de Home Assistant. Guia MQTT completa.

ESP-NOW
Configura la comunicacion peer-to-peer con otros dispositivos ESP32 sin necesidad de router. Parametros: direccion MAC del peer y canal WiFi. Guia ESP-NOW completa.

Battery
Ajusta los parametros de bateria: voltaje de referencia (por defeco 3.3V), voltaje de bateria llena y vacia, para un calculo preciso del porcentaje de carga. Guia Low Power completa.

Temperature
Permite ajustar un offset de temperatura (por ejemplo si el sensor esta en una camara cerrada que se calienta por el propio ESP32). Tambien permite cambiar las unidades del display entre Celsius y Fahrenheit.

Display
Opciones de la pantalla del medidor (segun el tipo de display conectado):
- Brightness: Brillo de la pantalla (solo TFT y OLED)
- Off on USB: Apaga la pantalla cuando el medidor recibe alimentacion USB
- Orient: Normal o invertido (rota 180 grados la pantalla)
- Wake on CO2: Activa la pantalla al detectar CO2 alto (umbral naranja)

Outputs
Configuracion de las salidas fisicas del medidor:
- GPIO Outputs: Selecciona si las salidas GPIO se usan para LEDs o reles
- Buzzer: OFF (sin alarma), One time (pita una vez al alcanzar el rojo), Every x (se repite cada x segundos, configurable de 5s a 5 min)
- NeoPixel: Configura la tira de LEDs direccionables


Low Power
Configura el modo de bajo consumo: intervalos de sueño profundo, activacion por CO2, activacion por timer, activacion por boton y que sensores/publicaciones se activan al despertar. Guia Low Power completa.
3. Calibration
Acceso directo a la calibracion del sensor de CO2:
- Autom. Cal. Activa o desactiva la calibracion automatica (ABC)
- Calibrate at 400ppm — Calibracion forzada con referencia de aire limpio (400 ppm)
- Custom Cal — Introduce un valor de referencia personalizado (400-2000 ppm)
- Calibrate at custom ppm — Ejecuta la calibracion con el valor personalizado

4. Save preferences
Guarda todas las preferencias actuales en la memoria no volatil (NVR) del ESP32. Es importante guardar antes de salir del menu o desconectar el medidor, especialmente si has cambiado parametros de WiFi o MQTT.
Al guardar, el sistema comprueba automaticamente: si MQTT esta activo al despertar, activa WiFi al despertar si es necesario. Lo mismo con ESP-NOW.
5. Reboot
Reinicia el medidor. Aparece un mensaje de confirmacion “Reboot w/o saving” para evitar reinicios accidentales. Si seleccionas “Yes”, se ejecuta un reinicio completo del ESP32. El sensor SCD30 se resetea antes del reinicio si esta presente.
Low Power (bajo consumo)
Este submenu es uno de los mas importantes del firmware, especialmente si quieres que tu medidor funcione con bateria. CO2 Gadget utiliza un sistema binario con dos modos: HIGH_PERFORMANCE (medicion continua) y LOW_POWER (deep sleep). Desde aqui se configuran todos los parametros relacionados.
- L.P. Mode: Muestra el modo actual. En LOW_POWER el medidor entra en deep sleep entre mediciones.
- Wait: Tiempo de espera (en segundos) antes de entrar en deep sleep tras la ultima medicion. Permite que el sensor estabilice la lectura.
- Sleep: Tiempo minimo (en segundos) que el medidor permanece en deep sleep entre ciclos.
- WiFi every: Cada cuantos ciclos de deep sleep se activa el WiFi para enviar datos (0 = nunca, 1 = cada ciclo, etc.).
- Redraw every: Cada cuantos ciclos se redibuja la pantalla completa. Ahorra energia en displays E-Ink.
- BLE wake: Si esta ON, el medidor anuncia BLE/BTHome al despertar.
- WiFi wake: Si esta ON, conecta WiFi al despertar (necesario para MQTT).
- MQTT wake: Si esta ON, publica los datos por MQTT al despertar. Requiere WiFi wake.
- ESP-NOW wake: Si esta ON, envia datos por ESP-NOW al despertar. Requiere WiFi wake.
- Display wake: Si esta ON, enciende la pantalla al despertar. Util para no encenderla si solo quieres enviar datos.
- Display reverse wake: Si esta ON, enciende la pantalla cuando el CO2 BAJA del umbral naranja. Util para mostrar “todo bien” tras una alerta.
Nota: Las capturas de pantalla de este menu estan pendientes de actualizar. La configuracion exacta depende de tu placa y del tipo de pantalla. Consulta la Guia de Bajo Consumo para una explicacion detallada.
BTHome Publish Sensors
Dentro del submenu BLE > BTHome, la opcion “Publish Sensors” permite seleccionar exactamente que sensores se anuncian por BTHome. Los sensores se organizan en tres grupos:
- Core: CO2, Temperature, Humidity, Battery (activados por defecto)
- Optional: PM2.5, Pressure, PM10, Battery Voltage
- No BTHome object: PM1.0, PM4.0 (usan IDs no estandar 0xEE/0xEF; Home Assistant no los parsea)
Cada sensor es un toggle ON/OFF. El menu muestra automaticamente que sensores estan disponibles segun el hardware conectado, y cuales se omiten por presupuesto de bytes del anuncio BLE. Los sensores de PM se desactivan automaticamente en LOW_POWER (el ventilador no tiene tiempo de calentarse en una ventana de wake corta).
La opcion “BTHome key” inicia un asistente por puerto serie para introducir o generar una bind key de 32 caracteres hexadecimales para encriptacion AES-CCM. Tambien se puede generar automaticamente dejando el campo en blanco.
WiFi Config (detalle)
Ademas de SSID, contrasena y hostname, el menu WiFi incluye:
- WIFI Enable: Activa o desactiva el modulo WiFi. Cuando esta OFF, el medidor funciona solo por BLE.
- Web pwd visible: Muestra u oculta los caracteres de la contrasena WiFi al escribirla en el menu.
- Fixed IP: Permite configurar una IP estatica si no quieres usar DHCP (direccion IP, mascara, puerta de enlace).
Display Config (detalle ampliado)
Las opciones de pantalla se han ampliado respecto a versiones anteriores:
- Brightness: Brillo de la pantalla (solo TFT y OLED, rango 0-255).
- Off on USB: Apaga la pantalla cuando el medidor recibe alimentacion por USB (util para no tener luz por la noche).
- Orient: Normal o Reversed. Rota la pantalla 180 grados. Al invertirla, los botones intercambian su funcion arriba/abajo.
- Temp / Humidity / Battery / CO2 / PM2.5: Toggles Show/Hide para cada parametro en la pantalla principal.
- Time to display off: Tiempo en segundos tras el cual la pantalla se apaga automaticamente (solo TFT/OLED).
ESP-NOW Config
La configuracion de ESP-NOW incluye un toggle de activacion y dos campos adicionales:
- ESP-NOW Enable: Activa o desactiva ESP-NOW.
- Time between ESP-NOW publish: Intervalo (en segundos) entre envios de datos por ESP-NOW.
- Board ID: Identificador unico del dispositivo en la red ESP-NOW.
- Peer MAC: Direccion MAC del dispositivo destino. Por defecto esta en broadcast (FF:FF:FF:FF:FF:FF).
Battery Config
Configuracion precisa de la bateria para un calculo correcto del porcentaje:
- Battery Voltage: Muestra el voltaje actual en vivo (solo lectura).
- vRef: Voltaje de referencia del ADC del ESP32 (tipicamente 3.3V o 1.1V segun la placa).
- Battery Full: Voltaje en milivoltios cuando la bateria esta completamente cargada.
- Battery Empty: Voltaje en milivoltios cuando la bateria esta practicamente descargada.
Estos valores permiten a CO2 Gadget calcular el porcentaje de bateria restante de forma precisa. Si los valores no son correctos para tu bateria, ajustalos desde este menu.
Temperature Config
Configuracion del sensor de temperatura:
- Offset: Permite compensar la lectura de temperatura si el sensor esta cerca del ESP32 y se calienta. Por ejemplo, en un montaje sandwich, un offset de -2 a -5 grados suele ser adecuado.
- Dec places: Numero de decimales a mostrar en la temperatura en el display.
Outputs Config (detalle)
Ademas del buzzer, el menu de salidas incluye configuracion de los LEDs NeoPixel:
- GPIO Outputs: Selecciona si las salidas GPIO se usan para LEDs o reles (modo de funcionamiento).
- Buzzer: OFF, One time (pita una vez al llegar al rojo), Every x (se repite cada N segundos, configurable entre 5s y 5 min).
- Neopixels: Tipo de tira NeoPixel conectada.
- Neopixel brightness: Brillo de los LEDs NeoPixel (0-255).
Capturas de pantalla adicionales
Para referencia visual, aqui tienes el aspecto del menu en las distintas pantallas compatibles:

Te ha sido util? Comparte este articulo. Tienes dudas? Pregunta en el grupo de Telegram.