Close
0%
0%

PhatStats PC Performance TFT Display

Arduino TFT PC Performance Monitor with Client software

Similar projects worth following
PhatStats ili9341 TFT PC Performance Monitor Display

PhatStats (TFT) 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 Phat-Stats 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

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.

http://tallmanlabs.com

http://runawaybrainz.blogspot.com/

https://github.com/koogar/HardwareSerialMonitor

https://github.com/koogar/Gnat-Stats

Gnat-Stats (OLED) has moved to a new project page here

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

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

GPL v3

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 http://www.gnu.org/licenses/.

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

WeeStatServer-0.5.2_Libre.0.9.3-pre256_Binary.zip

Alternative to HardwareSerialMonitor but uses LibreHardwareMonitor libraries. Requires .net6

x-zip-compressed - 3.96 MB - 10/06/2023 at 15:16

Download

HardwareSerialMonitor_v1.4.4_9600_OHM.0.9.6.1.PR_NET4.8_Binary.zip

added experimental Intel Jasper Lake Support added experimental Intel Rocket Lake Support added experimental Intel AlderLake support added Alde Lake Mobile support added Intel RaptorLake support Boris Vogel https://github.com/BrsVgl/openhardwaremonitor

x-zip-compressed - 1.46 MB - 09/22/2023 at 11:57

Download

x-zip-compressed - 171.34 kB - 06/20/2023 at 00:27

Download

x-zip-compressed - 272.40 kB - 06/20/2023 at 00:24

Download

TachoStats_V3.1.7.1_SeeedRoundDisplay.zip

https://www.seeedstudio.com/Seeed-Studio-Round-Display-for-XIAO-p-5638.html Seeed Studio Round Display for XIAO - 1.28-inch round touch screen, 240×240 resolution

x-zip-compressed - 180.38 kB - 06/20/2023 at 00:07

Download

View all 11 files

View all 8 project logs

View all instructions

Enjoy this project?

Share

Discussions

Alvaro rubio wrote 02/03/2021 at 19:44 point

hola de nuevo alguien me puede decir como tengo que conectar  LOS PINES de un lcd ILI9341 a la placa STM32 ? LO AGRADECERIA MUCHO

  Are you sure? yes | no

Alvaro rubio wrote 02/03/2021 at 18:25 point

como tengo que conectar el arduino en el lcd de 320x240

me refiero al esquema electrico

  Are you sure? yes | no

Alvaro rubio wrote 02/02/2021 at 15:21 point

Hola buen dia tengo varias preguntas 

puede conectar un lcd 240x320  a arduino pro micro , si es así como tengo que conectar los pines y en que lugar 

  Are you sure? yes | no

Rupert Hirst wrote 02/02/2021 at 18:14 point

GnatStats_TFTonly_ProMicro_STM32_V1.5b

TFT Version 1.5 : STM32 BluePill & ProMicro Suppport
: 128x160 ST7735 & 240x320 ILI9341 TFT Support

  Are you sure? yes | no

Alvaro rubio wrote 02/03/2021 at 12:02 point

vale y solo con instalar esa version en arduino y conectarla deberia encender??

  Are you sure? yes | no

Chris wrote 01/31/2021 at 03:22 point

I read this a few times and I still can't find the answer to this. What hardware did he use for the Green/red circle around the display? I can't find info on that.

  Are you sure? yes | no

Rupert Hirst wrote 01/31/2021 at 17:58 point

Adafruit NeoPixel Ring - 16 x 5050 RGB LED  

It was never mentioned as it was an example of what you could make.

It could just as easily be a strip rather than a ring "There is no spoon" :)

The code for the NeoPixel Gauge is in the relevant sketches. (NeopixelRingGauges.ino)

The file for the graphic is in the files section but you will need a vinyl cutter, I used a Cricut Explore.

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

Gnat-Stats circular tachometer dial overlay graphic

Gnat-Tacho Overlay 47.75mm v2.zip 

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

