Build I'm a software engineer, but I haven't worked on a hardware project since I was in college 20 years ago. After lots of badgering by Ragnar and Empus, and several days of research into what might actually work, I broke down and started ordering parts. On December 2, I ordered a RPi 4b+ 2GB and a small OLED display. It arrived a few days later. Raspberry Pi with a Waveshare 2.23" OLED HAT running Waveshare demo code. The display came with a Python driver and some example code and was quite easy to set up out of the box. The demo software showed how to load a font and draw some basic system info to the screen. Perfect, since that's what I was planning to do with it! Let's get some more data on this thing, though. I know that I want to be able to do a WiFi survey of my yard, because if I don't have good WiFi coverage to the corners, I won't be able to stay online while mowing. So I need a WiFi signal meter. I also know that – while I'm mowing the lawn – I'll have to be running on battery power, because it's not practical to drag an extension cable around the yard. So I'll need a battery meter, too. What else can we display...? Pi running the first pass of my monitoring code. Might as well round out the top line with the current time. Uptime is good to have – good nerd stat. The IRC server software I wanted to use, ircu, built without needing any modifications, which was nice, so I got that up and running. I wrote a bot to track the IRC user count and put that on the screen. CPU, memory, and some network stats all fit, too. Looking really nice now! Look at that CPU usage, though. That 4% is 4% of all available CPU time. The Pi has 4 cores, and looking at top shows that the core running our monitoring software is the only one using any significant CPU time, so we're using 16% of one core just to update the screen once per second – way too much. Profiling the monitoring code shows that we're spending most of our time calling programs like mpstat, free, and iwconfig t...
First seen: 2025-08-18 23:48
Last seen: 2025-08-19 02:48