跳到主要内容

4inch DPI LCD (C) 产品说明

SKU产品
待补4inch DPI LCD (C)

产品特点​

  • 4寸IPS电容触摸屏,硬件分辨率为720×720
  • 基于Raspberry Pi 40pin GPIO接口设计
  • 通过Raspberry Pi的DPI666接口驱动LCD,刷新率可达60Hz
  • 通过Raspberry Pi的I2C接口驱动电容触摸,5点触控,钢化玻璃面板,硬度达6H
  • 支持Raspberry Pi OS、Ubuntu和Kali操作系统

搭配树莓派使用​

硬件连接​

请按下图连接将显示屏缓慢安装到树莓派的40PIN GPIO接口上。 4DPIC-Pi-4B

软件设置​

如果你不清楚Raspberry Pi OS的两个分支的差别,可以查看以下介绍#Raspberry Pi OS分支介绍

用于Raspberry Pi OS Bookworm和Bullseye分支​

请在树莓派官网下载最新版本的镜像。

1. 将压缩文件下载到PC上,并解压得到img文件。 2. TF卡连接到PC,使用SDFormatter软件格式化TF卡。 3. 打开Win32DiskImager软件,选择第1步准备的系统镜像,点击write烧写系统镜像。 4. 烧写完成后,打开TF卡根目录的config.txt文件,在config.txt末端加入以下代码并保存:

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. 下载4inch DPI LCD (C) DTBO文件并解压复制到overlays目录(/boot/overlays/) 6 保存并安全弹出TF卡,将TF卡插入树莓派。 7 给树莓派上电,正常等待约三十秒后可正常显示。

用于Raspberry Pi OS Buster分支和Ubuntu系统​

1. 打开TF卡根目录的config.txt文件,在config.txt最后加入以下代码,保存并安全弹出TF卡。

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. 下载4inch DPI LCD (C) DTBO文件并解压复制到overlays目录(/boot/overlays/) 3. 保存并安全弹出TF卡,将TF卡插入树莓派。 4. 将4inch DPI LCD插入到树莓派的40PIN GPIO接口上,给树莓派上电,正常等待约三十秒后可正常显示。

显示旋转​

Bookworm显示旋转​

GUI 界面旋转

  • 1.打开"Screen Configuration"应用程序;

DSI-LCD-Bookworm-Rotate-01

  • 2.进入"Screen"->"DPI-1"->"Touchscreen" ,勾选"13-005d Goodix Capacitive TouchScreen"

2

  • 3.进入"Screen"->"DPI-1"->"Orientation" ,勾选您需要旋转的方向,最后点击“Apply”,即可完成显示屏和触摸的同步旋转。

2 -->
注意:仅Bookworm系统支持以上同步旋转方法。对于Bullseye和Butser系统,显示旋转后,需手动单独设置触摸旋转。

lite版本显示旋转

sudo nano /boot/firmware/cmdline.txt
#在cmdline.txt文件开头添加对应显示旋转角度的指令,保存重启后生效
#显示旋转90度
video=DPI-1:720x720M@60,rotate=90
#显示旋转180度
video=DPI-1:720x720M@60,rotate=180
#显示旋转270度
video=DPI-1:720x720M@60,rotate=270

注意:无法使用 cmdline.txt 将 DPI 显示器与 HDMI 显示器分开旋转。当您同时使用 DPI 和 HDMI 时,它们共享相同的旋转值。

Bullseye/Buster显示旋转​

GUI 界面旋转

  • 1.打开"Screen Configuration"应用程序;

DSI-LCD-Bullseye-Rotate-02

  • 2.进入"Screen"->"DPI-1"->"Orientation" ,勾选您需要旋转的方向,最后点击"Apply",即可完成显示旋转。

DSI-LCD-Bullseye-Rotate-03

lite版本显示旋转

  • 1.需要修改/boot/cmdline.txt文件:

    sudo nano /boot/cmdline.txt
  • 2.在cmdline.txt文件开头,添加对应显示旋转角度的指令:(请注意,该命令需要放在同一行上,每个命令用空格分隔。)

    video=DPI-1:720x720M@60,rotate=90

通过将rotate值更改为 90、180 或 270 来更改显示旋转的角度。

  • 3.保存并重新启动

    sudo reboot

Stretch/Jessie显示旋转​

对于一些比较古老的系统,它们不使用vc4-kms-v3d 或 vc4-fkms-v3d 驱动模式,显示旋转方法如下

  • 1. 在config.txt文件中加入语句(config文件位于TF卡根目录,即/boot中):

    display_rotate=1 #1:90;2: 180; 3: 270
  • 2. 保存后重启树莓派即可

    sudo reboot

触摸旋转​

Bookworm 触摸旋转​

如果使用图形界面进行旋转,可以在屏幕布局编辑器窗口中勾选“Touchscreen”来同步触摸旋转。屏幕旋转方法请参考前面的介绍。命令行旋转方法请参考以下文字:
1. 创建一个名为的新文件99-waveshare-touch.rules

sudo nano /etc/udev/rules.d/99-waveshare-touch.rules

2. 根据需要添加以下行:

#90°:
ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"

#180°:
#ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"

