This is an external system information display for the Raspberry Pi 5. I took inspiration from Conky, and Conky Rings, and thought noticed how convenient it was to have that kind of information, but the one drawback to Conky is that it is only on the homescreen -- This becomes one of your peripherals and is always active.
The display shows the following:
- CPU temperature (in degrees Celcius)
- CPU load (in percent)
- RAM usage (as a percentage)
- Disk Space (As a fraction showing the current used space versus the total space)
- You need 4 female-to-female jumper wires to wire the LCD to the Pi
- A Raspberry Pi (I have only tested this on the pi5)
- An LCD screen. I used this one
OPTIONAL THINGS (that will improve your experience):
- A 3D printer
- Filament (I used BambuLab Matte PLA)
- 4 (or 2) M3 screws.
Install all of the dependencies by just running this command:
pip install -r requirements.txt
If you have it in a different directory, you should run this command instead, putting the actual path to your requirements.txt.
pip install -r /path/to/your/requirements.txt
Tip
Depending on how you have your Pi configured, it may request that you create a .venv
If you already have all of the necessary stuff to run your pi and everything in the list, you should be set!
First of all, you have to make sure that you have the i2c interface on your pi enabled correctly. You have to first go to the main menu, going to preferences, and then clicking on Raspberry Pi Configuration.

Then, click on the Interfaces tab, and enable i2c!

Follow this very convenient wiring chart that I have made:

Make sure that you have 4 female-to-female connectors so that you can wire everything together properly. If you did it right and your pi is powered on, the screen should light up. There may be a potentiometer on the back that you will have to adjust for contrast. You won't really be able to tell how it needs to be adjusted until you actually have the program running, so leave that alone for now...
Start by cloning the repository onto your machine, and configuring the externalsystemdisplay.sh file to direct the python run command to the location of your ExternalSystemMonitor.py file.
It will look something like this:
#!/bin/bash
sleep 20
python /home/(username)/externalsysteminfoRPI/ExternalSystemMonitor.py
You should replace the (username) with your actual username and modify it to actually be the location of the file. If you have cloned it properly, all the libraries will be configured correctly.
Once you have done that, make the file executable by running this command:
sudo chmod +x externalsystemdisplay.sh
This will allow the file to run.
Note
It is probably a good idea to just run ExternalSystemMonitor.py file to be sure that you have everything wired correctly and it works...
This code was testing by addind it to the crontab file. Here is the steplist to follow:
- Start by opening a terminal
- Type
crontab -e. You will be presented with a menu asking what editor you would like to open the file with. I highly recomend opening it with nano because it is the easiest option (As indicated on the menu).
Once you have it open, it should look something like this:

You are going to have to scroll all the way down to the end of the comments and add this line:
@reboot /home/(your name)/externalsystemdisplay.sh
You should replace (your name) with the actual name of the account on the pi. If you do not move the externalsystemdisplay.sh file to the home directory on your pi, you may have to modify the command to reflect that.
Once you are done you should press CTRL + X to exit and confirm any requests to save your changes.
If you have followed the instructions correctly, you should be able to reboot your pi (by running sudo reboot) or rebooting it from the power menu, and the program should successfully boot and update the LCD once a second with your system information.
If when you ran the ExternalSystemMonitor.py file, it did work, then there is likely a very simple fix. What is probably happening is that the program is trying to run before the i2c protocol is activated on your pi. What you should do is open externalsystemdisplay.sh and increase the value of the line that has sleep 20 to a larger number. This means that the pi will not run the program until later, and by that point, the i2c protocol will have been turned on already.
If you have any other issues than these submit an issue I guess...
You can find the 3mf files in the 3D files folder. They have some settings modified that I think will improve the print quality, such as enabling supports, and also adding a brim. On my Bambu Labs H2D, it prints in about 2.5 hours using the 0.2 mm layer height.
Important
When assembling the stand, I highly recomend first attaching all of your jumper wires to the LCD screen, passing them through the hole, screwing everything in, and only then connect > them to the pi. If you do not do that, you will have a very tough time.
To attach the screen to the stand, you will need 4 M3 screws. Just use the holes on the back of the stand to pass the screwdriver in.
MIT License. See LICENSE for details.
Portions of this project are adapted from rpi-lcd by Adam Bogdał, used under the MIT License.


