[Lex] over at Computing: The Details loves to make fun projects. Recently, they have created a hardware CPU monitor that displays how PCs are parallelizing compile tasks at a glance. The monitor is built from 14 analog meters, along with some WS2812 RGB LEDs.
Each meter represents a core on [Lex]’s CPU, while the final two meters show memory and swap usage. The meters themselves are low-cost 5 mA devices. Of course, the original milliamps legends wouldn’t do much good, so [Lex] designed and printed graduations that glue over the top. The RGB LED strip is positioned so two LEDs fit under each meter. The LEDs allow a splash of color to draw attention to the current state of the machine. The whole bank going red would sure get our attention!
The system is controlled by an Arduino Mega, with the meters driven using the PWM pins. The only extra part is a 1 kΩ resistor. The Arduino wrangles the LEDs as well. Sadly [Lex] did not include the software. They did describe it though. Basically they are using a Rust program to call systemstat, obtaining the current CPU utilization data in Linux. A bit of math converts this into pointer values and LED colors. The data is then sent via USB-serial to the Arduino Mega. The software savvy will say it’s pretty easy to replicate, but the hardware-only hackers among us might need a bit of help.
This isn’t the first custom meter we’ve seen on Hackaday. Your author’s first project covered by Hackaday was for a meter created using an automotive gauge stepper motor. I didn’t include source code either – but only because [Guy Carpenter]’s Switec X25 library had me covered.
Thanks for the tip, [TubeTime]!
A bit silly but also fun sort of project. But there are a few things a bit confusing.
Why start with 5mA meters? Is this the native current of these? (100uA used to be very common), or else 5V meters that can use direct PWM output from a microcontroller. Current meters with >100uA tend to have a parallel shunt resistor inside, while volt meters >100mV tend to have a series resistor.
And why is the swap space maxing out (@03:00 )? Is that 100% of 0 bytes swap space used? (Memory is at 30%).
I also do not see any description or repository for the soft & firm -ware. It’s not much effort to add those and it makes it a lot easier for others who want to build something similar.
I am running a Ryzen 9 5950X, I would need 34 meters. I don’t think it is a good idea for me. But great build!
32 RGB LEDs behind a 60s style military panel with switches to choose which core to show on a multimeter? :D
Au contraire, I think it would be an *awesome* build
I was thinking of putting together several 8×8 LED grids with WS2812B that can be bought cheaply from china for such setup. With that each CPU will have 8 RGB leds for a bar graph plus there will be a few left for network and storage.
Shades of the Krell, there. Like.
(Obscure reference to the 1956 version of Forbidden Planet)
Beat me to it! They need to be wrapped around the console-desk in a semicircle.
The lower part of the faces need to be opaque and reflective inside. In the photo the needles are barely visible.
totally! I immediately started thinking in that direction.
I like original CPU-Meters.
I’m currently transforming an aircraft RPM Meter into a CPU Meter.
This is amazing in every possible way!
Do that on a 64 core Threadripper, that would be incredible when doing renders on a 3d suite!