Difference between revisions of "Template:RPi LCD User Manual"

From Waveshare Wiki
Jump to: navigation, search
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Getting Started ==
 
== Getting Started ==
<!-- [[File:RPi-LCD-User-Manual-1.jpg|thumb|150px|Enabling the virtual keyboard]] -->
 
 
The RPi LCD can be driven in two ways: Method 1. install driver to your Raspbian OS. Method 2. use the Ready-to-use image file of which LCD driver was pre-installed.
 
The RPi LCD can be driven in two ways: Method 1. install driver to your Raspbian OS. Method 2. use the Ready-to-use image file of which LCD driver was pre-installed.
  
 
=== Method 1. Driver installation ===
 
=== Method 1. Driver installation ===
Description: {{RPI LCD DRIVER}}
+
1. Download the lasted image from Raspberry Pi website and write it to SD card.
1. Configure your Pi:
+
 
 +
2. Connect RPi LCD to Raspberry Pi and  connect Pi to networking.
 +
 
 +
3. Configure your Pi:
 
  sudo raspi-config
 
  sudo raspi-config
 
Set as:
 
Set as:
Line 11: Line 13:
 
* Boot Option -> Desktop Autologin (may differ depending on Raspbian revision)
 
* Boot Option -> Desktop Autologin (may differ depending on Raspbian revision)
  
