Close
0%
0%

Gnat-Stats, Tiny OLED PC Performance Monitor

Arduino OLED PC Performance Monitor with Client software

Similar projects worth following
Gnat-Stats, Tiny OLED PC Performance Monitor.

After a recent purchase of a Nvidia GTX1080 graphics card, 4k monitor, plus Doom(2016), I thought it would be great to see some external telemetry..

I then Stumbled upon Psyrax's Hackaday.IO project.

Armed with an Arduino ProMicro and a 128x64 pixel OLED display, I compiled the source code.

The GnatStats Hardware Serial Monitor Visual Studio application is based around Psyrax's "SerialSender" Application , yet heavily modified by Colin Conway.

(Auto Reconnect, CPU/GPU Hardware Name ID's, Frequencies, Serial activity display timeout)

GnatStats_Release_V1.31.zip

Version 1.31: MOVE CONFLICTING!!! NEOPIXEL PIN TO 10, Option to trigger an event at a given CPU or GPU threshold eg: LED indicator at 100% CPU Load. Top Config option to disable all pre-selected power/gnd pins on Arduino pins D4 and D5 when not powering OLED from ProMicro Top Config option to disable/enable "activitychecker" (Enable blank screen on serial timeout eg: PC powered down, Disable to retain last sampled info eg: PC crash or overclocking diagnostics)

x-zip-compressed - 15.80 kB - 01/25/2019 at 17:42

Download

Gnat-Tacho Overlay 47.75mm v2.zip

Gnat-Stats circular tachometer dial overlay graphic

x-zip-compressed - 1.55 kB - 10/25/2018 at 22:21

Download

GnatStats Release v1.2.zip

Fix Freeze screen issue

x-zip-compressed - 13.64 kB - 10/18/2018 at 00:25

Download

GnatStats Release 1.1.zip

Initial release

x-zip-compressed - 10.70 kB - 10/18/2018 at 00:25

Download

HardwareSerialMonitor_v1.1.zip

Hardware Serial Monitor v1.1 compiled to .Net 4.6.2 (make compatible with LibreHardwareMonitor DLL)

x-zip-compressed - 5.48 MB - 10/17/2018 at 23:33

Download

  • 1 × Arduino ProMicro
  • 1 × SSD1306 or SH1106 OLED Display

  • Hardware Serial Moniitor v1.1

    Rupert Hirst10/16/2018 at 11:29 0 comments

    Hardware Serial Moniitor updated to v1.1

    Compiled with  .Net 4.6.2  to make use of LibreHardwareMonitor's updated  DLL (Fork of OpenHardwareMonitor) 

  • Gnats-Stats Updates

    Rupert Hirst10/16/2018 at 11:26 0 comments

    Version 1.3: 

    Top Config option to disable all pre-selected power/gnd pins on Arduino pins D4 and D5 when not powering OLED from ProMicro 

    Top Config option to disable/enable "activitychecker" (Enable blank screen on serial timeout eg: PC powered down, Disable to retain last sampled info eg: PC crash or overclocking diagnostics) 

    Option to trigger an event at a given CPU or GPU threshold eg: LED indicator at 100% CPU Load. 

    NeoPixel Ring CPU/GPU Bargraph example:

    Gnat-Tacho

    Custom overlay

View all 2 project logs

  • 1
    Step 1

    Gnatstats Tiny OLED PC performance monitor

    by Rupert Hirst and Colin Conway

    The HardwareSerialMonitor application uses the open source OpenHardwareMonitorLib.dll to sniff the sensors of most modern PC graphics, CPU and motherboards whilst, also pooling windows hardware stats.


    Part of Psyrax's original arduino sketch, is a "anti screen burn" feature. This feature, inverts the screen background (black - white), after a preset time, to give even wear to the OLED display. This feature has been extended to totally turn off the OLED screen when no serial data is available, such as PC power down.

    I wanted to keep the overall footprint as small as possible. The i2C pins on the ProMicro reside on D2(SDA) and D3(SCL). The displays i2c pins lined up but, obviously the power pins would be a problem.

    After measuring a current of 18.6mA on a fully lit OLED display, I decided to pull pin D5 High(5v) and D4 Low(to ground) on the ProMicro to providing the necessary VCC / GND for the display.

    ----------------------------------------------------------------------------

    OLED Pins: VCC GND SCL SDA

    ProMicro Pins: D5(HIGH) D4(LOW) D3 D2

    -----------------------------------------------------------------------------

    18mA is within the Atmel 32u4 maximum pin current limit of 20mA. This allowed the display to be simply soldered straight to the header of the ProMicro.

    The HardwareSerialMonitor application is based of Psyrax's original source code and heavily modified by Colin Conway to include additional hardware stats.

View all instructions

Enjoy this project?

Share

Discussions

alexyecla wrote 4 days ago point

Hi Rupert, thanks for your proyect i'd love it, I'm trying use your gnat-serial-monitor, and detects usage. and temps, but I want send more data like vram, voltage, cpu & gpu freq...so how I can add these parameters?? hope you can help me.

  Are you sure? yes | no

Belean wrote 01/12/2019 at 09:14 point

Hi Rupert! I've been looking for a project like yours for a long time. So thanks a lot! But I'm stuck with one meter to go, can you help me out? Everything works great, but the data is missing: no temp, no hardware names, just CPU...blank, GPU...blank, hertz...blank. I've an i7-7700 and a GTX 1080. Hardware Serial Monitor tray v1.1 is up and running. Any suggestions could be very useful to me, thank you!

  Are you sure? yes | no

Rupert Hirst wrote 01/13/2019 at 20:53 point

HI Belean,

Did you run HardwareSerialMonitor as Admin?

  Are you sure? yes | no

Belean wrote 01/13/2019 at 21:35 point

Thaks for your answer Rupert! Yes I did. HardwareSerialMonitor_v1.1. And OpenHardwareMonitor v0.8.0-beta works fine, if this can help. You can confirm that if I did everything right it should work even on an updated PC, right? There should be no external variables that could interfere with the project therefore?

  Are you sure? yes | no

Rupert Hirst wrote 01/13/2019 at 22:50 point

if you ran the app as admin and you have selected the correct com port from the tray it should work. The only other things that may effect it are folder permissions, the arduino Com port driver, Antivirus or a firewall blocking the com port.

  Are you sure? yes | no

Richardson Cherubini wrote 01/09/2019 at 21:52 point

Hello. Excellent project. I'm trying to reproduce this project, but I'm having the following problem. Can you give me a hand?

https://imgur.com/a/frKznmH

  Are you sure? yes | no

acid company wrote 12/11/2018 at 18:17 point

how to fix form1 windows problem on serialmonitor?

  Are you sure? yes | no

acid company wrote 11/24/2018 at 13:26 point

great project. thanks for share it but i want to same build for my pc. how i set up this parts and how i install to code in arduino? can u help me about this issue?

  Are you sure? yes | no

valentin-bykov-1990 wrote 11/13/2018 at 08:43 point

tell me please,what command do I need to write to display information about the gpu ram load?

  Are you sure? yes | no

Rupert Hirst wrote 10/21/2018 at 21:24 point

Asrul...  Which display have you got ?

  Are you sure? yes | no

Asrul Yol wrote 10/19/2018 at 22:45 point

hey Rupert, im really new to adruino. im trying to varify the scetch, and i got "splashscreen was not include in this scope" error. How do i fix this? 

  Are you sure? yes | no

Rupert Hirst wrote 10/20/2018 at 00:03 point

Hi,

Did you alter something in the sketch before you verified it? 

Did you download the libraries?

In arduino IDE 1.85 with correct libraries it should complie just fine.

Just because it complains about "splashscreens" does not mean the problem is with that. It could be something as simple as you deleted or  missed out a semicolon somewhere above, in the code.

  Are you sure? yes | no

Asrul Yol wrote 10/20/2018 at 12:11 point

hi.. i've find out the problem and able to upload the sketch.. but now no display.. can u help me on this.. i ve try as your previous comment below.. but still didnt light up.. any suggestion?

  Are you sure? yes | no

valentin wrote 10/19/2018 at 13:47 point

really very happy with this monitor. I will buy WS2812 digital leds right now ;)

  Are you sure? yes | no

