Difference between revisions of "3.5inch DPI LCD"

From Waveshare Wiki
Jump to: navigation, search
 
(33 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
{{Infobox item
 
{{Infobox item
 
|img=[[File:3.5inch-DPI-LCD-1.jpg|300px|{{Amazon_nolink|default={{#ifeq: {{#urlget:amazon|0}}|{{#urlget:Amazon|0}}| default|}}|url=link=https://www.waveshare.com/3.5inch-dpi-lcd.htm}}]]
 
|img=[[File:3.5inch-DPI-LCD-1.jpg|300px|{{Amazon_nolink|default={{#ifeq: {{#urlget:amazon|0}}|{{#urlget:Amazon|0}}| default|}}|url=link=https://www.waveshare.com/3.5inch-dpi-lcd.htm}}]]
|caption=640x480, 3.5inch IPS Display for Raspberry Pi, DPI interface, 5-points Touch.
+
|caption=3.5inch IPS Display for Raspberry Pi<br/>640 x 480, DPI interface, 5-points Touch
 
|platform=Raspberry Pi
 
|platform=Raspberry Pi
 
|category=[[:Category:OLEDs / LCDs|OLEDs / LCDs]], [[:Category:LCD|LCD]], [[:Category:Raspberry Pi LCD|Raspberry Pi LCD]]
 
|category=[[:Category:OLEDs / LCDs|OLEDs / LCDs]], [[:Category:LCD|LCD]], [[:Category:Raspberry Pi LCD|Raspberry Pi LCD]]
Line 18: Line 18:
 
='''Overview'''=
 
='''Overview'''=
 
== '''Introduction''' ==
 
== '''Introduction''' ==
640x480, 3.5inch IPS Display for Raspberry Pi, DPI interface, 5-points capacitive touch control.
+
640 x 480, 3.5inch IPS Display for Raspberry Pi, DPI interface, 5-point capacitive touch control.
  
 
== '''Features''' ==
 
== '''Features''' ==
*3.5inch IPS Display, 640x480 hardware resolution.
+
*3.5inch IPS Display, 640 x 480 hardware resolution.
 
*Designed for Raspberry Pi, based on Raspberry Pi 40pin GPIO interface.
 
*Designed for Raspberry Pi, based on Raspberry Pi 40pin GPIO interface.
*Using DPI666 interface of Raspberry Pi to drive LCD, refresh rate up to 60Hz.
+
*Using the DPI666 interface of Raspberry Pi to drive LCD, refresh rate up to 60Hz.
*Drive capacitive touch through I2C interface of Raspberry Pi, 5-points touch, toughened glass panel, hardness up to 6H.
+
*Drive capacitive touch through the I2C interface of Raspberry Pi, 5-point touch, toughened glass panel, hardness up to 6H.
 
*Supports Raspbian and Kali systems.
 
*Supports Raspbian and Kali systems.
  
 
=='''Software settings'''==
 
=='''Software settings'''==
If you don't know the difference between the two branches of Raspberry Pi OS, you can check the following introduction [[#Introducing the Raspberry Pi OS fork]]
+
If you don't know the difference between the two branches of Raspberry Pi OS, you can check the following introduction [[#Introducing the Raspberry Pi OS fork]].
==== For Raspberry Pi OS Bullseye branch ====
+
==== For Raspberry Pi OS Bookworm and Bullseye branch ====
 
Please download the latest version of the image from the [https://www.raspberrypi.com/software/operating-systems/ Raspberry Pi official website].
 
Please download the latest version of the image from the [https://www.raspberrypi.com/software/operating-systems/ Raspberry Pi official website].
  
 
1. Download the compressed file to the PC, and extract the img file.<br />
 
1. Download the compressed file to the PC, and extract the img file.<br />
2. Connect the TF card to the PC and use [https://{{SERVERNAME}}/w/upload/d/d7/Panasonic_SDFormatter.zip SDFormatter] to format the TF card.<br />
+
2. Connect the TF card to the PC and use [https://files.waveshare.com/upload/d/d7/Panasonic_SDFormatter.zip SDFormatter] to format the TF card.<br />
3. Open the [https://{{SERVERNAME}}/w/upload/7/76/Win32DiskImager.zip Win32DiskImager] software, select the system image prepared in step 1, and click write to burn the system image.<br />
+
3. Open the [https://files.waveshare.com/upload/7/76/Win32DiskImager.zip Win32DiskImager] software, select the system image prepared in step 1, and click write to burn the system image.<br />
4. After the programming is completed, open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt and save it.
+
4. After the programming is completed, open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt, and save it.
 
<source lang="c">
 
<source lang="c">
 
dtoverlay=vc4-kms-v3d
 
dtoverlay=vc4-kms-v3d
Line 42: Line 42:
 
dtoverlay=waveshare-35dpi-3b
 
dtoverlay=waveshare-35dpi-3b
 
dtoverlay=waveshare-35dpi-4b
 
dtoverlay=waveshare-35dpi-4b
 +
dtoverlay=waveshare-35dpi
 +
dtoverlay=waveshare-touch-35dpi
 
</source>
 
</source>
5. Download the [https://www.waveshare.net/w/upload/3/31/35DPI-DTBO.zip 3.5inch DPI LCD DTBO] file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/),<br />
+
5. Download the [https://files.waveshare.com/upload/e/e4/3.5DPI-dtbo.zip 3.5inch DPI LCD DTBO] file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/).<br />
 
6. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for more than 30 seconds to display normally.
 
6. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for more than 30 seconds to display normally.
  
 
==== For Raspberry Pi OS Buster branch and Ubuntu system ====
 
==== For Raspberry Pi OS Buster branch and Ubuntu system ====
1. Open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt, save and safely eject the TF card.
+
1. Open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt, save, and safely eject the TF card.
 
<source lang="c">
 
<source lang="c">
 
gpio=0-9=a2
 
gpio=0-9=a2
Line 66: Line 68:
 
<font color="#FF0000">Note: If it is Raspberry Pi 4, also need to comment out dtoverlay=vc4-fkms-V3D.</font>
 
<font color="#FF0000">Note: If it is Raspberry Pi 4, also need to comment out dtoverlay=vc4-fkms-V3D.</font>
  
2. Download the [https://www.waveshare.net/w/upload/3/31/35DPI-DTBO.zip 3.5inch DPI LCD DTBO] file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/),<br />
+
2. Download the [https://files.waveshare.com/upload/e/e4/3.5DPI-dtbo.zip 3.5inch DPI LCD DTBO] file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/).<br />
 
3. Save and quit the TF card safely, and insert the TF card into the Raspberry Pi.<br />
 
3. Save and quit the TF card safely, and insert the TF card into the Raspberry Pi.<br />
4. Insert the 3.5inch DPI LCD into the 40PIN GPIO interface of the Raspberry Pi, power on the Raspberry Pi, and wait for about ten seconds to display normally.
+
4. Insert the 3.5-inch DPI LCD into the 40PIN GPIO interface of the Raspberry Pi, power on the Raspberry Pi, and wait for about ten seconds to display normally.
  
== '''Rotation'''(Working with Raspberry Pi) ==
+
== '''Rotation''' (Working with Raspberry Pi) ==
  
 
===Raspberry Pi OS and Kali display rotation ===
 
===Raspberry Pi OS and Kali display rotation ===
First check whether the KMS or FKMS driver is loaded on the system you are using.
+
First, check whether the KMS or FKMS driver is loaded on the system you are using.
  
 
Check method: In /boot/config.txt, check whether the line dtoverlay=vc4-kms-v3d or dtoverlay=vc4-fkms-v3d is turned on.
 
Check method: In /boot/config.txt, check whether the line dtoverlay=vc4-kms-v3d or dtoverlay=vc4-fkms-v3d is turned on.
Line 96: Line 98:
 
===Touch Rotating===
 
===Touch Rotating===
  
After the display is rotated, the position of touch is incorrect because the touch doesn’t change with the display angle. So the touch also needs to be modified.
+
After the display is rotated, the position of the touch is incorrect because the touch doesn't change with the display angle. So the touch also needs to be modified.
  
1.Install libinput.
+
1. Install libinput.
 
  sudo apt-get install xserver-xorg-input-libinput
 
  sudo apt-get install xserver-xorg-input-libinput
  
Line 104: Line 106:
 
  sudo apt install xserver-xorg-input-synaptics
 
  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).
+
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
 
  sudo mkdir /etc/X11/xorg.conf.d
  
3.Copy the 40-libinput-conf file to the directory you created just now.
+
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/
 
  sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
4.Edit this file.
+
4. Edit this file.
 
  sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
 
  sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
  
Line 118: Line 120:
  
 
[[File:touch roate.jpg]]<br />
 
[[File:touch roate.jpg]]<br />
5. save and reboot your Pi
+
5. Save and reboot your Pi.
 
  sudo reboot
 
  sudo reboot
  
After completing these steps. The LCD could rotate 90 degrees in both display and touch function.
+
After completing these steps. The LCD could rotate 90 degrees in both the display and touch functions.
  
 
'''Note:'''
 
'''Note:'''
  
90 degree: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
+
90 degrees: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
  
180 degree: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
+
180 degrees: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
  
270 degree: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
+
270 degrees: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
  
 
=='''Others'''==
 
=='''Others'''==
 
===Disable power saving===
 
===Disable power saving===
If you want to keep the display turning on all the time, you can disable the power saving function.<br />
+
If you want to keep the display turning on all the time, you can disable the power-saving function.<br />
Modify file lightdm.conf<br />
+
Modify file lightdm.conf.<br />
 
<pre>
 
<pre>
 
sudo nano /etc/lightdm/lightdm.conf
 
sudo nano /etc/lightdm/lightdm.conf
Line 146: Line 148:
 
xserver-command=X -s 0 -dpms
 
xserver-command=X -s 0 -dpms
 
</pre>
 
</pre>
*-s # –Disable the display protecting.
+
*-s # –Disable the display protection.
 
*dpms Disable power saving.
 
*dpms Disable power saving.
Reboot<br />
+
Reboot.<br />
 
<pre>
 
<pre>
 
sudo reboot
 
sudo reboot
 
</pre>
 
</pre>
 +
 
===Control brightness by PWM===
 
===Control brightness by PWM===
 
If you use Pi4, you need to update wiringPi first:
 
If you use Pi4, you need to update wiringPi first:
Line 160: Line 163:
 
# Check if it is 2.52 version
 
# Check if it is 2.52 version
 
</pre>
 
</pre>
Control the brightness by PWM
+
Control the brightness by PWM.
 
<pre>
 
<pre>
 
gpio -g mode 18 pwm      #Configure the PIN as PWM mode
 
gpio -g mode 18 pwm      #Configure the PIN as PWM mode
Line 176: Line 179:
 
</pre>
 
</pre>
 
===Introducing the Raspberry Pi OS fork===
 
===Introducing the Raspberry Pi OS fork===
On December 2, 2021, the Raspberry Pi OS for Raspberry Pi split into two branches, the Buster branch and the Bullseye branch.<br />
+
On December 2, 2021, the Raspberry Pi OS for Raspberry Pi split into two branches, the Buster branch, and the Bullseye branch.<br />
  
 
The Buster branch is a continuation of the old system, which is more stable and uses raspicam as the default camera subsystem.<br />
 
The Buster branch is a continuation of the old system, which is more stable and uses raspicam as the default camera subsystem.<br />
  
 
The Bullseye branch adds some new features, including KMS as the default display driver and libcamera as the default camera subsystem.<br />
 
The Bullseye branch adds some new features, including KMS as the default display driver and libcamera as the default camera subsystem.<br />
[https://www.raspberrypi.com/software/operating-systems/ Image download address]
+
[https://www.raspberrypi.com/software/operating-systems/ Image download address]<br />
 
[[File:RASPBERRY-PI-OS-BUSTER-BULLSEYE-04-01.png|800px]]<br />
 
[[File:RASPBERRY-PI-OS-BUSTER-BULLSEYE-04-01.png|800px]]<br />
 
More detailed information can be found at:<br />
 
More detailed information can be found at:<br />
Line 191: Line 194:
 
[https://downloads.raspberrypi.org/raspios_armhf/release_notes.txt Bullseye Release Notes]
 
[https://downloads.raspberrypi.org/raspios_armhf/release_notes.txt Bullseye Release Notes]
  
Notes:The above information was updated on January 24, 2022. Due to the frequent update of the Raspberry Pi image, when you see this information, the relevant information may be out of date. The actual performance of the image shall prevail. This is for reference only.
+
Notes: The above information was updated on January 24, 2022. Due to the frequent update of the Raspberry Pi image, when you see this information, the relevant information may be out of date. The actual performance of the image shall prevail. This is for reference only.
  
 
== '''Interface''' ==
 
== '''Interface''' ==
The pins labeled "NC" below means that those pins of Raspberry Pi are not occupied by the LCD, and the user can use them for other applications.
+
The pins labeled "NC" below mean that those pins of Raspberry Pi are not occupied by the LCD, and the user can use them for other applications.
 
{|class="wikitable"
 
{|class="wikitable"
 
! PIN NO. !! SYMBOL !! DESCRIPTION
 
! PIN NO. !! SYMBOL !! DESCRIPTION
Line 280: Line 283:
 
</div>
 
</div>
 
<div class="tabbertab" title="Resources">
 
<div class="tabbertab" title="Resources">
 +
===Raspberry Pi Long-press Right-click Setting===
 +
<font color="#FF0000">Test environment: 2022-04-04-raspios-bullseye-armhf 32-bit system.</font><br/>
 +
<font color="#FF0000">Supported models: Support Waveshare DSI LCD, DPI LCD, and HDMI LCD capacitive touch screen series.</font>
 +
 +
===Software Installation===
 +
<source lang="c">
 +
wget https://files.waveshare.com/upload/1/18/Evdev-right-click-emulation.zip
 +
unzip Evdev-right-click-emulation.zip
 +
cd evdev-right-click-emulation
 +
sudo apt install build-essential libevdev2 libevdev-dev
 +
cd 'evdev-right-click-emulation'
 +
sudo cp 'out/evdev-rce' '/usr/local/bin/'
 +
sudo chmod +x '/usr/local/bin/evdev-rce'
 +
</source>
 +
Enter the command:<br/>
 +
<pre>sudo evdev-rce</pre>
 +
After running, you can touch and long press to realize the right-click function.
 +
====Set IP====
 +
<source lang="c">
 +
sudo usermod -G 'input' -a pi
 +
echo 'uinput' | sudo tee -a /etc/modules
 +
sudo nano  /etc/udev/rules.d/99-uinput.rules
 +
</source>
 +
Add in 99-uinput.rules file.<br/>
 +
<pre>
 +
KERNEL=="uinput", MODE="0660", GROUP="input"
 +
</pre>
 +
save it and run it in the terminal.<br/>
 +
<source lang="c">
 +
sudo udevadm control --reload-rules
 +
sudo udevadm trigger
 +
</source>
 +
Then reboot:<br/>
 +
<pre>
 +
sudo reboot
 +
</pre>
 +
Run after reboot (no sudo needed at this point).<br/>
 +
<pre>
 +
evdev-rce
 +
</pre>
 +
After running, you can touch and long press to realize the right-click function.<br/>
 +
 +
====Set Startup====
 +
Enter the terminal.<br/>
 +
<pre>
 +
sudo mkdir ~/.config/autostart
 +
sudo nano ~/.config/autostart/right_click.desktop
 +
</pre>
 +
Add the following in right_click.desktop.<br/>
 +
<pre>
 +
[Desktop Entry]
 +
Version=1.0
 +
Type=Application
 +
Name=evdev-rce
 +
GenericName=Enable long-press-to-right-click gesture
 +
Exec=env LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200  /usr/local/bin/evdev-rce
 +
Terminal=true
 +
StartupNotify=false
 +
</pre>
 +
<font color="#FF0000">If you want to modify the sensitivity, you can modify the size of the two parameters, LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200.</font>
  
 
= '''Resource''' =
 
= '''Resource''' =
 
==3D Drawing==
 
==3D Drawing==
*[[:File:3.5inch_DPI_LCD_3D(2).zip|3.5inch DPI LCD 3D Drawing(2)]]
+
*[https://files.waveshare.com/upload/1/17/3.5inch_DPI_LCD_3D.zip 3.5inch DPI LCD 3D Drawing]
 +
*[https://files.waveshare.com/upload/3/33/3.5inch_DPI_LCD_3D_EXE.zip 3.5inch DPI LCD 3D preview file]
  
 
== Software ==
 
== Software ==
* [http://www.waveshare.com/w/upload/d/d7/Panasonic_SDFormatter.zip Panasonic SDFormatter]
+
* [https://files.waveshare.com/upload/d/d7/Panasonic_SDFormatter.zip Panasonic SDFormatter]
* [http://www.waveshare.com/w/upload/7/76/Win32DiskImager.zip Win32DiskImager]
+
* [https://files.waveshare.com/upload/7/76/Win32DiskImager.zip Win32DiskImager]
* [http://www.waveshare.com/w/upload/5/56/Putty.zip PuTTY]
+
* [https://files.waveshare.com/upload/5/56/Putty.zip PuTTY]
 
</div>
 
</div>
 
<div class="tabbertab" title="FAQ">
 
<div class="tabbertab" title="FAQ">
 
+
='''Support'''=
+
{{Servicebox1}}
{{Service00}}
 
  
 
[[Category:OLEDs / LCDs|OLEDs / LCDs]] [[Category:LCD|LCD]] [[Category:Raspberry Pi|Raspberry Pi]] [[Category:Raspberry Pi LCD|Raspberry Pi LCD]]
 
[[Category:OLEDs / LCDs|OLEDs / LCDs]] [[Category:LCD|LCD]] [[Category:Raspberry Pi|Raspberry Pi]] [[Category:Raspberry Pi LCD|Raspberry Pi LCD]]
 
</div>
 
</div>
 
</div>
 
</div>

Latest revision as of 10:56, 15 January 2024

3.5inch DPI LCD
3.5inch-DPI-LCD-1.jpg

3.5inch IPS Display for Raspberry Pi
640 x 480, DPI interface, 5-points Touch
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Overview

Introduction

640 x 480, 3.5inch IPS Display for Raspberry Pi, DPI interface, 5-point capacitive touch control.

Features

  • 3.5inch IPS Display, 640 x 480 hardware resolution.
  • Designed for Raspberry Pi, based on Raspberry Pi 40pin GPIO interface.
  • Using the DPI666 interface of Raspberry Pi to drive LCD, refresh rate up to 60Hz.
  • Drive capacitive touch through the I2C interface of Raspberry Pi, 5-point touch, toughened glass panel, hardness up to 6H.
  • Supports Raspbian and Kali systems.

Software settings

If you don't know the difference between the two branches of Raspberry Pi OS, you can check the following introduction #Introducing the Raspberry Pi OS fork.

For Raspberry Pi OS Bookworm and Bullseye branch

Please download the latest version of the image from the Raspberry Pi official website.

1. Download the compressed file to the PC, and extract the img file.
2. Connect the TF card to the PC and use SDFormatter to format the TF card.
3. Open the Win32DiskImager software, select the system image prepared in step 1, and click write to burn the system image.
4. After the programming is completed, open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt, and save it.

dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-DPI-35inch
dtoverlay=waveshare-35dpi-3b-4b
dtoverlay=waveshare-35dpi-3b
dtoverlay=waveshare-35dpi-4b
dtoverlay=waveshare-35dpi
dtoverlay=waveshare-touch-35dpi

5. Download the 3.5inch DPI LCD DTBO file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/).
6. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for more than 30 seconds to display normally.

For Raspberry Pi OS Buster branch and Ubuntu system

1. Open the config.txt file in the root directory of the TF card, add the following code at the end of config.txt, save, and safely eject the TF card.

gpio=0-9=a2
gpio=12-17=a2
gpio=20-25=a2
dtoverlay=dpi18
enable_dpi_lcd=1
display_default_lcd=1
extra_transpose_buffer=2
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f006
hdmi_timings=640 0 20 10 10 480 0 10 5 5 0 0 0 60 0 60000000 1
dtoverlay=waveshare-35dpi-3b-4b
dtoverlay=waveshare-35dpi-3b
dtoverlay=waveshare-35dpi-4b

Note: If it is Raspberry Pi 4, also need to comment out dtoverlay=vc4-fkms-V3D.

2. Download the 3.5inch DPI LCD DTBO file and extract the dtbo files. Copy these files to the overlays directory (/boot/overlays/).
3. Save and quit the TF card safely, and insert the TF card into the Raspberry Pi.
4. Insert the 3.5-inch DPI LCD into the 40PIN GPIO interface of the Raspberry Pi, power on the Raspberry Pi, and wait for about ten seconds to display normally.

Rotation (Working with Raspberry Pi)

Raspberry Pi OS and Kali display rotation

First, check whether the KMS or FKMS driver is loaded on the system you are using.

Check method: In /boot/config.txt, check whether the line dtoverlay=vc4-kms-v3d or dtoverlay=vc4-fkms-v3d is turned on.

With KMS or FKMS driver loaded

Use the following command for display rotation:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#Enter the command corresponding to the display rotation angle at the end of the autostart file, and it will take effect after rebooting the system.
#0: rotate 0 degrees; 1: rotate 270 degrees; 2: rotate 180 degrees; 3: rotate 90 degrees
xrandr -o 1
No KMS or FKMS driver loaded

Use the following command for display rotation:

sudo nano /boot/config.txt
#Enter the command corresponding to the display rotation angle at the end of the config.txt file, and it will take effect after rebooting the system.
#0: rotate 0 degrees; 1: rotate 90 degrees; 2: rotate 180 degrees; 3: rotate 270 degrees
display_rotate=3

Touch Rotating

After the display is rotated, the position of the touch is incorrect because the touch doesn't change with the display angle. So the touch also needs to be modified.

1. Install libinput.

sudo apt-get install xserver-xorg-input-libinput

If the system you installed is Ubuntu or Jetson Nano. 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 part of the touchscreen, add the following statement inside, and then save the file.

Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

Similar to the picture below:

Touch roate.jpg
5. Save and reboot your Pi.

sudo reboot

After completing these steps. The LCD could rotate 90 degrees in both the display and touch functions.

Note:

90 degrees: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

180 degrees: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

270 degrees: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"

Others

Disable power saving

If you want to keep the display turning on all the time, you can disable the power-saving function.
Modify file lightdm.conf.

sudo nano /etc/lightdm/lightdm.conf

Find the [SeatDefaults] option and uncomment the line"xserver-command", modify it as below:

#xserver-command=X

Modify this code to

xserver-command=X -s 0 -dpms
  • -s # –Disable the display protection.
  • dpms Disable power saving.

Reboot.

sudo reboot

Control brightness by PWM

If you use Pi4, you need to update wiringPi first:

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# Check if it is 2.52 version

Control the brightness by PWM.

gpio -g mode 18 pwm      #Configure the PIN as PWM mode
gpio pwmc 100   
gpio -g pwm 18 0         #Brightest
gpio -g pwm 18 1023      #Dimmest
gpio -g mode 18 out      #Clear the PIN to output mode.

Turn on/off HDMI output

You can use the following commands to disable/enable the displaying.

vcgencmd display_power 0
vcgencmd display_power 1

Introducing the Raspberry Pi OS fork

On December 2, 2021, the Raspberry Pi OS for Raspberry Pi split into two branches, the Buster branch, and the Bullseye branch.

The Buster branch is a continuation of the old system, which is more stable and uses raspicam as the default camera subsystem.

The Bullseye branch adds some new features, including KMS as the default display driver and libcamera as the default camera subsystem.
Image download address
RASPBERRY-PI-OS-BUSTER-BULLSEYE-04-01.png
More detailed information can be found at:

Raspberry Pi Branch Details

Buster Release Notes

Bullseye Release Notes

Notes: The above information was updated on January 24, 2022. Due to the frequent update of the Raspberry Pi image, when you see this information, the relevant information may be out of date. The actual performance of the image shall prevail. This is for reference only.

Interface

The pins labeled "NC" below mean that those pins of Raspberry Pi are not occupied by the LCD, and the user can use them for other applications.

PIN NO. SYMBOL DESCRIPTION
1 NC Power positive (3.3V power input)
2 5V Power positive (5V power input)
3 VSYNC Vertical sync
4 5V Power positive (5V power input)
5 HSYNC Horizontal sync
6 GND Ground
7 B2 RGB signal cable
8 G4 RGB signal cable
9 GND Ground
10 G5 RGB signal cable
11 G7 RGB signal cable
12 PWM Backlight control
13 TP_INT Touch Panel interrupt
14 GND Ground
15 R4 RGB signal cable
16 R5 RGB signal cable
17 NC Power positive (3.3V power input)
18 R6 RGB signal cable
19 TP_SDA I2C SDA for touch panel
20 GND Ground
21 B7 RGB signal cable
22 R7 RGB signal cable
23 TP_SCL I2C SCL for touch panel
24 B6 RGB signal cable
25 GND Ground
26 B5 RGB signal cable
27 LCD_CLK LCD clock
28 DE LCD data enable
29 B3 RGB signal cable
30 GND Ground
31 B4 RGB signal cable
32 G2 RGB signal cable
33 G3 RGB signal cable
34 GND Ground
35 NC GPIO interface
36 G6 RGB signal cable
37 NC GPIO interface
38 R2 RGB signal cable
39 GND Ground
40 R3 RGB signal cable

Raspberry Pi Long-press Right-click Setting

Test environment: 2022-04-04-raspios-bullseye-armhf 32-bit system.
Supported models: Support Waveshare DSI LCD, DPI LCD, and HDMI LCD capacitive touch screen series.

Software Installation

wget https://files.waveshare.com/upload/1/18/Evdev-right-click-emulation.zip
unzip Evdev-right-click-emulation.zip
cd evdev-right-click-emulation
sudo apt install build-essential libevdev2 libevdev-dev
cd 'evdev-right-click-emulation'
sudo cp 'out/evdev-rce' '/usr/local/bin/'
sudo chmod +x '/usr/local/bin/evdev-rce'

Enter the command:

sudo evdev-rce

After running, you can touch and long press to realize the right-click function.

Set IP

sudo usermod -G 'input' -a pi
echo 'uinput' | sudo tee -a /etc/modules
sudo nano  /etc/udev/rules.d/99-uinput.rules

Add in 99-uinput.rules file.

KERNEL=="uinput", MODE="0660", GROUP="input"

save it and run it in the terminal.

sudo udevadm control --reload-rules
sudo udevadm trigger

Then reboot:

sudo reboot

Run after reboot (no sudo needed at this point).

evdev-rce

After running, you can touch and long press to realize the right-click function.

Set Startup

Enter the terminal.

sudo mkdir ~/.config/autostart
sudo nano ~/.config/autostart/right_click.desktop

Add the following in right_click.desktop.

[Desktop Entry]
Version=1.0
Type=Application
Name=evdev-rce
GenericName=Enable long-press-to-right-click gesture
Exec=env LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200  /usr/local/bin/evdev-rce
Terminal=true
StartupNotify=false

If you want to modify the sensitivity, you can modify the size of the two parameters, LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200.

Resource

3D Drawing

Software

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 AM GMT+8 (Monday to Friday)