2. Copy the driver [[#Driver|(choose the driver according to your OS)]] into your OS then Run the following commands:
+
3.Open Terminal of Raspberry Pi (You may need to connect an keyboard and HDMI LCD to Pi for driver installing)
  tar xvf LCD-show-*.tar.gz
+
  git clone https://github.com/waveshare/LCD-show.git
 
  cd LCD-show/
 
  cd LCD-show/
This toggles the mode to LCD display:
+
'''Note: Net work connection is required while installing driver to your Pi, or else the touch won't work properly.'''
 
{{#switch: {{FULLPAGENAME}}
 
{{#switch: {{FULLPAGENAME}}
 
| 2.8inch RPi LCD (A) =
 
| 2.8inch RPi LCD (A) =
 
<pre>
 
<pre>
chmod +x LCD28-show
 
 
./LCD28-show
 
./LCD28-show
 
</pre>
 
</pre>
 
| 3.2inch RPi LCD (B) =
 
| 3.2inch RPi LCD (B) =
 
<pre>
 
<pre>
chmod +x LCD32-show
 
 
./LCD32-show
 
./LCD32-show
 +
</pre>
 +
| 3.2inch RPi LCD (C) =
 +
<pre>
 +
./LCD32C-show
 
</pre>
 
</pre>
 
| 3.5inch RPi LCD (A) =
 
| 3.5inch RPi LCD (A) =
Line 32: Line 36:
 
</pre>
 
</pre>
 
| 3.5inch RPi LCD (B) =
 
| 3.5inch RPi LCD (B) =
 +
 +
<font color=#777777>#If the LCD you have is old version, use this command: </font>
 
<pre>
 
<pre>
chmod +x LCD35B-show
 
 
./LCD35B-show
 
./LCD35B-show
 +
</pre>
 +
<font color=#777777>#If the LCD you have is V2 version, use this command:</font>
 +
<pre>
 +
./LCD35B-show-V2
 +
</pre>
 +
| 3.5inch RPi LCD (C) =
 +
<pre>
 +
./LCD-35C-show
 
</pre>
 
</pre>
 
| 4inch RPi LCD (A) =
 
| 4inch RPi LCD (A) =
 
<pre>
 
<pre>
chmod +x LCD4-show
 
 
./LCD4-show
 
./LCD4-show
 
</pre>
 
</pre>
| 5inch HDMI LCD =
+
| 4inch RPi LCD (C) =
 
<pre>
 
<pre>
chmod +x LCD5-show
+
./LCD4C-show
./LCD5-show
 
 
</pre>
 
</pre>
 
| #default =  
 
| #default =  
Line 50: Line 61:
 
chmod +x LCD*show
 
chmod +x LCD*show
 
</pre>
 
</pre>
* For 2.8inch RPi LCD (A):
 
./LCD28-show
 
* For 3.2inch RPi LCD (B):
 
./LCD32-show
 
* For 3.5inch RPi LCD (A):
 
./LCD35-show
 
* For 3.5inch RPi LCD (B):
 
./LCD35B-show
 
* For 4inch RPi LCD (A):
 
./LCD4-show
 
* For 5inch HDMI LCD:
 
./LCD5-show
 
 
}}
 
}}
  
Line 76: Line 75:
 
{{#switch: {{FULLPAGENAME}}
 
{{#switch: {{FULLPAGENAME}}
 
| 2.8inch RPi LCD (A) =
 
| 2.8inch RPi LCD (A) =
<pre>./LCD28-show</pre>
+
<pre>
 +
./LCD28-show
 +
</pre>
 
| 3.2inch RPi LCD (B) =
 
| 3.2inch RPi LCD (B) =
<pre>./LCD32-show</pre>
+
<pre>
 +
./LCD32-show
 +
</pre>
 +
| 3.2inch RPi LCD (C) =
 +
<pre>
 +
./LCD32C-show
 +
</pre>
 
| 3.5inch RPi LCD (A) =
 
| 3.5inch RPi LCD (A) =
<pre>./LCD35-show</pre>
+
<pre>
 +
chmod +x LCD35-show
 +
./LCD35-show
 +
</pre>
 
| 3.5inch RPi LCD (B) =
 
| 3.5inch RPi LCD (B) =
<pre>./LCD35B-show</pre>
+
 
 +
<font color=#777777>#If the LCD you have is old version, use this command: </font>
 +
<pre>
 +
./LCD35B-show
 +
</pre>
 +
<font color=#777777>#If the LCD you have is V2 version, use this command:</font>
 +
<pre>
 +
./LCD35B-show-V2
 +
</pre>
 +
| 3.5inch RPi LCD (C) =
 +
<pre>
 +
./LCD-35C-show
 +
</pre>
 
| 4inch RPi LCD (A) =
 
| 4inch RPi LCD (A) =
<pre>./LCD4-show</pre>
+
<pre>
| 5inch HDMI LCD =
+
./LCD4-show
<pre>./LCD5-show</pre>
+
</pre>
 +
| 4inch RPi LCD (C) =
 +
<pre>
 +
./LCD4C-show
 +
</pre>
 
| #default =  
 
| #default =  
* For 2.8inch RPi LCD (A):
+
<pre>
./LCD28-show
+
chmod +x LCD*show
* For 3.2inch RPi LCD (B):
+
</pre>
./LCD32-show
 
* For 3.5inch RPi LCD (A):
 
./LCD35-show
 
* For 3.5inch RPi LCD (B):
 
./LCD35B-show
 
* For 4inch RPi LCD (A):
 
./LCD4-show
 
* For 5inch HDMI LCD:
 
./LCD5-show
 
 
}}
 
}}
  
Line 131: Line 148:
 
  cd LCD-show/
 
  cd LCD-show/
 
  ./LCD32-show 270
 
  ./LCD32-show 270
 +
| 3.2inch RPi LCD (C) =
 +
* 0 degree rotation
 +
cd LCD-show/
 +
./LCD32C-show 0
 +
* 90 degree rotation
 +
cd LCD-show/
 +
./LCD32C-show 90
 +
* 180 degree rotation
 +
cd LCD-show/
 +
./LCD32C-show 180
 +
* 270 degree rotation
 +
cd LCD-show/
 +
./LCD32C-show 270
 
| 3.5inch RPi LCD (A) =
 
| 3.5inch RPi LCD (A) =
 
* 0 degree rotation
 
* 0 degree rotation
Line 146: Line 176:
 
| 3.5inch RPi LCD (B) =
 
| 3.5inch RPi LCD (B) =
 
* 0 degree rotation
 
* 0 degree rotation
  cd LCD-show/
+
  cd LCD-show
 +
  <font color=#777777>#if old version, use this command: </font>
 
  ./LCD35B-show 0
 
  ./LCD35B-show 0
 +
<font color=#777777>#if new version, use this command:</font>
 +
./LCD35B-show-V2 0
 +
 
* 90 degree rotation
 
* 90 degree rotation
 
  cd LCD-show/
 
  cd LCD-show/
 +
  <font color=#777777>#if old version, use this command: </font>
 
  ./LCD35B-show 90
 
  ./LCD35B-show 90
 +
<font color=#777777>#if new version, use this command:</font>
 +
./LCD35B-show-V2 90
 
* 180 degree rotation
 
* 180 degree rotation
 
  cd LCD-show/
 
  cd LCD-show/
 +
  <font color=#777777>#if old version, use this command: </font>
 
  ./LCD35B-show 180
 
  ./LCD35B-show 180
 +
<font color=#777777>#if new version, use this command:</font>
 +
./LCD35B-show-V2 180
 +
 
* 270 degree rotation
 
* 270 degree rotation
 
  cd LCD-show/
 
  cd LCD-show/
 +
  <font color=#777777>#if old version, use this command: </font>
 
  ./LCD35B-show 270
 
  ./LCD35B-show 270
 +
<font color=#777777>#if new version, use this command:</font>
 +
./LCD35B-show-V2 270
 +
| 3.5inch RPi LCD (C) =
 +
* 0 degree rotation
 +
cd LCD-show/
 +
./LCD35C-show 0
 +
* 90 degree rotation
 +
cd LCD-show/
 +
./LCD35C-show 90
 +
* 180 degree rotation
 +
cd LCD-show/
 +
./LCD35C-show 180
 +
* 270 degree rotation
 +
cd LCD-show/
 +
./LCD35C-show 270
 
| 4inch RPi LCD (A) =
 
| 4inch RPi LCD (A) =
 
* 0 degree rotation
 
* 0 degree rotation
Line 170: Line 227:
 
  cd LCD-show/
 
  cd LCD-show/
 
  ./LCD4-show 270
 
  ./LCD4-show 270
 +
| 4inch RPi LCD (C) =
 +
* 90 degree rotate
 +
cd LCD-show/
 +
./LCD4C-show 90
 +
* 180 degree rotate
 +
cd LCD-show/
 +
./LCD4C-show 180
 +
* 270 degree rotate
 +
cd LCD-show/
 +
./LCD4C-show 270
 
| #default =  
 
| #default =  
 
* For 2.8inch RPi LCD (A):
 
* For 2.8inch RPi LCD (A):
Line 179: Line 246:
 
* For 3.5inch RPi LCD (B):
 
* For 3.5inch RPi LCD (B):
 
  ./LCD35B-show degree
 
  ./LCD35B-show degree
 +
* For 3.5inch RPi LCD (C):
 +
./LCD35C-show degree
 
* For 4inch RPi LCD (A):
 
* For 4inch RPi LCD (A):
 
  ./LCD4-show degree
 
  ./LCD4-show degree
 +
* For 4inch RPi LCD (C):
 +
./LCD4C-show degree
 
The degree can be specified as 0, 90, 180, 270.
 
The degree can be specified as 0, 90, 180, 270.
 
}}
 
}}
Line 219: Line 290:
 
  sudo reboot
 
  sudo reboot
 
