[GUIDE] Official Raspberry Touch Display 2

Dear Volumionauts,

The latest arrival from Raspberry Pi yielding 1280×720px resolution is making its way to our ecosystem. Details of the screen are available on Raspberry Pi website:

https://www.raspberrypi.com/documentation/accessories/touch-display-2.html

Based on Ilitec ili9881c DRM driver is not free from its own quirks.

Rotate screen without a desktop

Official documentation references appending to the /boot/cmdline.txt:

video=DSI-1:1280x720@60,rotate=<rotation-value>

Since native panel’s orientation is portrait, using above settings will divide screen into two parts and result into the artefacts burn. The parameters need to be reverted:

video=DSI-1:720x1280@60,rotate=<rotation-value>

DSI port enumeration from the overlay itself is shifted hence on Raspberry Pi CM4 or Raspberry Pi 5:

Physical connector Parameter
CAM/DISP 0 video=DSI-1:720x1280@60
CAM/DISP 1 video=DSI-2:720x1280@60

NOTICE:
None of the above parameters are for reference only.

Panel litec ili9881c DRM kernel driver

Crafted by Raspbery overlay does not have rotation attribute. As a matter of fact, all screens based on ili9881c follows orientation:

I have reported issue and raised pull request to:

Reported issues and raised PR are progressing nicely.

Using Official Raspberry Touch Display 2 with Volumio-OS

Until updated pi-kernel is released, Volumio team produces own version of the vc4-kms-dsi-ili9881-7inch overlay.

DT parameter Action
sizex Sets X resolution (default 720)
sizey Sets Y resolution (default 1280)
invx Invert X coordinates
invy Invert Y coordinates
swapxy Swap X and Y coordinates
disable_touch Disables the touch overlay totally
rotation Set rotation ccw: 0, 90, 180, 270

Volumio Configuration

The download and replace steps below are deprecated with Volumio-OS 3.781 or newer.

Until Volumio prepare stable update release containing corrected overlay, follow these steps.

1. Download vc4-kms-dsi-ili9881-7inch.zip (1.3 KB)
2. Unzip vc4-kms-dsi-ili9881-7inch.zip
3. Replace /boot/overlays/vc4-kms-dsi-ili9881-7inch.dtbo with downloaded vc4-kms-dsi-ili9881-7inch.dtbo

WARNING - Do not replace /boot/overlays/vc4-kms-dsi-ili9881-7inch.dtbo with downloaded vc4-kms-dsi-ili9881-7inch .zip! Unzip the file first.

Use values and parameters as follows:

Append parameter to the end of the /boot/cmdline.txt from corresponding orientation column. The parameter will be overwritten with OTA.
Add the following to your /boot/userconfig.txt irrespective of your Raspberry Pi SBC version:

[all]
display_auto_detect=1


Raspberry Pi CM4 and Raspberry Pi 5

Orientation /boot/cmdline.txt /boot/userconfig.txt
Portrait (native) video=DSI-1:720x1280M@60 dtoverlay=vc4-kms-dsi-ili9881-7inch
Landscape (rotated left) video=DSI-1:720x1280M@60,rotate=270 dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90
Landscape (rotated right) video=DSI-1:720x1280M@60,rotate=90 dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=270

Raspberry Pi 4B and Raspberry Pi 400

Orientation /boot/cmdline.txt /boot/userconfig.txt
Portrait (native) video=DSI-1:720x1280M@60 dtoverlay=vc4-kms-v3d-pi4,nohdmi
dtoverlay=vc4-kms-dsi-ili9881-7inch
Landscape (rotated left) video=DSI-1:720x1280M@60,rotate=270 dtoverlay=vc4-kms-v3d-pi4,nohdmi
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90
Landscape (rotated right) video=DSI-1:720x1280M@60,rotate=90 dtoverlay=vc4-kms-v3d-pi4,nohdmi
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=270

Raspberry Pi 3B+

Orientation /boot/cmdline.txt /boot/userconfig.txt
Portrait (native) video=DSI-1:720x1280M@60 dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-ili9881-7inch
Landscape (rotated left) video=DSI-1:720x1280M@60,rotate=270 dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90
Landscape (rotated right) video=DSI-1:720x1280M@60,rotate=90 dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=270

Example: Resulting /boot/userconfig.txt for Raspberry Pi 3B+ rotated left will look like:

[all]
display_auto_detect=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90


Touch Panel plugin
X11 session uses xrandr to rotate and this function is already implemented in the Touch Screen plugin. Simply set your rotation within plugin’s parameters.

NOTICE

The plymouth theme will not rotate and will remain in portrait mode. This is related to fairly outdated plymouth libraries prior rotation being introduced to kernels. There is no point in fixing this. Upcoming Volumio-OS based on Bookworm has currently maintained libraries and plymouth “understands” rotation.

This post will be updated as new changes or discoveries take place.

Kind Regards,

Hi all.

Somehow I couldn’t find any art or post describing how to run this screen with volumio. There are information about “Raspberry Pi Touch Display” v1 out there but nothing (?) about new v2.