Supported Arduinos for the  NeoPixel Tachometer  Gauges

Atmel 32u4 based 

Atmel ATSAMD21 Based

  Are you sure? yes | no

evl wrote 01/25/2021 at 15:57 point

Hi guys, please help a noob. I got this error and I have no clue what to do.

'DisplayStyle1' was not declared in this scope

  Are you sure? yes | no

Rubbernail wrote 01/28/2021 at 15:57 point

I think we need more details about that.

What board, screen, file

  Are you sure? yes | no

Rupert Hirst wrote 01/30/2021 at 00:33 point

more details pls

  Are you sure? yes | no

estebangmn wrote 01/03/2021 at 21:01 point

Hello Guys¡, i have the SMT32 and the clone of promicro board but, do you know some more powerful boards that also support this proyect?, in the promicro there is limitation with the strip leds, i need some board that is more powerful than the blue pill or the clone of the promicro and also compatible to use with this project, THX¡

  Are you sure? yes | no

Rupert Hirst wrote 01/03/2021 at 23:37 point

What do you mean by more powerful?

All of the chips are more than powerful.

The Limitation of the ProMicro is memory 

On the  STM32 the Neopixel needs to share the SPi bus and it affects the TFT.

The ATSAMD21 would be the best option as it is fully supported by Adafruit libraries.

  Are you sure? yes | no

estebangmn wrote 01/04/2021 at 09:13 point

thank you rupert, i am the fan number one of your project, i would like to build a led indicator of two strips with 144 leds each one but the promicro only alows like 30 leds, will be like a large bar indicator using the strips but i need a board that support much leds for that, about the screen do you know some screen more expensive and with more qualityt to show the data and supported?

  Are you sure? yes | no

estebangmn wrote 01/07/2021 at 12:28 point

rupert, when i connect leds to the pin PA7 of the STM32 i got my leds blinking only, there is no response at all, why is that?

  Are you sure? yes | no

estebangmn wrote 02/01/2021 at 23:30 point

Rupert, im very curious about write or edit my own software in windows, i where thinkin about edit or build a new hardware serial monitor, i choose this ine bs i feel very familiar with it already, maybe just watch the line codes and learn how communicate with the gnatstats monitor, the thing is that i dont know even from where start, i mean, in wich language is wroten, what is the platform i must use to build or just edit the hardware serial monitor?, sorry by the question Rupert but im trying to write my own first software in windows and i would like to see the code of the hardware serial monitor to end of understand how the whole project works and learn how a software in windows is wroten, very very interesting for me this part, thx in advantage

  Are you sure? yes | no

Rupert Hirst wrote 02/03/2021 at 16:22 point

"Rupert, im very curious about write or edit my own software in windows, i where thinkin about edit or build a new hardware serial monitor"

HardwareSerialMonitor is a MS Visual Studio project mostly in C#

You can download the community edition of  VS for free.

The HardwareSerialMonitor Source code is in a Zip file in the download.

Open the HardwareSerialMonitor.csproj in VS. 

On the right hand side in the "solutions explorer" find "Form1.cs" right click and "View Code"

All of the code for reading the OpenHardwareMonitorLib.dll and  sending the serial string to the arduino are in the "Form1.cs"  file 

You could just open "Form1.cs" in "Programmers Notepad" or "Notepad++"

if you just want to look.

reference stuff: https://github.com/openhardwaremonitor/openhardwaremonitor

         https://github.com/LibreHardwareMonitor/LibreHardwareMonitor

  Are you sure? yes | no

Rupert Hirst wrote 01/09/2021 at 23:05 point

"rupert, when i connect leds to the pin PA7 of the STM32 i got my leds blinking only, there is no response at all, why is that?"

PA7 is an SPi MOSI pin.

You can not effectively run a SPi TFT and Neopixels on the STM32 due to the DMA restrictions of the STM32 Neopixel library. 

That's why I didn't include it.

