CO2 Gadget incluye un menú completo y uniforme que funciona tanto en la pantalla del medidor como a través del puerto serie (USB). Lo que ves en la pantalla lo ves en el terminal serie, y viceversa, simultáneamente. Esto significa que puedes configurar tu medidor aunque no tenga pantalla ni botones, usando solo un programa de terminal.
Desde el menú puedes ver información del dispositivo, configurar todos los parámetros (WiFi, MQTT, BLE, sensores, pantalla, bajo consumo, etc.), calibrar los sensores, guardar las preferencias y reiniciar el medidor.
Con botones (pantalla)
- Pulsación larga en el botón superior = Enter / seleccionar opción
- Pulsación larga en el botón inferior = Atrás / deseleccionar
- Pulsación corta en el botón superior = Arriba / anterior opción
- Pulsación corta en el botón inferior = Abajo / siguiente opción
Por puerto serie (USB)
Abre un terminal serie a 115200 baudios. Una vez conectado, pulsa la tecla * para entrar al menú. La navegación se hace con las siguientes teclas:
- Tecla * = Enter / seleccionar opción
- Tecla / = Atrás / deseleccionar
- Tecla + = Abajo / siguiente opción
- Tecla – = Arriba / anterior opción
Además, los números y letras del teclado se usan directamente para introducir valores (SSID, contraseña, broker MQTT, etc.).
Atención: Los caracteres /, *, + y - están reservados para la navegación del menú. Si necesitas introducir alguno de ellos en un campo (por ejemplo en el SSID o la contraseña WiFi), no podrás hacerlo por el puerto serie y tendrás que hacerlo desde la pantalla o la interfaz web.

El menú principal tiene seis opciones. Desde aquí accedes a toda la funcionalidad del firmware:
- Information — Información de solo lectura del dispositivo
- Configuration — Ajuste de todos los parámetros del medidor
- Calibration — Calibración del sensor de CO2
- Save preferences — Guarda la configuración actual en memoria no volátil (NVR)
- Reboot — Reinicia el medidor (con confirmación previa)
- Exit — Sale del menú y vuelve a la pantalla principal con las mediciones
1. Information
Muestra datos de solo lectura del medidor: voltaje de batería, fecha de compilación del firmware, versión completa, sabor de placa, tiempo de actividad (uptime), dirección IP y BLE Device ID. Útil para diagnósticos rápidos.

2. Configuration
Es el núcleo del menú. Contiene los siguientes submenus, cada uno con sus propios ajustes:


CO2 Sensor
Selecciona el tipo de sensor de CO2 conectado y ajusta los parámetros relacionados:
- Sensor: Auto (I2C, Sensirion SCD30/SCD40/SCD41), MH-Z19, CM1106, Senseair S8
- Autom. Cal: Activa o desactiva la calibración automática (ABC)
- Pres. Comp: Compensación por presión atmosférica en mbar (0-2000)
- Altitude: Altitud en metros para corrección (0-9999)
- Orange / Red: Umbrales de CO2 para los niveles naranja y rojo
- Debug Sensors: Activa logs de sensores por el puerto serie para depuración


BLE
Configuración del Bluetooth Low Energy. Requiere que la placa ESP32 tenga BLE soportado:
- BLE Enable: Activa o desactiva el módulo 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, batería, PM2.5, presión, PM10, voltaje, PM1.0, PM4.0)

WiFi
Configura la conexión WiFi del medidor: SSID, contraseña y hostname. También permite cambiar de red sin necesidad de la app MyAmbiance.

MQTT
Configura el broker MQTT: servidor, puerto, topic, client ID, usuario y contraseña. Incluye soporte para MQTT Discovery de Home Assistant. Guía MQTT completa.

ESP-NOW
Configura la comunicación peer-to-peer con otros dispositivos ESP32 sin necesidad de router. Parámetros: dirección MAC del peer y canal WiFi. Guía ESP-NOW completa.

Battery
Ajusta los parámetros de batería: voltaje de referencia (por defeco 3.3V), voltaje de batería llena y vacía, para un cálculo preciso del porcentaje de carga. Guía Low Power completa.

Temperature
Permite ajustar un offset de temperatura (por ejemplo si el sensor está en una cámara cerrada que se calienta por el propio ESP32). También permite cambiar las unidades del display entre Celsius y Fahrenheit.

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

Outputs
Configuración de las salidas físicas del medidor:
- GPIO Outputs: Selecciona si las salidas GPIO se usan para LEDs o relés
- 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, activación por CO2, activación por timer, activación por botón y que sensores/publicaciones se activan al despertar. Guía Low Power completa.
3. Calibration
Acceso directo a la calibración del sensor de CO2:
- Autom. Cal. Activa o desactiva la calibración automática (ABC)
- Calibrate at 400ppm — Calibración 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 calibración con el valor personalizado

