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