Works fine on the ATSAMD21 using the Neopixel Zero DMA Library.

https://learn.adafruit.com/dma-driven-neopixels

 "i would like to build a led indicator of two strips with 144 leds each one but the promicro only alows like 30 leds,"

May i ask why you need so many pixels? :)

I think i read the ATSAM21D can drive 8000 pixels.

  Are you sure? yes | no

estebangmn wrote 01/10/2021 at 10:22 point

"May i ask why you need so many pixels? :)" i wanted to build 4 large bars of 144leds each one with the project, they are cheap and looks amazing but the promicro dont allow more than 40 pixels i think in total, this is a technical question Rupert, im also electronics technician but not engineer, i would like to know what is the spec in the microprocessor who tell you that will allows 8000 pixels like you said, thanks in adavance

  Are you sure? yes | no

Rupert Hirst wrote 01/10/2021 at 16:12 point

"what is the spec in the microprocessor who tell you that will allows 8000 pixels"

As long as the MCU is fast enough, the limitation is the amount of memory it can allocate.

The Teensy4 can run 30,000 pixels

ARM Cortex-M7 at 600 MHz
Float point math unit, 64 & 32 bits
1984K Flash, 1024K RAM (512K tightly coupled)

  Are you sure? yes | no

estebangmn wrote 01/12/2021 at 19:08 point

but this is compatible with the project?, is even better than ATSAMD21?

  Are you sure? yes | no

Rupert Hirst wrote 01/12/2021 at 19:38 point

"but this is compatible with the project?, is even better than ATSAMD21?"

I do not know, I do not have a Teensy. 

I have it running on my desk with neopixels  on a  ATSAMD21 Feather M0   

  Are you sure? yes | no

Rupert Hirst wrote 01/12/2021 at 22:43 point

Yes it should work

  Are you sure? yes | no

estebangmn wrote 01/12/2021 at 22:48 point

THX rupert you're the man

  Are you sure? yes | no

estebangmn wrote 01/12/2021 at 23:10 point

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

the most i like personally is the oled version but also the new version of the LCD looks great, one of the two screens looks much brighter than the other i have "the smaller one", they come from different distributors i think, size is also diferent

  Are you sure? yes | no

Rupert Hirst wrote 01/12/2021 at 23:24 point

I like the OLED version also but it needs more resolution

You should try the "Non Blinking" version of the sketch it was a lot of work! :)

https://youtu.be/-b1WhIz9ZzI

  Are you sure? yes | no

estebangmn wrote 01/02/2021 at 16:23 point

hello, someone know the setup to flash a STM32 board with arduino IDE already showing mapple mini in the usb?. last version 1.58b

 i tried to compile and flash selecting like board STM32F103C8T6, i get error trying to compile for any SMT32 boards"

exit status 1
Error compilando para la tarjeta Generic STM32F103C series."

and if i try some arduino boards i get this error 

"'PB11' was not declared in this scope"

 my SMT32 board is ready and recognized like mapple mini in the usb IDE ports

can someone help me?

  Are you sure? yes | no

ragook wrote 01/02/2021 at 18:10 point

Does the Blink sketch work?

What Core are you using?

"'PB11' was not declared in this scope"  is usually the result of the wrong core or board selected , it does not recognize the pin numbering.

  Link Below for the STM32 Bootloader and Arduino Core (you may have to install the Arduino Due core also for the compiler.

https://github.com/rogerclarkmelbourne/Arduino_STM32

https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries

BluePill_generic_boot20_pc13.bin  (pc13 refers to the LED pin)

Adafruit_GFX Version 1.8.0 and higher doesn't compile for STM32 Boards- Downgrade to Adafruit_GFX Version 1.7.5 in the library manager.

Hope this helps :)

  Are you sure? yes | no

estebangmn wrote 01/02/2021 at 18:15 point

thank you very much, yes the blink sketch works and now i can even programm without the adapter, i can programm directly by usb, so i must add this links to the arduino files folder?, and wich board i must select?