PhuocBull wrote 10/16/2018 at 08:16 point

OMG ! This is so great !

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/15/2018 at 12:48 point

led is circuit module RGB?

  Are you sure? yes | no

Rupert Hirst wrote 10/16/2018 at 09:41 point

Its a NeoPixel ring with a custom cut overlay.  i would have posted more pics but hackadayio has a limit of 6 pictures.

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/16/2018 at 11:03 point

and on what contacts deduced? amazing thing happened))

  Are you sure? yes | no

Rupert Hirst wrote 10/16/2018 at 10:22 point

Glad to see Gnatstats/HardwareSerialMonitor detects your 8700k Coffee Lake

https://www.youtube.com/watch?v=8u8uStfVLHc

  Are you sure? yes | no

Rupert Hirst wrote 10/16/2018 at 11:36 point

I saw your CPU on the OLED display on Thingiverse ;)

If you are the same person as below 

valentin wrote 09/18/2018 at 20:41

I realized a shell in 3D printing from this project:

https://www.thingiverse.com/thing:3107543 "

But maybe i am wrong

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/16/2018 at 11:38 point

this is not me)

  Are you sure? yes | no

valentin wrote 10/19/2018 at 13:18 point

it's me ;)

  Are you sure? yes | no

kot0005 wrote 10/12/2018 at 23:31 point

