- Gnatstats Tiny OLED PC performance monitor & HardwareSerialMonitor Windows Client
by Rupert Hirst and Colin Conway
This project, assumes you have above average experience with Arduino, the IDE, compatible boards available and other related hardware.
The HardwareSerialMonitor application detects the sensors of most modern PC graphics, CPU and motherboards whilst, also pooling windows hardware stats.
This data is then sent over a serial com port to an Arduino Microcontroller running the GnatStats Sketch and displayed on the OLED/TFT display.
- ProMicro (Atmel ATMega 32u4) (Gnat-Stats) Note: supports Neopixels
- QT-PY / XIAO Atmel ATSAMD21 (Phat-Stats) Note: supports Neopixels
- BluePill Ti STM32F103C8 (Phat-Stats) Note: Does not support Neopixels!!!
- ESP32 LoLin32 / Lite / D32 (Phat-Stats) Note: supports Neopixels
ATMega 32u4 boards are more suited to (OLED) GnatStats . They do not have the required memory for (TFT) PhatStats.
- OLED : SSD1306 (i2c) or SH1106 (i2c) 128x64 Pixels (SH1106 is not supported on the ATSAMD21 due to library restrictions)
Note: SH1106 are usually screens over 0.96" but not limited to. The (GND/ VCC) pin out order is different, although, more recent versions have the same pin order as the SSD1306 (VCC/GND), buyer beware!!!
- TFT : Red PCB ILI9341 (SPi) 320x240 Pixels
Library and MCU core links are included within the Arduino sketch.
- Plug the Arduino into a dedicated USB Port, try avoid using a USB hub. Timings can be critical to avoid garbled or corrupted screen info
- HardwareSerialMonitor was designed for dedicated GPU's . Your mileage will vary with Integrated Graphics
My coding ability... eg: There is no CPU fan support, the CPU fan is a motherboard fan. It requires a motherboard chip to be detected, and the correct fan sensor.
I can only test the hardware I own. Overall it has worked with everything I have tried.
HardwareSerialMonitor and the way some things have to be detected. See (4) as it relies on the "OpenHardwareMonitorLib.dll"
OpenHardwareMonitor updates are few and far between.
Some PC hardware support for certain CPU / GPU's is lacking, particularly certain Ryzen CPU's.
HardwareSerialMonitor needs to be ported from the OpenHardwareMonitorLib.dll to the LibreHardwareMonitorLib.dll (open source) as this has more features such as network /ethernet and receives updates on a more frequent basis.
My time is limited, if you can help with this please get in touch, thanks.