https://es.aliexpress.com/item/32495902134.html?spm=a2g0s.9042311.0.0.274263c0zCZn1Q

  Are you sure? yes | no

estebangmn wrote 01/02/2021 at 18:47 point

it's working already, the problem was the version of Adafruit_GFX Version, down to 1.7.5 and works at the first try, love at the first sight, cool¡

  Are you sure? yes | no

R▲ wrote 12/22/2020 at 15:07 point

Folks, I need some help. 

1. My hardware:
- MICRO LEONARDO ATmega32U4 
- SSD1306 BLUE Arduino SPI I2C
2. Installed Open Hardware Monitor
3. Flashed Arduino with GnatStats_ProMicro_OLED_V1.32b. 
- Included all the necessary libraries
- Uncommented these items:
#define OLED_SSD1306
#define enablepowerPins
#define powerPins  //(VCC, GND, SCL, SDA) 
- Picked "Ardunio Leonardo" board and "COM4" port it Tools
- Veryfied sketch, uploaded successfully
4. Installed Hardware Serial Monitor v.1, running as Admin

My screen is black. What am I missing here? 

  Are you sure? yes | no

R▲ wrote 12/22/2020 at 20:07 point

Okay so I've tested D4 and D5 pins with multimeter, and it turned out that they weren't giving 5V. So I've wired VCC and GND pins of the OLED display directly to Arduino's VCC and GND. It did the trick!

  Are you sure? yes | no

git-toor wrote 12/18/2020 at 10:30 point

Hi Guys,

openserialmonitor doesnt give cpu temp reading for some reason, I wrote a simple python script to print all sensor names and values and it doesnt show the cpu temps. Any idea what might be wrong there. I tried other applications like HWinfo and HWmonitor and they all show cpu temps just fine.

  Are you sure? yes | no

Rupert Hirst wrote 12/18/2020 at 14:38 point

on what PC hardware?  which Arduino?

  Are you sure? yes | no

Tomas wrote 12/20/2020 at 18:25 point

I have the same problem, ryzen 3600, temperature not reported, and clock speed on screen 2 shows percentage use. Using arduino pro micro and oled screen

  Are you sure? yes | no

Lucas wrote 12/27/2020 at 15:34 point

tries to run HardwareSerialMonitor as an administrator. I had the same problem but when I run as an administrator the program works normally

  Are you sure? yes | no

Benjamin wrote 12/04/2020 at 18:11 point

Hi everyone. :)

I currently try to recreate this project and am stuck at the point where I need to flash the firmware on the arduino. I have an Arduino Micro and the SSD1306 128x64 OLED screen.

With a test-firmware from a tutorial I get the screen working, but the GnatStat V1.41 firmware doesn't show me anything on the screen after flashing. I already double checked the SDATA and SCLK Pinout, included an Reset-Pin and went over all the needed definitions in the firmware-script.

Any ideas what I could have made wrong? 
https://imgur.com/a/gLAI1iH


  Are you sure? yes | no

Rupert Hirst wrote 12/07/2020 at 18:53 point

Hi Benjamin

Looks like your using the SPI version of the screen not the i2C

BTW although the code shows "OLED_RESET" it does not get connected physically

If the screen is also i2C compatible try using Gnat-Stats sketch 1.32b

it is specifically for the 32u4 based Arduino's only

  Are you sure? yes | no

archieve.minimadrid wrote 12/01/2020 at 22:53 point

Hello everyone. First i would like to thank the developers for this nice project. I would love this to keep evolving as its a very nice monitoring setup.

I managed to run the TFT 1.5 version with an Arduino Pro Micro 5V and a 2.8 ILI9341 screen. After properly setting up the pro micro in the Arduino IDE, and flashing the software (prior commenting and uncommenting my hardware in the Configuration.h file) it works as it should. I had to add 2.2K resistors (what i had around) between all pins of screen and Arduino (except VCC, GND and LED pins) because as others commented, the screen does not properly manage 5V signals even if it says so. 