'''Notices: In case of inaccurate touch, please perform screen calibration again and reboot the system.'''
 
'''Notices: In case of inaccurate touch, please perform screen calibration again and reboot the system.'''
 +
{{Virtual Keyboard Installation}}
  
 
== How to work with a camera ==
 
== How to work with a camera ==
 +
<!--
 
RPi LCD can also work with an external camera to take photos. In this operation, a Raspberry Pi camera is required, which should be purchased separately.  
 
RPi LCD can also work with an external camera to take photos. In this operation, a Raspberry Pi camera is required, which should be purchased separately.  
  
Line 230: Line 303:
  
 
If you use the image with clean installation, you can setup the camera driver with:
 
If you use the image with clean installation, you can setup the camera driver with:
 
+
-->
 
1. Select "Enable Camera" -> "<YES>"
 
1. Select "Enable Camera" -> "<YES>"
 
  sudo raspi-config
 
  sudo raspi-config

Revision as of 10:29, 13 July 2019

Getting Started

The RPi LCD can be driven in two ways: Method 1. install driver to your Raspbian OS. Method 2. use the Ready-to-use image file of which LCD driver was pre-installed.

Method 1. Driver installation

1. Download the lasted image from Raspberry Pi website and write it to SD card.

2. Connect RPi LCD to Raspberry Pi and connect Pi to networking.

3. Configure your Pi:

sudo raspi-config

Set as:

  • Select Expand Filesystem.
  • Boot Option -> Desktop Autologin (may differ depending on Raspbian revision)

3.Open Terminal of Raspberry Pi (You may need to connect an keyboard and HDMI LCD to Pi for driver installing)

git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/

Note: Net work connection is required while installing driver to your Pi, or else the touch won't work properly.

chmod +x LCD*show

3. After system rebooting, the RPi LCD is ready to use.

Method 2. Using Ready-to-use image

The image file with 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 an .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 for more details). Then insert the card to your Pi, power up and enjoy it.

Toggle between LCD and HDMI display

Once this LCD is enabled, meanwhile the default settings for HDMI are changed. If you want to use another HDMI monitor, please run the following command:

