publicado 2026-04-11
Reescribí el servicio de Pironman 5 en Go para reducir el consumo de RAM
Uso un SunFounder Pironman 5 en un servidor Raspberry Pi 5, y la verdad es que me gusta el hardware de la caja. Lo que no me gustaba era la sobrecarga del software.
El servicio original basado en Python estaba usando aproximadamente 70-110 MB de RAM para el control del ventilador, RGB, páginas OLED, configuración, logs y un daemon. Para lo que realmente hace este servicio, me parecía demasiado pesado.
Así que reescribí el daemon esencial de Pironman 5 en Go para mi propio uso:
https://github.com/l-you/pironman5-go
La versión actual no es un reemplazo estrictamente compatible (drop-in). Cambié algunas APIs, simplifiqué algunos comportamientos y añadí algunas funciones que quería, como imágenes OLED personalizadas a partir de bitmaps monocromos o archivos PBM.
También dejé fuera el panel. Para mi caso de uso, no era esencial.
Si alguien quiere una versión más cercana al comportamiento original de essentials, sin el panel y con la misma superficie de API, hay un commit anterior para eso:
https://github.com/l-you/pironman5-go/commit/faeff568730a411a95ee3708839ab3612b9ee1f4
En mi Raspberry Pi 5, la reescritura redujo el uso de RAM a unos 10 MB, bajó un poco la CPU en reposo y redujo el tiempo de reinicio de alrededor de 5s a menos de 30ms.
También debería ser claro sobre el estado del proyecto. Lo creé con fines personales. Lo uso yo mismo, pero no prometo un versionado adecuado, CI ni builds binarios verificados. Si alguien quiere usarlo con cuidado, compilar desde el código fuente es la opción más segura.
Un detalle práctico más: la IA hizo casi todo el trabajo de implementación de la versión inicial, incluidas las pruebas. Yo principalmente aporté las restricciones, la dirección y las decisiones sobre qué debía quedarse, qué debía cambiar y qué debía eliminarse. Sinceramente, estoy impresionado de lo buena que salió la primera versión utilizable.
Este repositorio existe porque quería un servicio de control de Pironman 5 más ligero en mi propia Raspberry Pi. Resuelve ese problema lo suficientemente bien para mí.
