Wat te doen bij vreemde pixels langs de randen van het scherm - rwmodeltrain/departure-board GitHub Wiki
Problemen met de TFT drivers
Het blijkt dat de 1.8"TFT schermpjes soms wat andere technische specificaties hebben. De schermen die zijn gebruikt kwamen bij Conrad vandaan en waren van het merk 'Sainsmart'. De instellingen op de standaard image gaan ook uit van het gebruik van dit scherm. De laatste bestelling die bij Conrad vandaan kwam (zelfde bestelnummer), bracht een scherm dat er vrijwel hetzelfde uit zag, maar andere specificaties had. In dit geval ging het om een Joy-IT scherm. Dit scherm gaf bij aansluiten onderstaande problemen. Het zou zelfs kunnen zijn dat nieuwe versies van het Sainsmart-merk-scherm ook problemen geven, er zijn geen garanties. Gelukkig zijn de meeste problemen wel op te lossen, zie onder.
Mochten er problemen zijn met de weergave op het scherm, dan kan het nodig zijn om een andere driver te gebruiken in train.sh
. In de meeste gevallen werkt de regel zoals standaard ingesteld:
sudo modprobe fbtft_device name=sainsmart18 rotate=270
Mochten er vreemde randjes ontstaan, zoals bijvoorbeeld:
Dan is de uitvoering van het TFT scherm net iets anders dan nodig voor de sainsmart18
drivers. Probeer dan eerst om een andere driver te gebruiken, zie voor meer informatie de Github pagina's van de ontwikkelaar van e drivers: GitHub
Wat kan helpen:
sudo modprobe fbtft_device name=adafruit18 rotate=270
of
sudo modprobe fbtft_device name=adafruit18_green rotate=270
Mocht dit ook niet lukken en blijven er in het laatste geval nog een randje onder en links over, dan is een andere ingreep nodig. Hiervoor moet er een aanpassing in de kernel worden gedaan, waarbij de x en y positie van het scherm aangepast moet worden. Dit is bijvoorbeeld nodig bij gebruik van een Joy-it ST7735 scherm (RB-TFT1.8V2), deze ziet eruit als een sainsmart maar gebruikt net andere technologie.
Aanpassen van de kernel
Het aanpassen van de kernel is niet moeilijk, het duurt alleen erg lang (ongeveer 20 uur). Gelukkig hoef je daar zelf niet veel aan te doen.
de handleiding om de kernel te compileren staat hier, waarbij we tussendoor een aanpassing moeten doen in de driver-software.
Na de stap
https://www.raspberrypi.org/documentation/linux/kernel/building.md
is de volgende actie nodig:
Open het bestand fbtft_device.c
met:
sudo nano linux/drivers/staging/fbtft/fbtft_device.c
Zoek de volgende regels (waarschijnlijk kloppen de regelnummers ook nog)
1296 static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
1297 int xs, int ys, int xe, int ye)
1298 {
1299 write_reg(par, 0x2A, 0, xs + 2, 0, xe + 2);
1300 write_reg(par, 0x2B, 0, ys + 1, 0, ye + 1);
1301 write_reg(par, 0x2C);
1302 }
1303
En doe de volgende aanpassing:
1296 static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
1297 int xs, int ys, int xe, int ye)
1298 {
1299 write_reg(par, 0x2A, 0, xs + 1, 0, xe + 1);
1300 write_reg(par, 0x2B, 0, ys + 2, 0, ye + 2);
1301 write_reg(par, 0x2C);
1302 }
1303
Sla het bestand op (CTRL-X) en volg daarna de stappen van het compileren (dat wat lang duurt als lokaal wordt gecompileerd). Herstart de RPi.
Als het goed is ziet het scherm er dan beter uit:
Als deze modificatie nodig is dan is het ook nodig om de volgende regel te gebruiken in train.sh:
sudo modprobe fbtft_device name=adafruit18_green rotate=270 fps=30 speed=26000000