So after wiring the resistors my setup is working nicely! Two things im doubtful:

HardwareSerialMonitor V1.1a its supposed to use Librehardwaremonitor dll library (as it says in the Arduino code) but i think it does not. The DLL incluided is from OpenHardwareMonitor dll, version 0.82. I've manually changed it for the 0.95 version, but for my hardware it does not detect all parameters as it should. Im running a Ryzen 5800X and a RTX3080, so not all data is displayed, for example, cpu temp, and cpu frequency. OpenHardwareMonitor software is not able to fetch this info as its outdated. I would please ask the developers to move the support to the latest LibreHardwareMonitor library, as this one does properly detect the stats and gets updated frequently (OpenHardwareMonitor was forked, and its a dead project now)

- The second thing i would love to be able is to have more screen layouts with better graphics, or at least some documentation to be able to redesign myself, or even better, have different layouts made by the community. That would be awesome. I would love to know how could i add different parameters fetched from the Open/Libre library.

So thanks again, i hope that at least LibreHardwareMonitor library is properly supported soon. Please tell me if you need any help that i can provide. Thanks!

  Are you sure? yes | no

Rupert Hirst wrote 12/07/2020 at 19:01 point

At the moment we are stuck on OpenHardwareMonitor till it can be switched over to LibreHardwareMonitor, which for me will not be easy.

Older LibreHardwareMonitor was still compatible with a name change of the DLL, now it is not.

Originally, I was hoping people would modify the HSM source code and share. While a few people have taken the code as their own, other have added great features but do not share.

  Are you sure? yes | no

Edgaras wrote 11/27/2020 at 14:41 point

Hello peeps. Wanted to ask for help. I have succesfully managed to get it test-working with arduino uno (tested with this because I had faulty arduino micro pro), oled shows data with temps model number (ryzen 3600 and rtx 2060) interlaced with blanking lines. Upon some investigation (im not coder, my girl is) we faund out that original adafruit ssd1306 library has default setting for 128x32, so We changed the H file so it would be for 128x64, literally changed just one line of code. It started showing proper screen, correct resolution, but with no data anymore. Any ideas?

  Are you sure? yes | no

dehavok1 wrote 11/09/2020 at 15:50 point

Hi I am not getting any temperature values on a Ryzen 3700X and 5700XT. Any suggestions? Thanks

  Are you sure? yes | no

Cristian Caceres wrote 10/30/2020 at 12:23 point

Hi guys, i have the same issue, a ILI9341 and a Arduino Pro Micro (Atmel Mega 32u4) and only get a White Screen =( please help

  Are you sure? yes | no

ragook wrote 11/10/2020 at 12:15 point

Does the screen work when you use the standard Adafruit graphics test example?

  Are you sure? yes | no

Cristian Caceres wrote 11/10/2020 at 12:34 point

with the adafruit script it does nothing, with the Gnat script it shows only the white screen.

  Are you sure? yes | no

ragook wrote 11/11/2020 at 02:24 point

 If you can't get it working with the basic Adafruit ILI9341 sketch you need to check your wiring and pin assignments. I assume you have  uncommented the correct things in the "Configuration_Settings.h" tab in the gnatstats sketch.

  Are you sure? yes | no

Pogz wrote 10/21/2020 at 09:31 point

Anyone got pin connection with a TFT_ILI9341? Do I need a Logic Level Converter for it? I just get a white screen wiring it directly. 

This is the only one I cant get to work.

  Are you sure? yes | no

ragook wrote 10/21/2020 at 13:59 point

If your MCU is 5v you need a 1.5k resistor  on each of the CS/RST/DC/MOSI/SCLK connections

  Are you sure? yes | no

kyouko wrote 09/22/2020 at 18:18 point

Hi sorry if this question is a bit stupid but i'm new with using arduino's.

I bouth a STM32 (https://nl.aliexpress.com/item/32326304541.html?spm=a2g0s.9042311.0.0.2b354c4dfkrhiu)

and an SSD1306 (https://nl.aliexpress.com/item/32896205376.html?spm=a2g0s.9042311.0.0.2b354c4dfkrhiu)

my question is what pins do i need to connect because i couldn't really find documentation about these 2 together and they should work.

  Are you sure? yes | no

Pogz wrote 10/21/2020 at 09:29 point

Make sure you have the file GnatStats_ProMicro_STM32_OLED_V1.41_CFG

1.) Check Configuration_Settings.h

2.) Comment out #define ProMicro and uncomment //#define STM32_BluePill

3.) This is  your pinouts: 