cd LCD-show/
./LCD-hdmi

This toggles the mode to LCD display:

chmod +x LCD*show

Screen orientation settings

After touch driver installed, the screen orientation can be set by these commands:

  • For 2.8inch RPi LCD (A):
./LCD28-show degree
  • For 3.2inch RPi LCD (B):
./LCD32-show degree
  • For 3.5inch RPi LCD (A):
./LCD35-show degree
  • For 3.5inch RPi LCD (B):
./LCD35B-show degree
  • For 3.5inch RPi LCD (C):
./LCD35C-show degree
  • For 4inch RPi LCD (A):
./LCD4-show degree
  • For 4inch RPi LCD (C):
./LCD4C-show degree

The degree can be specified as 0, 90, 180, 270.

Touch screen calibration

This LCD can be calibrated using a program called xinput_calibrator which is pre-installed on the CD image. However, it was not pre-installed on original Raspbian OS. So in this case, you should get and install the program manually with

sudo apt-get install -y xinput-calibrator

Enter the following commands for touch screen calibration:

sudo DISPLAY=:0.0 xinput_calibrator

or select Menu -> Preferences -> Calibrate Touchscreen.

After running these commands, there will be a prompt for four-point calibration shown in the LCD screen. Click the points one by one to finish the touch calibration. Then, the new calibration data will be displayed in the terminal, as shows below. Please get these data for future use.

Doing dynamic recalibration:
Setting new calibration data: 3919, 208, 236, 3913

Enter the following command to edit 99-calibration.conf:

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Then, the old calibration data will be displayed in the terminal:

Section "InputClass"
Identifier	"calibration"
MatchProduct	"ADS7846 Touchscreen"
Option	"Calibration"	"160 3723 3896 181"
Option	"SwapAxes"	"1"
EndSection

Modify the calibration data to the new calibration data displayed above):

Section "InputClass"
Identifier	"calibration"
MatchProduct	"ADS7846 Touchscreen"
Option	"Calibration"	"3919 208 236 3913"
Option	"SwapAxes"	"1"
EndSection

Press the keys Ctrl+X, and select the option Y to save the modification.

The modification will be valid after rebooting the system. Enter the following command for system reboot:

sudo reboot

Notices: In case of inaccurate touch, please perform screen calibration again and reboot the system.

Control Backlight Brightness with GPIO

Use a 0R resistor or solder to connect this pad.
Virtual Keyboard Installation01.png
Execute the following command on the Raspberry Pi terminal to control the backlight brightness:

gpio -g pwm 18 1024
gpio -g mode 18 pwm (the occupied pins are PWM pins)
gpio pwmc 1000
gpio -g pwm 18 X (control brightness, X value is between 0~1024)


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 toggle 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 below: (It maybe different in different version)

Plugin {
type = launchbar
Config {
Button {
id=lxde-screenlock.desktop
}
Button {
id=lxde-logout.desktop
}
}

7. Append these statements to add an button option:

Button {
id=/usr/local/share/applications/toggle-matchbox-keyboard.desktop
}

RPILCD-INSTALL-KEYBOARD01.png

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


How to work with a camera

1. Select "Enable Camera" -> "<YES>"

sudo raspi-config

2. Copy the Camera driver to the OS of Pi then:

unzip camera.zip
cd camera
sudo chmod 777 Camera
sudo cp update\ camera/95-stmpe.rules /etc/udev/rules.d/

3. Create a file called wheezy.list.

sudo nano /etc/apt/sources.list.d/wheezy.list

Append:

deb http://archive.raspbian.org/raspbian wheezy main

Exit with save.

4. Create a file called 10defaultRelease.

sudo nano /etc/apt/apt.conf.d/10defaultRelease

Append:

APT::Default-release \"stable";

Exit with save.

5. Create a file called libsdl.

sudo nano /etc/apt/preferences.d/libsdl

Append:

Package: libsdl1.2debian
Pin: release n=jessie
Pin-Priority: -10
Package: libsdl1.2debian
Pin: release n=wheezy
Pin-Priority: 900

Exit with save.

6. Last, execute the commands:

sudo apt-get update
sudo apt-get -y --force-yes install libsdl1.2debian/wheezy
sudo apt-get install evtest tslib libts-bin xinput
sudo apt-get install python-pip 
sudo apt-get install python2.7-dev
sudo pip install picamera==1.10 
sudo reboot
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

Camera will be enabled by the steps above.