Een waarde in cijfers heeft altijd iets abstracts, wat tot interpretatiefouten kan leiden. Er is echter iets veel natuurlijkers aan het zien van een naald die van het ene uiteinde naar het andere beweegt. Met dat in gedachten besloot Lex van het kanaal «Computing: The Details» verschillende ampèremeters van 5 mA aan te schaffen en deze te combineren met een flinke dosis Arduino om een CPU-monitor te bouwen die het gebruik van elke beschikbare kern, het RAM-geheugen en de swap rapporteert.
We hebben in het verleden allerlei hardwaremonitoren gedeeld. Onlangs spraken we over CPU Temp, die de temperatuur nauwlettend in de gaten houdt, maar het is ook de moeite waard om oplossingen te verkennen op het niveau van Core Temp en HWiNFO.
Dat zijn echter softwareoplossingen, een stapel cijfers en grafieken op het scherm. Het idee om fysieke meters te gebruiken is niet bepaald nieuw (in feite hebben sommige behuizingsfabrikanten ze in oudere ontwerpen opgenomen, en ik herinner me bepaalde accessoires van Cooler Master), maar Lex van het kanaal «Computing: The Details» besloot er met een DIY-meter speciaal voor zijn huidige systeem op terug te komen.
De activiteit van de CPU en het geheugengebruik meten met ampèremeters
Een ongebruikelijk detail (of ik zou zeggen onverwacht) is dat Lex de code van zijn meter niet heeft gepubliceerd. Daar zit logica in: Lex vindt dat zijn tool erg specifiek is en alleen aan zijn behoeften voldoet. Dat zou een echte spiraal van GitHub-meldingen kunnen veroorzaken, en ik neem aan dat hij geen hoofdbrekens wil. Toch is de algemene beschrijving van zijn project erg nuttig en stuurt ons in de goede richting.
De meters zijn eenvoudige goedkope ampèremeters met een maximaal bereik van 5 mA, en ze worden aangesloten op de PWM-punten van een Arduino Mega met een weerstand van 1 kOhm. De ampèremeters kregen aangepaste schalen gemaakt in Inkscape, en een LED-strip (ook verbonden met de Arduino) zorgt voor de nodige kleur in de hele configuratie.
Aan de softwarekant bevestigde Lex dat hij Rust gebruikte om een klein programma te schrijven dat gegevens van systemstat op Linux haalt, de gegevens transformeert en naar de Arduino stuurt via USB-serial. Blijkbaar bevat de code enkele bugs (de swap-registratie staat altijd op maximum, en alle meters liepen vast in Blender), maar dat zijn kleine fouten. Persoonlijk hoop ik dat Lex van gedachten verandert en de code deelt voor een eenvoudigere versie met drie ampèremeters die algemeen CPU, GPU en RAM meet.