Über den Adafruit Raspberry Pi Video Looper soll die Simulation einer Kompakt-Kassette auf einem kleinen SPI-Display abgespielt werden. Da im Linux-Kernel 5 framebuffer nicht mehr unterstützt wird suchte ich eine Alternative. Und die heißt fbcp-ili9341.
Das display an sich wäre mit LCD-show schnell installiert. Aber der Pi Video Looper kann nur auf dem HDMI-Port ausgeben. Wir brauchen also eine Spiegelung des HDMI Monitors auf das SPI-Display, und das ist bei Raspberry Pi OS nur noch mit fbcp-ili9341 möglich.
Die Einrichtung geschieht folgendermaßen:
erst müssen wir den verwendeten Chipsatz recherchieren. Es handelt sich in dem Fall um dieses Modul:
Auf dieser Seite wurde ich fündig:
wir wissen nun daß es sich im Beispiel um einen ili9486 Chip handelt.
Entsprechend den Anweisungen bei git installieren wir nun erst mal die Grundsoftware fbcp-ili9341:
sudo apt-get install cmake
cd ~
git clone https://github.com/juj/fbcp-ili9341.git
cd fbcp-ili9341
mkdir build
cd build
dann bauen wir uns die cmake Parameter zusammen
cmake -DSPI_BUS_CLOCK_DIVISOR=40 -DWAVESHARE35B_ILI9486=ON -DUSE_DMA_TRANSFERS=OFF ..
Das Leerzeichen und die 2 Punkte am Ende des strings sind wichtig und gehören dazu. Der divisor von 40 ist evtl. recht hoch gewählt. Wir könnten später mit kleineren Werten optimieren. Den DMA-Transfer musste ich aber abschalten, sonst fror die Wiedergabe auf dem SPI-Display ein.
nach dem Ausführen der cmake Anweisung geht es weiter mit:
make -j
lt. Anleitung kann der Treiber nun mit:
sudo ./fbcp-ili9341
erst mal testweise gestartet werden. Bei mir erschien aber kein Inhalt auf dem display. Erst als ich den Aufruf in die rc.local eingebunden habe:
sudo /home/pi/fbcp-ili9341/build/fbcp-ili9341 &
für meine Kassettensimulation muss ich die Bildschirmskalierung aufheben. Um neue Parameter einzugeben wird der fbcp-Dienst mit sudo pkill fbcp beendet. Jetzt kann cmake mit den geänderten Parametern wieder ausgeführt werden, danach wieder make -j ausführen und unser Treiber kann wieder gestartet werden.
cmake -DSPI_BUS_CLOCK_DIVISOR=40 -DWAVESHARE35B_ILI9486=ON -DUSE_DMA_TRANSFERS=OFF -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON ..
Jetzt haben wir nur noch einen Bildschirmausschnitt, der vom Massstab her aber etwas zu groß geraten ist. Abhilfe schaffen wir durch Änderung der HDMI-Auflösung mit sudo raspi-config.
hier mit 640x480. Die Skalierung ist jetzt etwas zu klein.
Besser sieht es aus mit 720x480:
Jetzt schalten wir noch die Bildschirm-Statistik ab, weil sie störend ist.
der komplette string sieht jetzt so aus:
cmake -DSPI_BUS_CLOCK_DIVISOR=40 -DWAVESHARE35B_ILI9486=ON -DUSE_DMA_TRANSFERS=OFF -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSTATISTICS=0 ..
Die Größenverhältnisse sind jetzt realistisch und das Display kann in ein Kassetttenfach eingebaut werden.
ich habe noch eine weitere Anleitung gefunden:
Keine Kommentare:
Kommentar veröffentlichen