Firmware open source para la MasterBuilt Gravity 800: Ingeniería inversa del controlador

Primer plano del controlador abierto de la MasterBuilt Gravity 800 mostrando la placa ESP32 y el cabezal de programación
Primer plano del controlador abierto de la MasterBuilt Gravity 800 mostrando la placa ESP32 y el cabezal de programación

Un maker conocido como PRBS23 ha liberado el controlador de la parrilla MasterBuilt Gravity 800 de su firmware propietario. El resultado es un firmware de código abierto que aporta control de temperatura PID, actualizaciones inalámbricas (OTA) y una interfaz web en tiempo real. El trabajo parte de una ingeniería inversa completa del firmware original, haciendo que el dispositivo sea mucho más transparente y personalizable.

El controlador original fue abierto cuidadosamente, revelando un ESP32 y un cabezal de programación bien etiquetado. Gracias a esto, el autor volcó el firmware original utilizando la utilidad espflash. El análisis del volcado mostró una función de corrección ADC no estándar, un detalle importante para la lectura de temperatura. Adicionalmente, el controlador para la pantalla segmentada CS1621 fue implementado utilizando la documentación disponible.

El nuevo firmware incluye control de temperatura PID, el cual mantiene las brasas estables con precisión. Las actualizaciones inalámbricas simplifican el mantenimiento, y la interfaz web en tiempo real permite monitorear la parrilla desde cualquier dispositivo. Todo esto corre sobre un ESP32, la misma placa que el controlador original. Para aquellos que deseen rehacer el trabajo en un banco de pruebas, una placa de desarrollo ESP32 con 32 GPIOs monta el mismo microcontrolador que el controlador original, con todos los pines accesibles.

¿Cómo se realizó la ingeniería inversa paso a paso?

El proceso de ingeniería inversa fue metódico y bien documentado. Tras abrir el controlador, el cabezal de programación permitió volcar el firmware sin dificultades. El análisis del volcado reveló la corrección ADC no estándar, la cual tuvo que ser replicada en el nuevo firmware para obtener lecturas precisas. Finalmente, el controlador para la pantalla segmentada CS1621 fue escrito desde cero, basándose en documentación pública.

La comunicación con la pantalla opera a 9600 baudios, un detalle que surgió del análisis del firmware original. Adicionalmente, la corrección ADC implica un desfase de 40 grados Fahrenheit, el cual debe aplicarse para alinear las lecturas con la realidad. Estas cifras son esenciales para cualquiera que desee replicar o extender el proyecto. El trabajo demuestra que liberar un dispositivo IoT de un firmware propietario es un excelente uso de la ingeniería inversa.

¿Qué ofrece el nuevo firmware de código abierto?

El firmware de código abierto hace más que replicar las funciones originales. El control de temperatura PID es mucho más preciso que el control de encendido-apagado original. Las actualizaciones inalámbricas eliminan la necesidad de conectar físicamente la placa para cada cambio. La interfaz web en tiempo real hace que el monitoreo de la parrilla sea conveniente e inmediato. Todas estas características corren en un ESP32, el cual puede programarse con herramientas estándar.

  • Control de temperatura PID para brasas estables
  • Actualizaciones inalámbricas para mantenimiento remoto
  • Interfaz web en tiempo real para monitoreo
  • Controlador CS1621 implementado desde cero

El proyecto es un ejemplo perfecto de cómo la ingeniería inversa puede mejorar un producto comercial. También abre la puerta a personalizaciones que el fabricante nunca planeó. La lectura de temperatura se replica con un termistor NTC de 10 kohm, el mismo tipo de sonda que la parrilla utiliza en cuatro puntos. El código está disponible y bien comentado, por lo que incluso los usuarios menos experimentados pueden aprender.

¿Por qué importa este proyecto de liberación?

Liberar un dispositivo IoT de un firmware propietario es un acto importante. Hace que el dispositivo sea más transparente, más seguro y más fácil de mantener. También permite a los usuarios añadir funciones que el fabricante nunca planeó. El trabajo de PRBS23 en la MasterBuilt Gravity 800 es un modelo a seguir para otros dispositivos similares. Una ingeniería inversa cuidadosa puede convertir un producto cerrado en una plataforma abierta.

El proyecto también demuestra que no se requiere hardware especial para comenzar. Un ESP32 estándar, una pantalla segmentada y algo de paciencia son suficientes para lograr resultados notables. Para aquellos que prefieren una solución lista para usar, una pantalla de 7 segmentos de cuatro dígitos puede reemplazar la original sin reescribir el controlador CS1621. Finalmente, la documentación publicada por el autor es un excelente punto de partida para cualquiera que desee profundizar.

Vía Open Electronics.