#270°:
#ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

3. 保存并重启

sudo reboot

Bullseye/Buster 触摸旋转​

部分系统显示旋转后,触摸方向不一致,需要按下文操作进行触摸旋转:
1. 安装libinput

sudo apt-get install xserver-xorg-input-libinput
  • 如果你安装的是Ubuntu系统,或者是Jetson Nano。安装指令为

    sudo apt install xserver-xorg-input-synaptics

2. 在/etc/X11/下创建xorg.conf.d目录 (如果该目录已存在,这直接进行第3步)

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

3. 复制40-libinput-conf 文件到刚刚创建的目录下

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

4. 编辑该文件

sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
#找到 touchscreen的部分,在里面添加对应的旋转角度指令,然后保存即可
#90°Right触摸旋转:
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
#180° Inverted触摸旋转:
#Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
#270° Left旋转:
#Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
类似下图位置:

Touch roate

5. 重启树莓派

sudo reboot

完成以上步骤后触摸将会进行旋转。

触摸模式选择​

Bookworm系统支持两种触控模式,可在 Screen Configuration > Touchscreen 菜单中切换:

DSI-Touch-Bookworm-Keyboard-03

  • 1.Mouse Emulation(默认)

    单击 = 鼠标左键功能
    长按 = 鼠标右键功能
    支持双击
    不支持滑动页面和多点触摸功能

注:此模式适合需要鼠标操作的场景,如双击打开文件管理器,长按实现右键功能。

  • 2.Multitouch

    支持多点触摸功能
    支持滑动页面
    不支持双击和长按右键功能

注:此模式适合触控优化场景,如网页浏览、滚动列表。

使用触摸屏虚拟键盘​

从 Raspberry Pi OS Bookworm 版本开始,系统默认集成了 Squeekboard 屏幕键盘。
当连接触摸显示屏时,在可以输入文字的情况下,屏幕键盘会自动显示;而在无法输入文字的情况下,它会自动隐藏。
对于不支持自动检测文字输入的应用程序,可以使用任务栏最右侧的键盘图标手动显示或隐藏屏幕键盘。

DSI-Touch-Bookworm-Keyboard-01

你也可以通过“Raspberry Pi Configuration”中的“Display”选项栏目,或通过 raspi-config 中的“Display”部分,来永久设置屏幕键盘的显示或隐藏。

DSI-Touch-Bookworm-Keyboard-02

  • 提示:

在 Raspberry Pi OS 的 Bookworm 之前的版本中,请使用 matchbox-keyboard。如果你使用的是 wayfire 桌面合成器,请使用 wvkbd。

设置屏幕常亮​

有些用户希望显示时,不受屏幕保护功能影响,可以通过如下设置。将屏幕保护功能关闭。
打开 lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

修改 lightdm.conf 找到[SeatDefaults]段下的"xserver-command",取消注释,修改为如下:

#xserver-command=X

修改为

xserver-command=X -s 0 -dpms
  • -s # –设置屏幕保护不启用
  • dpms 关闭电源节能管理

重启

sudo reboot

调节背光​

PWM调光​

  • 安装WiringPi

    cd ~
    git clone https://github.com/WiringPi/WiringPi.git
    cd WiringPi
    ./build
    gpio -v

安装成功会输出gpio version版本,如下所示:

3

  • 手动调节显示器PWM背光

    gpio -g mode 18 pwm #占用管脚为PWM管脚
    gpio pwmc 100 #设置 PWM 时钟分频器
    gpio -g pwm 18 0 #最暗
    gpio -g pwm 18 1023 #最亮
    gpio -g mode 18 out #释放为输出
  • 设置屏幕的关闭和开启

用户可以通过以下命令设置屏幕的关闭和开启。

注意:需要PWM引脚释放为输出才可以控制。

sudo echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
sudo echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power

pinctrl调光​

  • 设置亮屏

    sudo pinctrl set 18 op dh
  • 设置息屏

    sudo pinctrl set 18 op dl

接口定义​

以下标识为“NC”的引脚表示触摸屏没有占用该引脚,用户可用于其它应用。

引脚号标识描述
1NC电源正(3.3V电源)
25V电源正(5V电源)
3VSYNC垂直同步
45V电源正(5V电源)
5HSYNC水平同步
6GND电源地
7B0RGB信号线
8G2RGB信号线
9GND电源地
10G3RGB信号线
11G5RGB信号线
12PWMGPIO接口
13TP_INT触摸面板的中断
14GND电源地
15R2RGB信号线
16R3RGB信号线
17NC电源正(3.3V电源)
18R4RGB信号线
19TP_SDA触摸面板的I2C SDA
20GND电源地
21B5RGB信号线
22R5RGB信号线
23TP_SCL触摸面板的I2C SCL
24B4RGB信号线
25GND电源地
26B3RGB信号线
27LCD_CLKLCD时钟
28DELCD数据使能
29B1RGB信号线
30GND电源地
31B2RGB信号线
32G0RGB信号线
33G1RGB信号线
34GND电源地
35NCGPIO接口
36G4RGB信号线
37NCGPIO接口
38R0RGB信号线
39GND电源地
40R1RGB信号线