3.5inch DSI LCD (E)

From Waveshare Wiki
Jump to: navigation, search

Features

  • 3.5inch IPS screen, 640 x 480 hardware resolution
  • Capacitive touch panel, supports 5-point touch control
  • Tempered glass touch panel with hardness up to 6H
  • Compatible with Pi5 / CM5 / 4B / CM4 / 3B+ / 3A+ / 3B / CM3 / CM3+ / 2B / B+ / A+
  • Directly drive the LCD by the DSI interface on the Raspberry Pi, with up to 60Hz refreshing rate

Pin Definition

PIN Mark
1 GND
2 DSI1_DN1
3 DSI1_DP1
4 GND
5 DSI1_CN
6 DSI1_CP
7 GND
8 DSI1_DN0
9 DSI1_DP0
10 GND
11 SCL0
12 SDA0
13 GND
14 3V3
15 3V3

Hardware Connection

Working with Pi 5/CM5/CM4/CM3+/CM3

  • Use a DSI-Cable-12cm cable to connect the 3.5inch DSI LCD (E) to the 22PIN DSI1 interface on the Raspberry Pi board.
  • For easy installation, the Raspberry Pi 5 can be attached to the back of a 3.5inch DSI LCD (E).

When assembling, please place the short copper pillars from the accessory pack between the screen and the motherboard, then secure them with screws as shown in the figure:

3.5inch-DSI-LCD-E-details-3-1.jpg

Working with Pi 4B/3B+/3A+/3B/2B/B+/A+

  • Use an FFC cable to connect the 3.5inch DSI LCD (E) to the 15PIN DSI interface on the Raspberry Pi board.
  • For convenience, you can fix the Raspberry Pi board on the backside of the 3.5inch DSI LCD (E) with screws and assemble the copper columns.

When assembling, please place the short copper pillars from the accessory pack between the screen and the motherboard, then secure them with screws as shown in the figure:

3.5inch-DSI-LCD-E-details-3-2.jpg

Software Settings

Working with Trixie and Bookworm (recommended)

  • 1. Connect the TF card to the PC, download and use Raspberry Pi Imager to flash the corresponding system image.

800x480-DSI-LCD-0.png

  • 2. After the image flashing is completed, open the config.txt file in the root directory of the TF card, add the following code at the end of the file and save:
dtoverlay=vc4-kms-v3d
#DSI1 Use
dtoverlay=waveshare_35DSI,35E,dsi1
#DSI0 Use
#dtoverlay=waveshare_35DSI,35E,dsi0
  • 4. Insert the TF card and start the Raspberry Pi, wait for about 30 seconds for it to display.

Trixie / Bookworm Display Rotation

GUI Interface Rotation

The following steps are based on the Trixie system:

  • 1. Click the menu in the upper left corner, then go to Preferences -> Control Center, and select Screens;

8inch dsi lcd -5.png

  • 2. Go to Screen -> DSI-1 -> Touchscreen and check "10-0014 Goodix Capacitive TouchScreen";

8inch dsi lcd -6.png

  • 3. Go to Screen -> DSI-2 -> Orientation, check the direction you need to rotate, and finally click "Apply" to complete the display and touch synchronous rotation.

8inch dsi lcd -7.png

  • In the Bookworm system, this setting entry is located at Screen Configuration -> Screen.
Note: Only Trixie/Bookworm systems support the above synchronous rotation methods. For Bullseye/Buster systems, after displaying rotation, touch rotation needs to be manually set separately.

lite Version Display Rotation

sudo nano /boot/firmware/cmdline.txt
#Add the display resolution and rotation commands at the beginning of the cmdline.txt file to take effect after a reboot
#For example, the DSI-1 display has a 720x1280 resolution and the display rotation is 90 degrees
video=DSI-1:720x1280e,rotate=90
#For example, the DSI-1 display has a 720x1280 resolution and the display rotation is 180 degrees
video=DSI-1:720x1280e,rotate=180
#For example, the DSI-1 display has a 720x1280 resolution and the display rotation is 270 degrees
video=DSI-1:720x1280e,rotate=270

Note:

  • 1. Based on actual display resolution.
  • 2. If using Pi5/CM5, use the actual DSI display number identified, for example, "DSI-2".
  • 3. Unable to rotate DSI monitor and HDMI monitor separately using cmdline.txt. When you use both DSI and HDMI simultaneously, they share the same rotation value.

Working with Bullseye System (requires driver compilation)

Flash Official Bullseye System

Install Header Files and Drivers