Hi, Thanks for this Project. I am newbie using Arduino, So which one of the libraries do I use ?  I used all of them and when I upload it works but my oled screen doesnt light up. I made sure the pins outs are right.

  Are you sure? yes | no

Rupert Hirst wrote 10/16/2018 at 09:46 point

You have to use all of the libraries mentioned.

You have to uncomment  one of the lines for the perticular OLED display you are using...

//#define OLED_SSD1306
#define OLED_SH1106

or 

#define OLED_SSD1306
//#define OLED_SH1106

If your using a display with a ProMicro on the back as per the pictures 

you will need to uncomment

 //#define enablepowerPins

And uncomment the one below it in the sketch for you perticular screens power requirements.

check you have the correct polarity for the selected OLED screen!!!

Also make sure you i2c address correct in the sketch

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/12/2018 at 03:46 point

for itself decided to use this holder(his own and can convert it) https://ru.aliexpress.com/item/128X64-0-96-O/32871594368.html?spm=a2g0s.9042311.0.0.7a2833edrKLWbw

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/09/2018 at 14:29 point

Hello, very cool project, I would like to ask the question, is it Possible to add a second physical display with the output of information about the state of RAM and paging file?

  Are you sure? yes | no

Rupert Hirst wrote 10/09/2018 at 18:06 point

Yes it is possible but not with the present library. U8GLIB supports multiple screens, It would mean a extensive rewrite of the code.  I am not sure if open hardware monitor supports displaying the page file. 

  Are you sure? yes | no

valentin-bykov-1990 wrote 10/09/2018 at 18:38 point

it's sad, because I was ready to order two displays ((by the way there is an idea about the front panel for the case, if you make it out of black Plexiglas,the display will Shine through and off will also be nice. and please sorry, i use google translate))

  Are you sure? yes | no

Rupert Hirst wrote 10/11/2018 at 12:28 point

I  am working on a enclosure for a variant of GnatStats at the moment :)

  Are you sure? yes | no

Rupert Hirst wrote 10/08/2018 at 23:44 point

GnatStats Release v1.3

Version 1.3: 

Option to trigger an event at a given CPU or GPU threshold eg: LED indicator at 100% CPU Load. 

Top Config option to disable all pre-selected power/gnd pins on Arduino pins D4 and D5 when not powering OLED from ProMicro 

Top Config option to disable/enable "activitychecker" (Enable blank screen on serial timeout eg: PC powered down, Disable to retain last sampled info eg: PC crash or overclocking diagnostics)

NeoPixel Ring CPU/GPU Bargraph example

  Are you sure? yes | no

Rupert Hirst wrote 09/18/2018 at 21:06 point

Thats really great Valentin. I will be sure to link it in the next update :)

  Are you sure? yes | no

valentin wrote 09/18/2018 at 20:41 point

I realized a shell in 3D printing from this project:

https://www.thingiverse.com/thing:3107543

  Are you sure? yes | no

valentin wrote 09/07/2018 at 19:13 point

Hello, I started in the Arduino the screen works very well but I wanted to make sure that to change screen (D1 D2 and D3) you have to press a button. I have no resistance, so I want to put the button in INPUT_PULLUP. But I have a lot of difficulty. Can someone help me and send me the file?

  Are you sure? yes | no

B-Gits wrote 04/27/2018 at 00:40 point

Hi Rupert,
whats the pw for the ryzen zip file? I do have a ryzen and i am not able to get my temps displayed on my oled thingy.

Regards!

  Are you sure? yes | no

Diegomud wrote 04/12/2018 at 17:41 point

The project is excellent, but I have a problem, I have a screen nextion 2.4 '' 320x240, will it be possible to implement it without changing the code?

  Are you sure? yes | no

Rupert Hirst wrote 10/09/2018 at 18:07 point

Nope

  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