Gnat-Stats Tiny OLED PC Performance Monitor

Arduino OLED PC Performance Monitor with Client software

Similar projects worth following
Gnat-Stats Tiny OLED Performance Monitor Display

Phat-Stats (TFT)  project page is here

GnatStats (OLED)  form an Arduino serial display. HardwareSerialMonitor is a PC serial client, both are written by Rupert Hirst and Colin Conway.

HardwareSerialMonitor Windows client reads the hardware statistics from the PC.

This data is forwarded over the hosts’ serial  port to an Arduino compatible micro processor. It is then, displayed using the GnatStats(OLED)  sketch.

This project, assumes you have a above average experience with Arduino, the IDE and the compatible boards available.

The HardwareSerialMonitor was designed for dedicated GPU's . Your mileage may vary with Integrated Graphics

To help with construction there are hook up guides, links below:

Phat-Stats ILI9341 TFT Display Hook up Guide

Gnat-Stats SSD1306 / SH1106 OLED Display Hook up Guide

Going Forward:

The project needs to be ported over to LibreHardwareMonitor , a fork of OpenHardwareMonitor  for future support, as this gets a lot more updates for new PC hardware. If anyone can help please get in touch, thanks.

The above software/code is licensed under the following terms: 


GPL v2

Gnat-Stats, Phat-Stats & Hardware Serial Monitor Copyright (C) 2016 Colin Conway, Rupert Hirst and contributors

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; If not, see

HardwareSerialMonitor only was inspired by Psyrax's "SerialSender". Psyrax is given attribution and thanks, by being an honorary member of the project.

x-zip-compressed - 26.79 kB - 10/27/2021 at 23:30


Version 1.6 : ATSAMD21 SH1106 OLED Support (experimental)

x-zip-compressed - 215.64 kB - 09/05/2021 at 20:27


Version 1.5 : Add option to manually Change the name of the CPU/GPU + GPU RAM size. : Add option to change CPU/GPU name length eg: for newer Nvidia drivers : Change Baud rate to 115200 : Fix Seeeduino board file link

x-zip-compressed - 225.84 kB - 08/22/2021 at 17:23


ProMicro / Leonardo 32u4 SSD1306 & SH1106 OLED Version 1.4 : Add Some HardwareSerialMonitor v1.3 Features Add: Pinout Reference and link to Hookup Guide

x-zip-compressed - 29.50 kB - 08/22/2021 at 17:23


Version 1.33 : Add i2c Address change option Add Rotate Screen option Add NeoPixel Global Brightness

x-zip-compressed - 14.30 kB - 08/22/2021 at 17:23


View all 8 files

View all 6 project logs

  • 1
    Step 1
    • 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.


    Project principles:

    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 Gnat-Stats Sketch and displayed on the OLED/TFT display.


    Compatible boards:

    •    ProMicro   (Atmel ATMega 32u4) (Gnat-Stats)   Note: supports Neopixels
    •    QT-PY / XIAO Atmel ATSAMD21  (Phat-Stats)    Note: supports Neopixels

             Seeed Studio SAMD21 MCU:


    Compatible Screens:

    • OLED :  SSD1306 (i2c) or SH1106 (i2c)  128x64 Pixels 

    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!!!

    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


    Guides: Making an External Temperature Gauge Additional Tiny Performance Monitor for a Computer

    Technopat YouTube (Turkish)

    TallmanLabs: Gnat-Stats SSD1306 OLED Display Hook up Guide



                         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. 

    Going forward:

                               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.

View all instructions

Enjoy this project?



estebangmn wrote 07/31/2022 at 09:00 point

@Rupert Hirst , i have no temperature on the new version OLED for the pro micro, can't do nothing about it, tried everything..

  Are you sure? yes | no

kris-makes wrote 01/03/2022 at 12:03 point

what hardware are you using? are there pictures of the insides?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates