Maak een zakcomputer op basis van een Pi 3B+, een 3,5″ lcd-schermje , een Rii mini-toetsenbord, een Cyntech behuizing en een powerbank. Op de Pi zetten we als OS een 64-bit Bullseye lite (legacy).

Het voltooide project.
Een 3,5″ lcd schermpje, dat nog in de la lag om mee te experimenteren, was de aanleiding voor dit project. Het kleurenschermpje is met zijn resolutie van 320 x 480 pixels echt veel te klein om er zinvol een grafisch (desktop) OS op te draaien. Het moest sowieso een tekstterminal worden, en dan nog … Het schermpje past wel goed bij een oudere Pi waarop een desktop-interface toch al bijna niet te gebruiken is. En dat is in ons geval een Pi 3B+. In zijn tijd (2018) was deze Pi een grote stap voorwaarts, met 1GB werkgeheugen, een 1,4 GHz cpu en dualband wifi. WOW !
Aan de slag
We kozen als OS Bullseye (legacy) 64-bit en wel de lite-versie (dus zonder desktop). Het heeft geen zin om in de Raspberry Pi Imager je eigen instellingen vooraf op te geven voor netwerk etc., want die worden toch genegeerd. Het is het handigste om vóór het vastpinnen van het scherm op de GPIO-pinnen eerst een netwerkkabel, monitor en toetsenbord op de Pi aan te sluiten voor de eerste installatie van het systeem. Bij de eerste keer opstarten krijg je te maken met het script firstrun.sh, een wizard die je vraagt naar je toetsenbordvoorkeur en je een nieuwe gebruiker laat aanmaken (sinds 2022 is de standaard gebruiker met het standaard wachtwoord niet meer toegestaan). Daarna kun je inloggen en de rest regelen in raspi-config.
Vervolgens kun je de Pi uitschakelen en het scherm installeren. Dit verliep vlekkeloos via de online instructies van de fabrikant. Vanaf dit punt is het ook niet meer mogelijk een hdmi-scherm (erbij) aan te sluiten.
De eerste hobbel is het roteren van het scherm, want horizontaal zijn de letters niet makkelijk te lezen en verticaal wel. Dit gaat via een executable script van de fabrikant , rotate.sh (in de directory LCD-show), zoals in de instructies vermeld. Je moet er wel aan denken dat de default 0 is, dwz horizontaal met de USB-C aansluiting aan de onderkant. Daarna start het script automatisch een reboot.
Toch windows?
Om efficiënt met de beperkte schermruimte om te gaan, gebruiken we tmux, waarmee je het scherm toch in een soort windowsomgeving kunt opdelen. tmux is een erg uitgebreide tool, waarmee je eigenlijk alles kunt doen wat je maar wilt, als je maar diep genoeg in de handleidingen duikt. Het laat zich heel goed scripten en je kunt in je bash-script ook programma’s toewijzen (met ’tmux send-keys’) aan de diverse panes. In dit geval kozen we voor een verdeling van het hoofd-window in drie ‘panes’ (panelen). waarbij een eenvoudig bash-menuutje linksboven een aantal radiostations en een shutdown-optie bevat. VLC (cvlc in dit geval) zorgt voor het geluid. Hiernaast (rechtsboven) zit een supersmalle pane (met de dikte van een streepje) waarin de alsamixer draait om het geluidsvolume te regelen. De alsamixer zelf is dan niet te zien, maar werkt wel. Het grootste deel (70%) van het scherm is beschikbaar voor andere programma, zoals htop, een teksteditor (nano), een spelletje Zork en wat je maar wilt.
Daarnaast kun je meerdere windows met andere verdelingen opzetten, waar je doorheen kunt bladeren.
Sneltoetsen
tmux is te bedienen met toetsencombinaties. De standaard prefix-key is Ctrl+B en om bijvoorbeeld van pane te wisselen kun je na Ctrl+B een pijltjestoets indrukken. Je kunt een pane afsluiten door achter de prompt van die pane ‘exit’ te typen. Om het hele window te sluiten kun je eerst elke pane sluiten met het commando ‘exit’ en als laatste de window ook. Je kunt overigens de standaard sneltoetsen aanpassen aan je eigen smaak door een .tmux.conf bestand aan te maken. ……..
Software
vlc (cvlc) kan muziek afspelen van internetradio’s en muziekbestanden. Bij geen geluid moet je wellicht in raspi-config het geluid van hdmi naar koptelefoon omzetten
wikit is een zoekmachine voor wikipedia, vul achter wikit je zoekterm in. wikit heeft wel Node.js en npm nodig.
cmatrix de screensaver mag juist op een command-line computer niet ontbreken (gewoon cmatrix, of cmatrix -s -u 15 -C magenta) .
parted is de partition-manager waar het grafische GParted op gebaseerd is. Het zit al in Pi-OS
links2 is een browser voor de console. Het is behelpen, maar beter dan helemaal niets.
mail smtp werkt helaas niet. omdat versleuteling ontbreekt.
Wat gaming op de command-line betreft zijn text-adventures het handigste, bv. Zork .
Code
Bash-script voor het aanmaken en aankoppelen van een tmux-sessie in tmux:
#!/bin/bash # maak nieuwe session aan genaamd 'test': tmux new-session -d -s test # elke nieuwe sessie heeft al een eigen window, maar als je een tweede window in je sessie wilt kan dat met onderstaand commando (zonder #): #tmux new-window tmux split-window -v -p 70 -d # verdeel window vertikaal met het onderste deel op 70 procent tmux split-window -h -p 10 # verdeel window horizontaal met het rechtse deel op 10 procent # zet de focus op de eerste pane tmux select-pane -t 0 # wijs programma's toe aan de panes tmux send-keys -t test.0 '/home/pi/radio.sh' C-m tmux send-keys -t test.1 'alsamixer' C-m tmux send-keys -t test.2 'cmatrix -u 15' C-m # koppel de sessie met de naam 'test' aan tmux attach-session -t test # NB1: een sessie kan meerdere windows bevatten en ieder window kan meerdere panes bevatten. # NB2: gebruik in tmux Ctrl + b, q om de nummers van de panes te zien