So after some tinkering and a LOT of swearing :slight_smile: I make it happen and narrow down the process to a few simple steps:

  1. Install “Touch Display” plugin in Volumio plugin manager
    At this point, the interface will be displayed only on HDMI output.
    If your power supply is able to provide at least 3A (@5V) go to point 2 if not, replace it :slight_smile:
  2. Go to /boot/userconfig.txt and add the following:
display_auto_detect=1
[all]
usb_max_current_enable=1
  1. Reboot
  2. In plugin configuration page, rotate screen to the desired orientation (usually 90 degrees)
  3. You might not notice this at first, but after reboot, SSH is disabled. If you need SSHD working as before, go to http://yourvolumioip/dev, where ‘yourvolumioip’ is the actual IP address of your device e.g. 192.168.1.54. Find the SSH section, and click ‘enable’. From now on, your SSH will be permanently enabled.
2 Likes

Well, that worked! I had to enter “usb_max_…” when running bookworm. Never thought of doing that for this install. Great catch, saved my hair until another day.

Dear Volumionauts,

With Volumio-OS 3.781 there is no need to replace vc4-kms-dsi-ili9881-7inch.dtbo. It is part of the image now.

Thank you @Darmur for making this possible on such short notice.

Kind Regards,

1 Like

Hello

Where do I go wrong?

My suspicion is that I misunderstand all of the above descriptions.
Raspberry pi4, I’m trying with Touch display 2.

Test 1:
Volumio 3.779
Installed touch display plugin.
Display does not turn on.

Test 2:
Volumio 3.779 with display plugin. Test mode enabled, a3.781 update, then reboot and display does not turn on.

I apply the userconfig.txt changes one at a time, one at a time, so that it is preceded by a clean install.
But the result is only that the display turns on, and screen is black.

Note: Raspberry pi OS works perfectly. I checked the display with that.

Please give me some advice, where can I make a mistake?

Thanks a lot

Hey @Adam_Riczu-Horvath,

You need add to the /boot/userconfig.txt

[all]
display_auto_detect=1
# Match your rotation counter clockwise 0, 90, 180, 270 degree
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90

Kind Regards,

1 Like

Hi @nerd
Thank you very much. I tried, but all I see is a working black screen

Kind Regards :slight_smile:

Hey @Adam_Riczu-Horvath,

Can you take pictures of all connectors with attached FCC and power cables please?

Kind Regards,

Hi, I have updated Volumio on my Raspberry Pi 3 B+ to the latest test version (System Version: 3.781 Released: Thu 21 Nov 2024 11:00:22 AM CET), installed and enabled the plugin and added the config:

[all]
display_auto_detect=1

Match your rotation counter clockwise 0, 90, 180, 270 degree

dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90

but the display is still black.

The hardware is fine as I also tested it on HiFiberryOS64 with the same settings at it works except touch:

Any ideas?

Cheers, Ted

Hi,

With Raspberry Pi OS touch control and image display works perfectly:


FFC cables and power cables as shown in the pictures below:


  1. I did a clean install with Volumio version 3.779, installed Touch display plugin, screen stayed black and did not turn on. This is considered normal.

  2. I modified userconfig.txt with the suggested content:

[all]
display_auto_detect=1
# Match your rotation counter clockwise 0, 90, 180, 270 degree
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90

Result: Black screen with backlight:

  1. In Test mode I installed v3.781
    Result: same as step 2.

BR

Hi
I have the same problem, I did everything according to the instructions, the screen is backlit but nothing is displayed, I have the cables connected the same as Adam. Rpi4b 4g ram, DAC+.
Please help

@Adam_Riczu-Horvath and @Robert_Hlavsa,

There seems something interesting with Raspberry Pi 4B rev: 1.1.

Update your /boot/userconfig.txt:

[all]
display_auto_detect=1
dtoverlay=vc4-kms-v3d
# Match your rotation counter clockwise 0, 90, 180, 270 degree
dtoverlay=vc4-kms-dsi-ili9881-7inch,rotation=90

Please post the result.

Kind Regards,

Got the display now on my RPi 3 B+ but touch is not working.

Hi, the screen started working but the touch is moved a few centimeters higher, so I can’t control the interface, I don’t know how to calibrate the touch.
Thanks Robert

Hey @Robert_Hlavsa,

Please report and request calibration instructions in:

Referencing this thread.

Kind Regards,

Dear Volumionauts,

There seems to be a bit of confusion how to configure particular Raspberry Pi SBC. I have updated initial post to make the required changes clearer.

Kind Regards,

1 Like

I have a waveshare 7.9 dsi on Rpi4, volumio 3.779 working. I had this in my userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates

dtoverlay=vc4-kms-v3d-pi4,nohdmi
dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch

#### Touch Display rotation setting below: do not alter ####
display_lcd_rotate=3

I guess the most is done by “,nohdmi”, if I remember correctly, without it no active display;
“display_lcd_rotate=3” is written once you change orientation in TOUCH DISPLAY PLUGIN

give a try

Thank you for sharing @fxn, greatly appreciated.

I don’t think you checked the initial post. Settings you mentioned are already there.

Kind Regards,

Hello
I finally got around to trying the above procedure on the rpi4.
Everything works on the SD card, but the problem occurs when installing on USB, you can’t install pugin for the display, do you have any advice on how to install pugin.
Thank you in advance for your advice.