3.4inch DSI LCD (C)
| ||
Features
- 3.4inch DSI round display with ten-point capacitive touch control
- IPS display panel with a hardware resolution of 800×800
- Adopt the optical bonding process, clearer picture quality
- Toughened glass touch panel, hardness up to 6H
- Support Pi5/CM5/4B/CM4/3B+/3A+/3B/CM3+/CM3
- Directly drive the LCD by the DSI interface on the Raspberry Pi, with up to 60Hz refreshing rate
- Supports Bookworm/Bullseye/Buster systems when working with Raspberry Pi
- Supports software control of backlight brightness
Video Tutorial
Interface Definition
| PIN | Label |
|---|---|
| 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 Pi5/CM5/CM4/CM3+/CM3
1. Use the DSI-Cable-12cm cable to connect the DSI port of the display to the 22PIN DSI1 port of the Raspberry Pi motherboard.
2. Install the Raspberry Pi with its back facing downwards onto the display board, and connect it to the 5V power supply and I2C communication via the 4PIN header.
The installation effect is as follows:
Working with Pi4B/3B+/3B/3A+
1. Use the 15PIN FPC cable to connect the DSI interface of display to the DSI interface of the Raspberry Pi board.
2. Install the Raspberry Pi with its back facing downwards onto the display board, and connect it to the 5V power supply and I2C communication via the 4PIN header.
The installation effect is as follows:
Software Setting
⚠️ Confirm the Model before Configuration
Incorrect configuration may cause issues such as the screen not lighting up, black screen, or backlight on but no image. Please be sure to confirm your specific product model before configuration.
- Applicable model: 3.4inch DSI LCD (C)
- Not applicable to: 3.4-DSI-TOUCH-C or other 3.4inch DSI models
Working with Trixie and Bookworm
Method 1: Use Raspberry Pi Imager to Flash Latest Official Image
- 1. Connect the TF card to the PC, download and use Raspberry Pi Imager to flash the corresponding system image.
- 2. After the image flashing is completed, open the config.txt file in the root directory of the TF card, add the following code to the end of the config.txt file, save and safely eject the TF card.
Note: Since Pi5/CM5/CM4/CM3+/CM3 have two MIPI DSI interfaces, please note that the correct DSI interfaces and commands are used, DSI1 is recommended by default.
dtoverlay=vc4-kms-v3d #DSI1 Use dtoverlay=vc4-kms-dsi-waveshare-panel,3_4_inch #DSI0 Use #dtoverlay=vc4-kms-dsi-waveshare-panel,3_4_inch,dsi0
- 3. Insert the TF card into the Raspberry Pi, power on the Raspberry Pi, and wait for a few seconds normally to enter the display. After the system starts, the touch function can be used normally.
Method 2: Use the Pre-installed Image
1. Select the corresponding Raspberry Pi version image, download and unzip it as .img file.
Raspberry 3/4B/CM4/5 version download: Waveshare DSI LCD - Pi3/4B/CM4/5 pre-installed image
2. Connect the TF card to the PC, format the TF card with SDFormatter.
3. Open Win32DiskImager, select the prepared system image, and click "Write" to start flashing.
4. After the flashing is completed, open the config.txt file in the root directory of the TF card, find the line "[all]", according to your display model, uncomment the relevant lines to enable the DSI display, and then save and safely eject the TF card.
Note: For Pi5/CM4/CM3+/CM3, since there are two MIPI DSI display interfaces, please make sure to use the correct display interface and commands, the DSI1 display interface is recommended by default.
Let's take the 8.8inch DSI LCD as an example:
Use DSI1 interface:
#8.8inch DSI LCD dtoverlay=vc4-kms-dsi-waveshare-panel,8_8_inch
Use DSI0 interface:
#8.8inch DSI LCD dtoverlay=vc4-kms-dsi-waveshare-panel,8_8_inch,dsi0
5. Insert the TF card into the Raspberry Pi, power on and start, wait for a few seconds to enter the system display, and the touch function can also work normally.
For Bullseye and Buster Systems
Method 1: Install Driver Manually
1. Download the latest version of the image from the Raspberry Pi official website, download the compressed file to your PC, and extract it as .img file.
2. Connect the TF card to the PC, format the TF card with SDFormatter software.
3. Open the Win32DiskImager software, select the system image prepared in step 1, and click Write to flash the system image.
4. After the flashing is completed, connect the TF card to the Raspberry Pi, start the Raspberry Pi, and log in to the terminal of the Raspberry Pi (you can connect the Raspberry Pi to the HDMI display or use ssh to log in remotely).
#Step 1: Download and enter the Waveshare-DSI-LCD driver folder git clone https://github.com/waveshare/Waveshare-DSI-LCD cd Waveshare-DSI-LCD
#Step 2: Enter uname -a on the terminal to view the kernel version, and cd it to the corresponding file directory #If the kernel version is 6.1.21, run the following command: cd 6.1.21
#Step 3: Please determine the bits of the current system you are using. For a 32-bit system, proceed to the 32 directory, and for a 64-bit system, proceed to the 64 directory cd 32 #cd 64
#Step 4: Enter your corresponding model command to install the driver, pay attention to the selection of the I2C dip switches #3.4inch DSI LCD(C) 800×800 Driver: sudo bash ./WS_xinchDSI_MAIN.sh 34C I2C0
#Step 5: Wait for a few seconds, when the driver installation is complete and no error is displayed, restart and load the DSI driver to use it normally sudo reboot #Note: The steps above require that the Raspberry Pi can connect to the Internet normally
5. Wait for the system to restart, and it will be able to display and touch normally.
Method 2: Flash Pre-installed Image
1. Select your corresponding Raspberry Pi version image, download and unzip it as .img file.
Raspberry Pi 4B/CM4 version download: Waveshare DSI LCD - Pi4 pre-installed image
Raspberry 3B/3B+/CM3 Version Download: Waveshare DSI LCD - Pi3 pre-installed image
2. Connect the TF card to the PC, format the TF card with SDFormatter software.
3. Open the Win32DiskImager software, select the system image prepared in step 1, and click Write to flash the system image.
4. After the flashing is completed, open the config.txt file in the root directory of the TF card, add the following code under [all], save and safely eject the TF card.
dtoverlay=WS_xinchDSI_Screen,SCREEN_type=9,I2C_bus=10 dtoverlay=WS_xinchDSI_Touch,I2C_bus=10
5. Connect the TF card to the Raspberry Pi, start the Raspberry Pi, and wait for about 30 seconds before it can be displayed and the touch function can be used normally.
Precautions for Buster System
1. Update the system to execute the following commands
sudo apt-get update sudo apt-get full-upgrade
After updating the system, some files of the originally installed driver may be overwritten, and you need to reinstall the driver to display it normally.
2. Replace the motherboard
If the driver originally installed on the Raspberry Pi 4 Model B, if the user changes the motherboard, such as changing it to the Raspberry Pi 3 Model B+, the display will not display properly.
Because Pi4 and Pi3 need to load different driver files, you need to reinstall the driver according to Method 1: Install Driver Manually on the new motherboard for it to display normally.
Adjust Backlight Brightness
Graphical Interface Backlight Adjustment
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";
- 2. Go to "Screen" -> "DSI-2" -> "Brightness", select and adjust the desired backlight brightness, and finally click "Apply" to save the settings.
You can also use the graphical backlight adjustment tool provided by Waveshare:
wget https://files.waveshare.com/wiki/common/Brightness.zip unzip Brightness.zip cd Brightness sudo chmod +x install.sh ./install.sh
After the installation is completed, you can open the demo in the Start Menu -> Accessories -> Brightness, as shown below:
Adjust Backlight Brightness Using Terminal
echo X | sudo tee /sys/class/backlight/*/brightness
Where X represents any number from 0 to 255. 0 means the darkest backlight, and 255 means the brightest backlight. For example:
echo 100 | sudo tee /sys/class/backlight/*/brightness echo 0 | sudo tee /sys/class/backlight/*/brightness echo 255 | sudo tee /sys/class/backlight/*/brightness
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";
- 2. Go to "Screen" -> "DSI-1" -> "Touchscreen" and check "10-0014 Goodix Capacitive TouchScreen";
- 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.
- In the Bookworm system, this setting entry is located at "Screen Configuration" -> "Screen".
Bullseye/Buster Display Rotation
- 1. Open the "Screen Configuration" application;
- 2. Go to "Screen" -> "DS-1" -> "Orientation", check the direction you need to rotate, and finally click "Apply" to complete the display rotation.
Bullseye/Buster Touch Rotation
sudo nano /boot/config.txt # The command to modify the touch rotation angle at the end of the config.txt file will take effect after restarting (the command for 0° touch direction exists by default) #0°: dtoverlay=WS_xinchDSI_Touch,invertedx,swappedxy #90°: dtoverlay=WS_xinchDSI_Touch,invertedx,invertedy #180°: dtoverlay=WS_xinchDSI_Touch,invertedy,swappedxy #270°: dtoverlay=WS_xinchDSI_Touch
lite Version Display Rotation
sudo nano /boot/cmdline.txt #Add a command to display the rotation angle at the beginning of the cmdline.txt file, and save it to take effect after restarting #Display rotation 90 degrees video=DSI-1:800x800e,rotate=90 #Display rotation 180 degrees video=DSI-1:800x800e,rotate=180 #Display rotation 270 degrees video=DSI-1:800x800e,rotate=270
Set Screen Off and On
Run the following command on the Raspberry Pi terminal and the screen will be turned off:
wlr-randr --output DSI-2 --off # DSI-2 needs to be modified to the actual display in use, e.g. "DSI-1" or "HDMI-A-1"
Run the following command on the Raspberry Pi terminal and the screen will be turned on:
wlr-randr --output DSI-2 --on # DSI-2 needs to be modified to the actual display in use, e.g. "DSI-1" or "HDMI-A-1"
Note: This command is only applicable to the Labwc and Wayfire graphical interfaces and not to the X11 graphical interface.
Screen Sleep
Run the following command on the Raspberry Pi terminal and the screen will enter sleep mode:
xset dpms force off
Note: This command is only applicable to the X11 graphical interface and not to the Labwc and Wayfire graphical interfaces.
Disable Touch
At the end of the config.txt file, add the following command corresponding to disabling touch (the config file is located in the root directory of the TF card, which can also be accessed via the command: sudo nano /boot/config.txt):
disable_touchscreen=1
Note: After adding a command, it needs to be restarted to take effect.
Resources
3D Diagrams
Project Resources
This section features third - party project resources. We merely provide links and bear no responsibility for content updates or maintenance. Thank you for your understanding.
VEEB Projects- a Transparent Computer Using a 150-Year-Old Illusion!
FAQ
Replace the image in this directory /usr/share/plymouth/themes/pix/splash.png with the custom image.
{{{5}}}
300cd/㎡
Not exactly.
Due to the high power consumption of this screen, the DSI cable does not provide sufficient power, and additional power must be supplied through the pin header or Type-C port to ensure the normal operation of the display and touch functions.
By default, the DIP switch is set to I2C-0, and communication is done via the I2C channel in the DSI cable. At this time, communication can be done via DSI, but additional power supply is still required (through either pin header or Type-C).
If you want to change to use the 40Pin I2C port (I2C-1) of the Raspberry Pi for communication, you need to:
- Switch the dip switch to I2C-1
- Use the pin header or 4Pin cable to connect the SDA, SCL, 5V, and GND pins of the Raspberry Pi
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)





