Display for Orange Pi Zero

After figuring out the GPIO pin names of the Orange Pi Zero expansion port it is relatively easy to configure any TFT display as a FBTFT device attached over the SPI bus, as long as you know the name of the chip used to drive the LCD screen. Here is a list of all the chips supported by the Linux kernel out of the box.

The display I have is very similar to this 3.2″ Waveshare touch-screen display that uses the ILI9340 LCD driver (PDF) chip. It was only a matter of specifying the two GPIO pins used for DC (Data or Command) and RST (Reset) in addition to the SPI port.

  • H2+ port PA00 maps to GPIO 0, connected to RST
  • H2+ port PA03 maps to GPIO 3, connected to DC
  • H2+ SPI bus 1 is connected to the display module SPI pins.

The following command can be used to load the FBTFT device with the required configuration:

$ sudo modprobe fbtft_device custom name=fb_ili9340 gpios=dc:3,reset:0 speed=16000000 busnum=1 rotate=90

And then map the console output to the newly created framebuffer device:

$ con2fbmap 1 8

where 8 stands for /dev/fb8.

Here is the display running htop:

3.2″ TFT LCD Display for Orange Pi Zero Over SPI

Permanent Setup

Create a new file /etc/modules-load.d/fbtft.conf with the following content:

fbtft_device

Create another file /etc/modprobe.d/fbtft.conf with the configuration for the fbtft_device device:

options fbtft_device custom name=fb_ili9340 gpios=dc:3,reset:0 speed=16000000 busnum=1 rotate=90

Finally, edit /boot/armbianEnv.txt to map the console output to the framebuffer device during the boot, by appending the following:

extraargs="fbcon=map:8"

Never lose a single business lead or enquiry again! Get my latest plugin Storage for Contact Form 7 now!

Buy now for only $19 →

3 Comments

  1. Mark Birss says:

    Does your lcd screen output the kernel messages during boot up or just show login prompt ?

    Have you been able to set led screen brightness using pwm ?

    im using other small screen the adafruit22a

Leave a Reply