sudo apt-get update 
sudo apt-get install unzip -y
sudo apt-get install cmake -y
sudo apt-get install raspberrypi-kernel-headers
sudo wget https://files.waveshare.com/wiki/common/Waveshare_35DSI.dtbo
sudo wget https://files.waveshare.com/wiki/common/Vc4-kms-dsi-generic.dtbo
sudo wget https://files.waveshare.com/wiki/3.5inch_DSI_LCD_E/3inch5_DSI_E_Drives_Bullseye.zip
sudo cp Waveshare_35DSI.dtbo /boot/overlays/
sudo cp Vc4-kms-dsi-generic.dtbo /boot/overlays/
sudo unzip ./3inch5_DSI_E_Drives_Bullseye.zip
cd 3inch5_DSI_E_Drives_Bullseye

Edit config.txt File

sudo nano /boot/config.txt

Add the following at the end of [all]:

display_auto_detect=0
disable_splash=1
display_auto_detect=1
dtoverlay=vc4-kms-dsi-generic,hactive=640,hfp=48,hsync=32,hbp=80,vactive=480,vfp=3,vsync=4,vbp=13
dtoverlay=Waveshare_35DSI

Please do not restart the Raspberry Pi at this time.

Check Current System Kernel Version

uname -r

You will see one of the following two:

Please follow the steps corresponding to the kernel version

6.1.21-v7+

  • Compile panel-simple
cd ~/3inch5_DSI_E-RPi3_6.1.21-v7+/panel_simple-ko
sudo make
sudo xz panel-simple.ko
sudo cp panel-simple.ko.xz /lib/modules/6.1.21-v7+/kernel/drivers/gpu/drm/panel/
  • Compile touch driver goodix_ts
cd ~/3inch5_DSI_E-RPi3_6.1.21-v7+/goodix_gt911-ko
sudo make
sudo xz goodix_ts.ko
sudo cp goodix_ts.ko.xz /lib/modules/6.1.21-v7+/kernel/drivers/input/touchscreen/
sudo depmod -a

After rebooting with `sudo reboot`, the screen will display and touch normally

6.1.21-v8+

  • Replace panel-simple
cd ~/3inch5_DSI_E-RPi4_6.1.21-v8+/panel_simple-ko
sudo cp panel-simple.ko.xz /lib/modules/6.1.21-v8+/kernel/drivers/gpu/drm/panel/
  • Replace touch driver
cd ..
cd ~/3inch5_DSI_E-RPi4_6.1.21-v8+/goodix_gt911-ko
sudo cp goodix_ts.ko.xz /lib/modules/6.1.21-v8+/kernel/drivers/input/touchscreen/
sudo depmod -a

After rebooting with `sudo reboot`, the screen will display and touch normally

Bullseye Display Rotation

GUI interface rotation

  • 1. Open the "Screen Configuration" application;

DSI-LCD-Bullseye-Rotate-02.png

  • 2. Go to "Screen" -> "DSI-1" -> "Orientation", check the direction you need to rotate, and finally click "Apply" to complete the display rotation.

DSI-LCD-Bullseye-Rotate-03.png
DSI-LCD-Bullseye-Rotate-04.png


lite version display rotation

  • 1. Need to modify the /boot/cmdline.txt file:
sudo nano /boot/cmdline.txt
  • 2. At the beginning of the cmdline.txt file, add the command for displaying the rotation angle: (Please note, this command needs to be on the same line, with each command separated by a space.)
video=DSI-1:800x480M@60,rotate=90

Change the display rotation angle by modifying the rotate value to 90, 180, or 270.

  • 3. Save and restart
sudo reboot

Bullseye Touch Rotation

After some systems display rotation, the touch direction is inconsistent, and you need to perform the following operations to perform touch rotation:
1. Install libinput

sudo apt-get install xserver-xorg-input-libinput
  • If you have Ubuntu or Jetson Nano installed. The installation code is:
sudo apt install xserver-xorg-input-synaptics

2. Create the xorg.conf.d directory under /etc/X11 (if the directory already exists, proceed directly to step 3).

sudo mkdir /etc/X11/xorg.conf.d

3. Copy the 40-libinput-conf file to the directory you created just now.

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/

4. Edit this file

sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
#Find the touchscreen section, add the corresponding rotation angle command in it, and save it
#"90° Right touch rotation:
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
#180° Inverted touch rotation: 
#Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
#270° Left touch rotation: 
#Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
Similar to the position in the following image:

Touch roate.jpg
5. Reboot Raspberry Pi

sudo reboot

After completing the above steps, touch will cause a rotation.

Pre-installed Image

Related Resources

Diagrams

Software

FAQ




 Answer:

It depends on the system, if the system has hibernation, the screen will also be black.


 Answer:

When using the Wayland environment (such as Raspberry Pi OS Trixie or Bookworm), you can control the screen display status with the wlr-randr command.

#Turn off the screen 
wlr-randr --output DSI-2 --off
#Turn on the screen
wlr-randr --output DSI-2 --on


Support



Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)