- SDA connect to PB7 (B7) 

- SCL(SCK) connect to PB6 (PB7) 

- Ground and VCC pins on its corresponding pins. 

  Are you sure? yes | no

estebangmn wrote 01/02/2021 at 16:30 point

the pinout is explained in the documents of the arduino files

  Are you sure? yes | no

levan wrote 09/21/2020 at 13:06 point

Hello. how can i rotate display? i can not find this line in code? i have ST7735 1.8 inch display.

  Are you sure? yes | no

Pogz wrote 10/21/2020 at 09:18 point

/* Display screen rotation  0, 1, 2 or 3 = (0, 90, 180 or 270 degrees)*/

int ASPECT = 2;

on file Configuration_Settings.h

  Are you sure? yes | no

Tomas wrote 09/20/2020 at 06:32 point

Using HardwareSerialMonitor 1.1 the RAM String is not showing up any value. its R(BLANK)G

  Are you sure? yes | no

Pogz wrote 09/12/2020 at 08:34 point

Can anyone give me a working pin connection with a TFT_ILI9341? I got the TFT_ST7735 but not this bigger TFT_ILI9341? 

My current connection is (following the writeup) 

TFT_ILI9341 - Adruino Pro Micro
VCC - VCC
GND - GND
CS - 10
RES - RES (set to 0 on source)
DC - 9 
SDI (MOSI) - 16
SCK - 15
LED - 6
SDO (MISO) - 14

but all i get is just a white screen. any tips

  Are you sure? yes | no

ragook wrote 09/12/2020 at 15:58 point

Why do you need a working list when you dont have a ILI9341?

ProMicro SPi= CS:10 RST:0 DC:9 SCLK:15 MOSI:16    MISO isnt needed

Backlight pin is 6

  Are you sure? yes | no

Pogz wrote 09/19/2020 at 07:50 point

i have the ILI9341 .. and im trying to get it to work for it (i have already made it work for ST7735 (as i previously posted) so i dont know what you meant by " you dont have a ILI9341" 

  Are you sure? yes | no

Pogz wrote 09/19/2020 at 08:23 point

FYI, I did follow the pinouts as recommended. But again im just getting a white screen https://imgur.com/a/WL3P06W

  Are you sure? yes | no

Pogz wrote 08/30/2020 at 10:23 point

Any solution for the addtional white lines on the display? 

https://i.imgur.com/tXETp7U.jpg

Looks like adding an offset should fix? 

  Are you sure? yes | no

RolandoooR1 wrote 09/19/2020 at 20:45 point

I had the same problem. In the Setup ST7735 setup code, comment out the INITR_BLACKTAB and add the INITR_GREENTAB as shown below. This will correct it. 

  /* ST7735 SETUP */
#ifdef TFT_ST7735
  delay(100); // Give the micro time to initiate the SPi bus
  // Use this initializer if you're using a 1.8" TFT
  //tft.initR(INITR_BLACKTAB);   // initialize a ST7735S chip, black tab
  tft.initR(INITR_GREENTAB);
  tft.setRotation(ASPECT);// Rotate the display at the start:  0, 1, 2 or 3 = (0, 90, 180 or 270 degrees)
  tft.fillScreen(ST7735_BLACK);
#endif

  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