4inch DPI LCD (C)
| ||
Introduction
4inch Square Capacitive Touch Screen LCD (C) for Raspberry Pi, 720 × 720, DPI, IPS, toughened glass cover, low power solution.
Features
- 4inch IPS Display, 720 x 720 hardware resolution.
- 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.
- Drive capacitive touch through I2C interface of Raspberry Pi, 5-point touch, toughened glass panel, hardness up to 6H.
- Supports Raspberry Pi OS / Ubuntu / Kali systems.
Using with Raspberry Pi
Hardware connection
Please install the display slowly on the 40PIN GPIO interface of the Raspberry Pi as shown below.
Software setting
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-4inch dtoverlay=waveshare-4dpic-3b-4b dtoverlay=waveshare-4dpic-3b dtoverlay=waveshare-4dpic-4b dtoverlay=waveshare-4dpi dtoverlay=waveshare-touch-4dpi
5. Download the 4inch DPI LCD (C)-KMS display file and put it in the /boot/overlays directory of the TF card, and eject the TF card safely.
6. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for about thirty 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=dpi24 enable_dpi_lcd=1 display_default_lcd=1 extra_transpose_buffer=2 dpi_group=2 dpi_mode=87 dpi_output_format=0x7f216 dpi_timings=720 0 46 2 42 720 0 16 2 18 0 0 0 60 0 60000000 6 dtoverlay=waveshare-4dpic-3b-4b dtoverlay=waveshare-4dpic-3b dtoverlay=waveshare-4dpic-4b
2. Download the 4inch DPI LCD (C)-KMS display file and put it in the /boot/overlays directory of the TF card, and eject the TF card safely.
3. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for about thirty seconds to display normally.
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
More detailed information can be found at:
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.
Screen orientation settings
Update software version
Raspberry Pi OS Bullseye branch needs to update the software version, and this step can be omitted for other systems.
sudo apt-get update sudo apt-get full-upgrade
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:
sudo reboot
After completing these steps. The LCD could rotate 90 degrees for both the display and touch function.
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
Turn on/off HDMI output
You can use the following commands to disable/enable the displaying.
vcgencmd display_power 0 vcgencmd display_power 1
Adjust brightness by PWM
Update wiringPi if you use Pi4.
wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # It should be 2.52 version
Change the brightness with the following command:
gpio -g mode 18 pwm #Set the pin for PWM gpio pwmc 100 gpio -g pwm 18 0 #Bightest gpio -g pwm 18 1023 #Dimest gpio -g mode 18 out #Clean the GPIO
Raspberry Pi Long Right-click Software Installation
Test environment: 2022-04-04-raspios-bullseye-armhf 32-bit system.
Supported Models: Supports Waveshare Electronics DSI LCD, DPI LCD, and HDMI LCD capacitive touch screen series.
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.
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 | B0 | RGB signal cable |
8 | G2 | RGB signal cable |
9 | GND | Ground |
10 | G3 | RGB signal cable |
11 | G5 | RGB signal cable |
12 | NC | GPIO header |
13 | TP_INT | Touch Panel interrupt |
14 | GND | Ground |
15 | R2 | RGB signal cable |
16 | R3 | RGB signal cable |
17 | NC | Power positive (3.3V power input) |
18 | R4 | RGB signal cable |
19 | TP_SDA | I2C SDA for touch panel |
20 | GND | Ground |
21 | B5 | RGB signal cable |
22 | R5 | RGB signal cable |
23 | TP_SCL | I2C SCL for touch panel |
24 | B4 | RGB signal cable |
25 | GND | Ground |
26 | B3 | RGB signal cable |
27 | LCD_CLK | LCD clock |
28 | DE | LCD data enable |
29 | B1 | RGB signal cable |
30 | GND | Ground |
31 | B2 | RGB signal cable |
32 | G0 | RGB signal cable |
33 | G1 | RGB signal cable |
34 | GND | Ground |
35 | NC | GPIO interface |
36 | G4 | RGB signal cable |
37 | NC | GPIO interface |
38 | R0 | RGB signal cable |
39 | GND | Ground |
40 | R1 | RGB signal cable |
Resource
3D Drawing
Software
Anti-Piracy
Since the first-generation Raspberry Pi released, Waveshare has been working on designing, developing, and producing various fantastic touch LCDs for the Pi. Unfortunately, there are quite a few pirated/knock-off products in the market. They're usually some poor copies of our early hardware revisions, and comes with none support service.
To avoid becoming a victim of pirated products, please pay attention to the following features when purchasing:
Beware of knock-offs
Please note that we've found some poor copies of this item in the market. They are usually made of inferior materials and shipped without any testing.
You might be wondering if the one you're watching or you've purchased in other non-official stores is original, feel free to contact us.
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)