Back to notes

published 2026-04-11

I rewrote the Pironman 5 service in Go to reduce RAM overhead

l-you avatarl-you

I use a SunFounder Pironman 5 on a Raspberry Pi 5 server, and I genuinely like the case hardware. What I did not like was the software overhead.

The original Python-based service was using roughly 70-110 MB of RAM for fan control, RGB, OLED pages, config, logs, and a daemon. For what this service actually does, I considered it too heavy.

So I rewrote the Pironman 5 essentials daemon in Go for my own use:

https://github.com/l-you/pironman5-go

The current version is not a strict drop-in replacement. I changed some APIs, simplified some behavior, and added a few features I wanted, such as custom OLED images from monochrome bitmap or PBM files.

I also left out the dashboard. For my use case, it was not essential.

If someone wants a version that is closer to the original essentials behavior, without the dashboard and with the same API surface, there is an earlier commit for that:

https://github.com/l-you/pironman5-go/commit/faeff568730a411a95ee3708839ab3612b9ee1f4

On my Raspberry Pi 5, the rewrite reduced RAM usage to about 10 MB, lowered idle CPU a bit, and reduced restart time from around 5s to less than 30ms.

I should also be clear about the status of the project. I created it for personal purposes. I use it myself, but I do not promise proper versioning, CI, or verified binary builds. If someone wants to use it carefully, building from source is the safer option.

One more practical detail: AI did almost all of the implementation work for the initial version, including the tests. I mainly provided the constraints, direction, and decisions about what should stay, what should change, and what should be removed. I am honestly impressed by how good the first usable version turned out.

This repository exists because I wanted a lighter Pironman 5 control service on my own Raspberry Pi. It solves that problem well enough for me.

featured attachment

My personal Rapsberry PI 5 + Pironman Setup