FBDASH - lightweight dashboard for the RaspberryPi without X (using framebuffer only)

In order to setup the dashboard start with cloning this repo ;) git clone https://git.klelifo.de/flo/fb-dash cd fb-dash

Connect the display to the RaspberryPi

Wire the display connector according to the connector scheme below.
NOTE: The 56 Ohm resistor is suggested for safety reasons - but it also seems to work fine wihtout it

ILI9341                         RaspberryPi
===============================================================
SDO/MISO ---------------------- MISO | GPIO 9  | PIN 21
LED ----------| 56 Ohm |------- PWM  | GPIO 18 | PIN 12 
SCK --------------------------- SCLK | GPIO 11 | PIN 23
SDI/MOSI ---------------------- MOSI | GPIO 10 | PIN 19
DC/RS -------------------------      | GPIO 24 | PIN 18
RESET -------------------------      | GPIO 25 | PIN 22
CS ---------------------------- CE0  | GPIO 8  | PIN 24
GND --------------------------- GND  |         | PIN 9,14,20,25
VCC --------------------------- 3,3V |         | PIN 1,17

Configure the display

TL;DR just run make rpi-config

Some work is needed before we can actually use the ILI9341 display with the RaspberryPi.
Essentially we need to

  • Enable the SPI interface
  • Load the fbtft_device kernel module with the correct parameters to get a working /dev/fb1 framebuffer device.

Enable SPI interface on the raspberry pi

echo "dtparam=spi=on" | sudo tee -a /boot/config

Activate modules to be loaded at boot

echo "spi_bcm2835" | sudo tee -a /etc/modules
echo "fbtft_device" | sudo tee -a /etc/modules
echo "options fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18" | sudo tee -a /etc/modprobe.d/fbtft_device.conf

Setup fbdash binary

TL;DR just run sudo apt install -y libmariadb2 && make install

After the display is setup we can build and install the fbdash binary.

Build the sources

sudo apt install libmariadb2
make

Install in /usr/bin

sudo make install

Test it

fbdash

Use systemd for regular updates

While we could also use cron for regular execution of the fbdash binary I opted to use systemd this time.
The future is now ... ;)

Install unit files

TL;DR just run make systemd-config

The following files use systemd to setup a regular update of the dashboard screen (60s by default).
If you like to change the default, just edit the fbdash.timer file before reloading systemctl

sudo cp setup/fbdash.service setup/fbdash.timer /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable fbdash.timer
sudo systemctl start fbdash.timer

Check timers

systemctl list-timers
NEXT                          LEFT       LAST                          PASSED      UNIT                         ACTIVATES
Wed 2022-05-04 14:16:10 CEST  28s left   Wed 2022-05-04 14:15:10 CEST  31s ago     fbdash.timer                 fbdash.service
...
Description
FBDASH - lightweight dashboard for the RaspberryPi without X (using framebuffer only)
Readme 8 MiB
Languages
C 96.5%
Shell 3.2%
Makefile 0.3%