='''Overview'''=
== '''Introduction''' ==
4inch Touch Screen TFT LCD Designed for Raspberry Pi.
{{Amazon|{{#ifeq: {{#urlget:amazon|0}}|{{#urlget:Amazon|0}}| default|}}=display
|More = [http://www.waveshare.com/4inch-RPi-LCD-A.htm More]}}
== '''Features''' ==
* The hardware resolution is 480 x 320.
* Resistive touch control.
* It is compatible and can be directly inserted into any version of Raspberry Pi.
* Drivers provided (works with your own Raspbian/Ubuntu/Kali and Retropie system directly).
* Support FBCP software driver, can set the software resolution and dual-screen display.
* IPS screen, with wide viewing angle and outstanding display effect.
== '''Getting Started''' ==
=== Hardware Connection ===
* There are 40 pins on Raspberry Pi, but there are 26 pins on the LCD, so you should pay attention to connecting the pins to your Pi accordingly.
===Install the touch driver===
The RPi LCD can be driven in two ways: Method 1. Install a driver to your Raspbian OS. Method 2. Use the Ready-to-use image file of which the LCD driver was pre-installed.
''' Method 1. Driver installation'''
Please download the latest version of the image on the [https://www.raspberrypi.org/downloads/ Raspberry Pi official website.] (Raspbian/Ubuntu Mate/Kali or Retropie)
1) Download the compressed image file to the PC, and unzip it to get the .img file.
2) Connect the TF card to the PC, open the [https://files.waveshare.com/upload/7/76/Win32DiskImager.zip Win32DiskImager] software, select the system image downloaded in step 1, and click 'Write' to write the system image. (How to write an image to a micro SD card for your Pi? See [[RPi-Image-Installation-Guides|RPi Image Installation Guides]] for more details.)
3) Connect the TF card to the Raspberry Pi, and start the Raspberry Pi. The LCD will display after booting up, and then log in to the Raspberry Pi terminal,(You may need to connect a keyboard and HDMI LCD to Pi for driver installation, or log in remotely with SSH).
4) Then open the terminal of Raspberry Pi to install the touch driver.
git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
'''Note: The Raspberry Pi must be connected to the network, or else the touch driver won't be successfully installed.'''
{{#switch: {{FULLPAGENAME}}
| 2.8inch RPi LCD (A) =
chmod +x LCD28-show
If it is an old version, execute the following code:
sudo ./LCD28-show
If it is a new version, execute the following code:
sudo ./LCD28-show-V2
| 3.2inch RPi LCD (B) =
chmod +x LCD32-show
./LCD32-show
| 3.2inch RPi LCD (C) =
chmod +x LCD32C-show
./LCD32C-show
| 3.5inch RPi LCD (A) =
chmod +x LCD35-show
./LCD35-show
| 3.5inch RPi LCD (B) =
#if old version, use this command:
chmod +x LCD35B-show
./LCD35B-show
#if new version, use this command:
chmod +x LCD35B-show-V2
./LCD35B-show-V2
| 3.5inch RPi LCD (C) =
chmod +x LCD35C-show
./LCD35C-show
| 4inch RPi LCD (A) =
chmod +x LCD4-show
./LCD4-show
| 4inch RPi LCD (C) =
chmod +x LCD4C-show
./LCD4C-show
| #default =
* For 2.8inch RPi LCD (A):
./LCD28-show
* For 3.2inch RPi LCD (B):
./LCD32-show
* For 3.2inch RPi LCD (C):
./LCD32C-show
* For 3.5inch RPi LCD (A):
./LCD35-show
* For 3.5inch RPi LCD (B):
./LCD35B-show
* For 3.5inch RPi LCD (C):
./LCD35C-show
* For 4inch RPi LCD (A):
./LCD4-show
* For 4inch RPi LCD (C):
./LCD4C-show
}}
The touch function will work after restarting. For ease of use, you can set the screen orientation, see: [[#Screen orientation settings]].
'''Notes:'''
*1. Executing apt-get upgrade will cause the LCD to fail to work properly. In this case, you need to edit the config.txt file in the SD card and delete this sentence: dtoverlay=ads7846.
*2. Using Raspbian-lite, the command of the touch driver installation should be:
{{#switch: {{FULLPAGENAME}}
| 2.8inch RPi LCD (A) =
./LCD28-show lite
| 3.2inch RPi LCD (B) =
./LCD32-show lite
| 3.2inch RPi LCD (C) =
./LCD32C-show lite
| 3.5inch RPi LCD (A) =
./LCD35-show lite
| 3.5inch RPi LCD (B) =
#if old version, use this command:
./LCD35B-show lite
#if new version, use this command:
./LCD35B-show-V2 lite
| 3.5inch RPi LCD (C) =
./LCD35C-show lite
| 4inch RPi LCD (A) =
./LCD4-show lite
| 4inch RPi LCD (C) =
./LCD4C-show lite
| #default =
* For 2.8inch RPi LCD (A):
./LCD28-show lite
* For 3.2inch RPi LCD (B):
./LCD32-show lite
* For 3.2inch RPi LCD (C):
./LCD32C-show lite
* For 3.5inch RPi LCD (A):
./LCD35-show lite
* For 3.5inch RPi LCD (B):
./LCD35B-show lite
* For 3.5inch RPi LCD (C):
./LCD35C-show lite
* For 4inch RPi LCD (A):
./LCD4-show lite
* For 4inch RPi LCD (C):
./LCD4C-show lite
}}
'''Method 2. Using Ready-to-use image'''
The image file with the pre-installed driver is located in the IMAGE directory of the CD, or you can download it from [[#Image]]. Extract the .7z file and you will get a .img file. Write the image to your micro SD card (How to write an image to a micro SD card for your Pi? See [[RPi-Image-Installation-Guides|RPi Image Installation Guides]] for more details). Then insert the card into your Pi, power up, and enjoy it.
== '''Screen orientation settings''' ==
After installing the touch driver, you can modify the screen rotation direction by running the following commands.
cd LCD-show/
#X can be 0, 90, 180 and 270. Indicates that the LCD rotates 0 degrees, 90 degrees, 180 degrees and 270 degrees, respectively.
#If it is an old version, execute the following code:
sudo ./LCD28-show X
#If it is a new version, execute the following code:
sudo ./LCD28-show-V2 X
The rotation command under Raspbian-lite is as follows:
cd LCD-show/
#X can be 0, 90, 180 and 270. Indicates that the LCD rotates 0 degrees, 90 degrees, 180 degrees and 270 degrees, respectively.
#If it is an old version, execute the following code:
sudo ./LCD28-show lite X
#If it is a new version, execute the following code:
sudo ./LCD28-show-V2 lite X
== '''Touch screen calibration''' ==
This LCD can be calibrated through the xinput-calibrator program. '''Note: The Raspberry Pi must be connected to the network, or else the program won't be successfully installed.'''
*Run the following command to install:
sudo apt-get install xinput-calibrator
* Click the "Menu" button on the taskbar, choose "Preference" -> "Calibrate Touchscreen".
* Finish the touch calibration following the prompts. Maybe rebooting is required to make calibration active.
* You can create a 99-calibration.conf file to save the touch parameters (not necessary if file exists).
sudo nano /etc/X11/xorg.conf.d/99-calibration.conf
* Save the touch parameters (may differ depending on LCD) to 99-calibration.conf, as shown in the picture:
[[File:5inch_HDMI_LCD_FAQ1.jpg]]
== '''Install Virtual Keyboard''' ==
1. Install matchbox-keyboard
sudo apt-get install update
sudo apt-get install matchbox-keyboard
sudo nano /usr/bin/toggle-matchbox-keyboard.sh
2. Copy the statements below to toggle-matchbox-keyboard.sh and save.
#!/bin/bash
#This script toggles the virtual keyboard
PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
killall matchbox-keyboard
else
matchbox-keyboard -s 50 extended&
fi
3. Execute the commands:
sudo chmod +x /usr/bin/toggle-matchbox-keyboard.sh
sudo mkdir /usr/local/share/applications
sudo nano /usr/local/share/applications/toggle-matchbox-keyboard.desktop
4. Copy the statements to toggle-matchbox-keyboard.desktop and save.
[Desktop Entry]
Name=Toggle Matchbox Keyboard
Comment=Toggle Matchbox Keyboard`
Exec=toggle-matchbox-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True
5. Execute commands as below. '''Note that you need to use "Pi " user permission instead of root to execute this command.'''
sudo nano /etc/xdg/lxpanel/LXDE-pi/panels/panel
6. Find the statement which is similar to the one below: (It may be different in different versions).
Plugin {
type = launchbar
Config {
Button {
id=lxde-screenlock.desktop
}
Button {
id=lxde-logout.desktop
}
}
7. Append these statements to add a button option:
Button {
id=/usr/local/share/applications/toggle-matchbox-keyboard.desktop
}
[[File:RPILCD-INSTALL-KEYBOARD01.png|400px]]
8. Reboot your Raspberry Pi. If the virtual keyboard is installed correctly, you can find that there is a keyboard icon on the left of the bar
sudo reboot
== '''Interface''' ==
{|class="wikitable"
! PIN NO. !! SYMBOL !! DESCRIPTION
|-
| 1, 17 || 3.3V || Power positive (3.3V power input)
|-
| 2, 4 || 5V || Power positive (5V power input)
|-
| 3, 5, 7, 8, 10, 12, 13, 15, 16 || NC || NC
|-
| 6, 9, 14, 20, 25 || GND || Ground
|-
| 11 || TP_IRQ || Touch Panel interrupt, low level while the Touch Panel detects touching
|-
| 18 || LCD_RS || Command/data register selection
|-
| 19 || LCD_SI / TP_SI || LCD display/SPI data input of Touch Panel
|-
| 21 || TP_SO || SPI data output of Touch Panel
|-
| 22 || RST || Reset
|-
| 23 || LCD_SCK / TP_SCK || LCD display/SPI clock of Touch Panel
|-
| 24 || LCD_CS || LCD chip selection, low active
|-
| 26 || TP_CS || Touch Panel chip selection, low active
|}
= '''Resources''' =
===User Manual===
*[https://files.waveshare.com/upload/1/1e/RPi_LCD_User_Manual_EN.pdf RPi LCD User Manual]
=== Image ===
Description: if you felt hard to install the driver, try the image with the driver pre-installed.
*[https://drive.google.com/open?id=1y8Lh-i-ju6-p-kcO2JGsmPWQAAWZ3xMl RPi-4inch-Raspbian-180326.7z]
*[https://drive.google.com/file/d/1yGBu9PSxowWVun1PCOBGDUSX8nPqYG6l/view?usp=sharing 4inch RPI LCD (A)_22020404_32_bullesye.zip]
=== Driver ===
{{RPI LCD DRIVER}}
=== Software ===
* [https://files.waveshare.com/upload/d/d7/Panasonic_SDFormatter.zip Panasonic SDFormatter]
* [https://files.waveshare.com/upload/7/76/Win32DiskImager.zip Win32DiskImager]
* [https://files.waveshare.com/upload/5/56/Putty.zip PuTTY]
===Diemension===
*[https://files.waveshare.com/upload/3/3d/4inch_RPi_LCD_A_panel_dimension.pdf View area of the 4inch LCD panel]
= '''FAQ''' =
{{RPI HDMI GPIO LCD FAQ}}
='''Support'''=
{{Servicebox1}}
[[Category:OLEDs / LCDs|OLEDs / LCDs]] [[Category:LCD|LCD]] [[Category:Raspberry Pi|Raspberry Pi]] [[Category:Raspberry Pi LCD|Raspberry Pi LCD]]