Skip to content

A configurable LCD dashboard with touch functionality for headless Raspberry Pi servers. (Optional without touch)

License

Notifications You must be signed in to change notification settings

araeubig/Raspberry-Pi-Dashboard

Repository files navigation

Raspberry-Pi-Dashboard

A configurable LCD dashboard with touch functionality for headless Raspberry Pi servers.

license

This repository is in progress for the first documented version. The current version works perfectly, but there are still a few fine adjustments to make the configuration easier - please be patient and visit again in some days. By searching for a solution to fulfill all important steps i found a repository as a very good starting point. I didn't create a fork because there are to many changes and enhancements. Therefore i started with this new repository. In the final README you will find all informations about the original repo, this repo and the changed parts.

First display test

About the project

As the Raspberry is to be operated as a server in the distribution cabinet, it not only needs a DIN housing, but also a display to show the most important system information. A solution with various green and red LEDs seemed more complex to me than simply connecting a display. Another requirement was to be able to restart and shut down the Raspberry using buttons or a touch display. Last but not least, the Raspberry should not only be supplied with power via PoE, but also offer an M.2 slot for an NVMe SSD - because this is the only way to ensure long-term operation without possible SD card failures. In addition, the space required for operation via PoE is reduced as there is no need for an additional power supply unit.

The search for the necessary components turned out to be more difficult than expected. The market offers only a few DIN housings for the Raspberry Pi - espacially for the model 5, and there are only a few displays with a touch option that are small enough to fit into the housing. The range of combined PoE-M.2 HATS is manageable, but more than sufficient.

While testing the possible components, I decided to document two variants for mounting on a DIN rail and another variant for desktop use:

  1. Configuration with 4M wide housing for exclusive power supply via PoE
  2. Configuration with 6M wide housing for power supply via PoE, 24V or 220V
  3. Configuration with standard housing for power supply via USB plug-in power supply unit without touch functionality

Use cases

As already mentioned in the introduction, the aim is to use the Raspberry as a headless server (i.e. without a screen) and to place it in a DIN-compliant distribution board. There it should perform its service, installed with any system according to the user's requirements.

In my case, I only need a 'lightweight' system to record data from the KNX system with:

  • InfluxDB
  • Grafana

In most cases, however, the Raspberry will certainly run as a server for

  • NodeRed,
  • HomeAssistant,
  • OpenHAB or
  • IOTStack (with the desired containers)

In the end, however, this is irrelevant, as it is all about DIN-compliant installation and the working dashboard.

Dashboard features

Upcoming version 0.1:

  • Record system data native in InfluxDB (without extra tools like Telegraf)

Current version beta 0.1:

  • Use with ST7789V2-based displays
    • portrait or landscape orientation
    • automatic resizing of text and fields based on display
  • Use with CST816T-based touch panels
    • control dashboard menu with gestures and buttons
  • Values
    • used RAM in percent
    • used CPU in percent
    • used HDD in percent
    • used SWAP in percent
    • current CPU temperature
    • current SSD temperature
    • current check if Influx is alive
    • Influx measurements of the last x-hours/days
    • current check if Grafana is alive
    • current upload/download transfer rate
  • Value visualisation
    • entire value range from 0 to 100 in text color
    • Set threshold for each value to switch from text color to 'alert' color. Alert color makes a fading from green to red based on the real value.
  • Switch with touch panel between
    • Dashboard
      • with configurated values
    • System information
      • IP adress
      • hostname
      • Raspberry Pi version
    • Reboot system
    • Shutdown system

Example screenshots

Waveshare 1.69" 240x280 display (landscape orientation)

Startup

Startup

Dashboard

Dashboard

System information

System information

Reboot

Reboot

Shutdown

Shutdown

Waveshare 1.69" 240x280 display (portrait orientation)

Upcoming

Phoenix Contact 2.4" 320x240 display

Upcoming

The text is much brighter on the small displays (based on the backlight and pixel-pitch)

Requirements

  • Raspberry Pi 5
  • Touch display that fits into the DIN housing / desktop case (preferably with ST7789V2 driver)
  • DIN case / standard case
  • 3D printed model of DIN Case top / desktop case cover
  • Python >= 3.9
  • NVMe-CLI Tool (if using Raspberry Pi with installed NVMe-SSD)

Recommended Hardware

Cases

DIN mount

Standard case

Displays

HAT's

  • Raspberry Pi M.2 HAT+
    • State: Tested
    • SKU: N/A
    • Use with: Raspberry Pi 5 with standard USB power supply
    • Supported form factors: 2230, 2242
  • Waveshare PoE M.2 HAT+
    • State: Tested
    • SKU: 28411
    • Use with: Raspberry Pi 5, DIN case
    • Supported form factors: 2230, 2242
  • 52Pi P33 M.2 PoE+ HAT
    • State: Tested
    • SKU: EP-0241
    • Use with: Raspberry Pi 5, DIN case 6M (Doesn't fit in 4M case)
    • Supported form factors: 2230, 2242, 2260, 2280
  • 52Pi M.2 NVME PoE+ HAT
    • State: Currently untested / Upcoming
    • SKU: EP-0240
    • Use with: Raspberry Pi 5, DIN case
    • Supported form factors: 2230, 2242

A review about combined HATs was made by Jeff Geerling GitHub / Blog on YouTube:

PoE+ NVMe beats Raspberry Pi to the punch

Accessory

Special

  • Oratek TOFU Board

    • State: Tested without case / case test upcoming
    • SKU: N/A
    • Use with: Raspberry CM4, perhaps DIN case 6M
    • Special features: M.2 Slot, Raspberry CM4, flexible power supply

    A review about TOFU Board was made too by Jeff Geerling on YouTube:

    Native M.2 NVMe on a Raspberry Pi - CM4 TOFU

Suitable configurations

DIN case, 4M

Upcoming

DIN case, 6M

Upcoming

Standard case

Upcoming

Assembly

Upcoming

Connecting the display

Upcoming

Waveshare 1.69" touch display

Upcoming

Waveshare 1.69" display

Upcoming

Phoenix Contact

Upcoming

Installation

Use with NVMe-SSD

If the Raspberry Pi is used with an M.2 HAT with an NVMe-SSD installed, the NVMe-CLI tool should be installed beforehand with this command:

sudo apt install nvme-cli

Download

Download this respository in your user folder with:

sudo apt-get install git
git clone https://github.com/araeubig/Raspberry-Pi-Dashboard

You could run the dashboard 'one-time' or as 'service'. For customizing and testing the one-time run makes sense. After customizing / configuring the service is the preffered option.

Run one-time

Start the dashboard with:

cd Raspberry-Pi-Dashboard
./run.sh

Stop the running dashboard with ⌃ Control + C

Run dashboard as service

Start the dashboard and run as service on boot with:

cd Raspberry-Pi-Dashboard
sudo ./create_service.sh

Stop dashboard service

Stop the dashboard service with:

sudo systemctl stop rpidashboard.service

Remove dashboard service

Remove the dashboard service with:

cd Raspberry-Pi-Dashboard
sudo ./remove_service.sh

Customizing

Upcoming

3D Models

Upcoming

Printing services

Upcoming

Print yourself

Upcoming

To Do's

Upcoming

Contribution

Upcoming

Credits

Upcoming

Disclaimer

Upcoming