4. Save preferences
Guarda todas las preferencias actuales en la memoria no volátil (NVR) del ESP32. Es importante guardar antes de salir del menú o desconectar el medidor, especialmente si has cambiado parámetros de WiFi o MQTT.
Al guardar, el sistema comprueba automáticamente: si MQTT está activo al despertar, activa WiFi al despertar si es necesario. Lo mismo con ESP-NOW.
5. Reboot
Reinicia el medidor. Aparece un mensaje de confirmación “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 está presente.
Low Power (bajo consumo)
Este submenu es uno de los más importantes del firmware, especialmente si quieres que tu medidor funcione con batería. CO2 Gadget utiliza un sistema binario con dos modos: HIGH_PERFORMANCE (medición continua) y LOW_POWER (deep sleep). Desde aquí se configuran todos los parámetros 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 medición. Permite que el sensor estabilice la lectura.
- Sleep: Tiempo mínimo (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 energía en displays E-Ink.
- BLE wake: Si está ON, el medidor anuncia BLE/BTHome al despertar.
- WiFi wake: Si está ON, conecta WiFi al despertar (necesario para MQTT).
- MQTT wake: Si está ON, publica los datos por MQTT al despertar. Requiere WiFi wake.
- ESP-NOW wake: Si está ON, envía datos por ESP-NOW al despertar. Requiere WiFi wake.
- Display wake: Si está ON, enciende la pantalla al despertar. Útil para no encenderla si solo quieres enviar datos.
- Display reverse wake: Si está ON, enciende la pantalla cuando el CO2 BAJA del umbral naranja. Útil para mostrar “todo bien” tras una alerta.
Nota: Las capturas de pantalla de este menú están pendientes de actualizar. La configuración exacta depende de tu placa y del tipo de pantalla. Consulta la Guía de Bajo Consumo para una explicación detallada.
BTHome Publish Sensors
Dentro del submenu BLE > BTHome, la opción “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 estándar 0xEE/0xEF; Home Assistant no los parsea)
Cada sensor es un toggle ON/OFF. El menú muestra automáticamente que sensores están disponibles según el hardware conectado, y cuales se omiten por presupuesto de bytes del anuncio BLE. Los sensores de PM se desactivan automáticamente en LOW_POWER (el ventilador no tiene tiempo de calentarse en una ventana de wake corta).
La opción “BTHome key” inicia un asistente por puerto serie para introducir o generar una bind key de 32 caracteres hexadecimales para encriptacion AES-CCM. También se puede generar automáticamente dejando el campo en blanco.
WiFi Config (detalle)
Además de SSID, contraseña y hostname, el menú WiFi incluye:
- WIFI Enable: Activa o desactiva el módulo WiFi. Cuando está OFF, el medidor funciona solo por BLE.
- Web pwd visible: Muestra u oculta los caracteres de la contraseña WiFi al escribirla en el menú.
- Fixed IP: Permite configurar una IP estática si no quieres usar DHCP (dirección IP, máscara, 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 alimentación por USB (útil para no tener luz por la noche).
- Orient: Normal o Reversed. Rota la pantalla 180 grados. Al invertirla, los botones intercambian su función arriba/abajo.
- Temp / Humidity / Battery / CO2 / PM2.5: Toggles Show/Hide para cada parámetro en la pantalla principal.
- Time to display off: Tiempo en segundos tras el cual la pantalla se apaga automáticamente (solo TFT/OLED).
ESP-NOW Config
La configuración de ESP-NOW incluye un toggle de activación y dos campos adicionales:
- ESP-NOW Enable: Activa o desactiva ESP-NOW.
- Time between ESP-NOW publish: Intervalo (en segundos) entre envíos de datos por ESP-NOW.
- Board ID: Identificador único del dispositivo en la red ESP-NOW.
- Peer MAC: Dirección MAC del dispositivo destino. Por defecto está en broadcast (FF:FF:FF:FF:FF:FF).
Battery Config
Configuración precisa de la batería para un cálculo correcto del porcentaje:
- Battery Voltage: Muestra el voltaje actual en vivo (solo lectura).
- vRef: Voltaje de referencia del ADC del ESP32 (típicamente 3.3V o 1.1V según la placa).
- Battery Full: Voltaje en milivoltios cuando la batería está completamente cargada.
- Battery Empty: Voltaje en milivoltios cuando la batería está prácticamente descargada.
Estos valores permiten a CO2 Gadget calcular el porcentaje de batería restante de forma precisa. Si los valores no son correctos para tu batería, ajústalos desde este menú.
Temperature Config
Configuración del sensor de temperatura:
- Offset: Permite compensar la lectura de temperatura si el sensor está cerca del ESP32 y se calienta. Por ejemplo, en un montaje sandwich, un offset de -2 a -5 grados suele ser adecuado.
- Dec places: Número de decimales a mostrar en la temperatura en el display.
Outputs Config (detalle)
Además del buzzer, el menú de salidas incluye configuración de los LEDs NeoPixel:
- GPIO Outputs: Selecciona si las salidas GPIO se usan para LEDs o relés (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, aquí tienes el aspecto del menú en las distintas pantallas compatibles:

Te ha sido útil? Comparte este artículo. Tienes dudas? Pregunta en el grupo de Telegram.