Une valeur exprimée en chiffres comporte toujours un élément abstrait pouvant donner lieu à des erreurs d'interprétation. Il y a pourtant quelque chose de bien plus «naturel» à observer une aiguille qui se déplace d'un bout à l'autre. Dans cette optique, Lex de la chaîne «Computing: The Details» a décidé d'acquérir plusieurs ampèremètres de 5 mA et de les combiner avec une bonne dose d'Arduino pour créer un moniteur de CPU qui indique l'utilisation de chaque cœur disponible, la mémoire RAM et le swap.
Nous avons déjà partagé toutes sortes de moniteurs matériels par le passé. Récemment, nous avons évoqué CPU Temp qui surveille de près la température, mais il vaut aussi la peine d'explorer des solutions comme Core Temp et HWiNFO.
Ce sont là des solutions logicielles, une pile de chiffres et de graphiques à l'écran. L'idée d'utiliser des jauges physiques n'est pas vraiment nouvelle (certains fabricants de boîtiers les ont d'ailleurs incluses dans d'anciens designs, et je me souviens de certains accessoires de Cooler Master), mais Lex, de la chaîne «Computing: The Details» a décidé d'y revenir avec une jauge DIY spécialement configurée pour sa machine actuelle.
Mesurer l'activité du CPU et l'utilisation de la mémoire avec des ampèremètres
Un détail inhabituel (ou plutôt inattendu) est que Lex n'a pas publié le code de sa jauge. La raison a sa logique : Lex estime que son outil est très spécifique et ne couvre que ses besoins. Cela pourrait déclencher une véritable spirale de rapports sur GitHub, et j'imagine qu'il ne veut pas de maux de tête. Cependant, la description générale de son projet est très utile et nous oriente dans la bonne direction.
Les jauges sont de simples ampèremètres à bas coût avec une portée maximale de 5 mA, connectés aux broches PWM d'un Arduino Mega via une résistance de 1 kΩ. Les ampèremètres ont reçu des échelles personnalisées créées dans Inkscape, et une bande LED (également connectée à l'Arduino) se charge d'ajouter de la couleur à l'ensemble.
Côté logiciel, Lex a confirmé l'utilisation de Rust pour écrire un petit programme qui récupère les données de systemstat sous Linux, les transforme et les envoie à l'Arduino via USB-série. Apparemment, le code comporte quelques bugs (l'enregistrement du swap est toujours au maximum, et toutes les jauges se sont bloquées dans Blender), mais ce sont des erreurs mineures. Personnellement, j'espère que Lex changera d'avis et partagera le code pour une version plus simple avec trois ampèremètres mesurant le CPU en général, le GPU et la RAM.