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)

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.3.zip

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)

x-zip-compressed - 15.80 kB - 10/20/2018 at 00:11

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

acid company wrote 5 days ago 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

daniel_geiger wrote 01/09/2018 at 12:15 point

Can you add support for temperatures on Intel Coffee Lake? (i7-8700k w/ asus strix z370-e) Would be nice

  Are you sure? yes | no

Rupert Hirst wrote 02/05/2018 at 16:45 point

Some one needs to add the support on the Open Hardaware Monitor github then I can compile it

  Are you sure? yes | no

c wrote 12/30/2017 at 15:58 point

Please could you add support for temperatures on AMD Ryzen (particularly the r5 1600 on the asus prime b350-plus)?

 I've tried compiling https://github.com/openhardwaremonitor/openhardwaremonitor/pull/970 and https://github.com/LibreHardwareMonitor/LibreHardwareMonitor, both of which have ryzen support and looking through the source code but I can't spot a problem and neither works.

  Are you sure? yes | no

Rupert Hirst wrote 02/05/2018 at 16:47 point

i managed to compile Kraust's Fork here  0.8.1.0

https://github.com/Kraust/openhardwaremonitor

Added Ryzen Temperature Support (Off the Chip, not the Motherboard)

If you want to test the compiled DLL for Ryzen send me a PM with your email address

  Are you sure? yes | no

Tomas wrote 08/17/2018 at 00:44 point

please send me the ryzen compiled DLL, I have been working on this and I cant make the cpu core speed or the cpu temperature work..

  Are you sure? yes | no

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

Ryzen support seems an ongoing issue with all forms of open hardware monitor.

  Are you sure? yes | no

Hari Wiguna wrote 06/05/2017 at 12:53 point

Rupert, that's a crapton of info you packed into 64 pixel tall display! Fantastic!
PS: Thanks for following my Giant RGB LED Cube project!

  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