Difference between revisions of "UCTRONICS LCD35 RPI (SPI interface)"

From UCTRONICS
Jump to: navigation, search
(How to burn the UCTRONICS_LCD35_RPI.img?)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
===UCTRONICS 3.5 Inches 480 x 320 TFT LCD Touch Screen Display===
+
==UCTRONICS 3.5 Inches 480 x 320 TFT LCD Touch Screen Display==
 
'''Model: U4703'''
 
'''Model: U4703'''
====Introduction====
+
===Introduction===
 
UCTRONICS 3.5" TFT LCD display module is designed for Raspberry Pi zero/Pi 2 /Pi 3 Model B / B+ and can also be used on other hardware platforms with have SPI interface. The 3.5" screen is the same size as the standard Raspberry Pi model B/B+, and well mate with the Raspberry Pi boards. With its touch screen, it is suitable for portable devices and projects, and it is a replacement for a heavy and bulky HDMI monitor, keyboard and mice. The highlight of this display module, it supports plug and play without reboot the Pi, and SPI speed runs as fast as 32MHz to support games and videos.
 
UCTRONICS 3.5" TFT LCD display module is designed for Raspberry Pi zero/Pi 2 /Pi 3 Model B / B+ and can also be used on other hardware platforms with have SPI interface. The 3.5" screen is the same size as the standard Raspberry Pi model B/B+, and well mate with the Raspberry Pi boards. With its touch screen, it is suitable for portable devices and projects, and it is a replacement for a heavy and bulky HDMI monitor, keyboard and mice. The highlight of this display module, it supports plug and play without reboot the Pi, and SPI speed runs as fast as 32MHz to support games and videos.
====Specification====
+
===Specification===
 
{| border="1" cellspacing="5" cellpadding="5" align="center"
 
{| border="1" cellspacing="5" cellpadding="5" align="center"
 
| Support Kernel from 4.1 to 4.9
 
| Support Kernel from 4.1 to 4.9
Line 20: Line 20:
 
|Well mate with Pi Zero, Pi B+, Pi2 and Pi3
 
|Well mate with Pi Zero, Pi B+, Pi2 and Pi3
 
|}
 
|}
====Hardware installation====
+
===Hardware installation===
  
 
         [[Image:SPI_hardware.png|220px|]]            [[Image:LCD35_SPI.jpg|220px|]]
 
         [[Image:SPI_hardware.png|220px|]]            [[Image:LCD35_SPI.jpg|220px|]]
Line 27: Line 27:
 
The Figure 1 shows the display module pin out and dimension. Connect the 3.5inch LCD to the Raspberry Pi board like the Figure 2 shows. Power on the Raspberry Pi board and make sure the internet is connected properly.
 
The Figure 1 shows the display module pin out and dimension. Connect the 3.5inch LCD to the Raspberry Pi board like the Figure 2 shows. Power on the Raspberry Pi board and make sure the internet is connected properly.
 
Note: LCD module pin1 should be aligned to Raspberry Pi board Pin1, misalign might cause damage.
 
Note: LCD module pin1 should be aligned to Raspberry Pi board Pin1, misalign might cause damage.
====Download and install driver====
+
===Download and install driver===
The LCD driver has been already installed in the Micro SD card shipped only with the kit that includes a Micro SD card. The following steps are for install the driver on a clean system. All the installation steps are also available from our github: https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI/
+
The LCD driver has been already installed in the Micro SD card shipped only with the kit that includes a Micro SD card. The following steps are for install the driver on a clean system. All the installation steps are also available from our github:  
*Step1 Expand the Micro SD card
+
https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI/
 +
 
 +
Step1: Expand the Micro SD card
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo raspi-config''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo raspi-config''</span></code>
Line 35: Line 37:
 
then Select Advanced Operations -> <code><span style="color: rgb(0,0,255)"> ''Expand Filesystem''</span></code> and hit <code><span style="color: rgb(0,0,255)"> ''YES''</span></code> , then go to <code><span style="color: rgb(0,0,255)"> ''Finish''</span></code>  and you need to run  <code><span style="color: rgb(0,0,255)"> ''sudo reboot''</span></code> to reboot your Raspberry Pi.
 
then Select Advanced Operations -> <code><span style="color: rgb(0,0,255)"> ''Expand Filesystem''</span></code> and hit <code><span style="color: rgb(0,0,255)"> ''YES''</span></code> , then go to <code><span style="color: rgb(0,0,255)"> ''Finish''</span></code>  and you need to run  <code><span style="color: rgb(0,0,255)"> ''sudo reboot''</span></code> to reboot your Raspberry Pi.
  
*Step2 Update your Raspberry Pi system
+
Step2: Update your Raspberry Pi system
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo apt-get update''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo apt-get update''</span></code>
  
*Step3 Download the driver package
+
Step3: Download the driver package
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo git clone https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo git clone https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git''</span></code>
  
*Step4 Go to the UCTRONICS_LCD35_RPI
+
Step4: Go to the UCTRONICS_LCD35_RPI
  
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
*Step5 Change the file permission
+
 
 +
Step5: Change the file permission
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod 777 UCTRONICS_LCD_backup''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod 777 UCTRONICS_LCD_backup''</span></code>
Line 56: Line 59:
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod 777 UCTRONICS_LCD_hdmi''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod 777 UCTRONICS_LCD_hdmi''</span></code>
  
*Step6 Backup original system data
+
Step6: Backup original system data
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo ./UCTRONICS_LCD_backup''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo ./UCTRONICS_LCD_backup''</span></code>
  
*Step7 Install the LCD35 driver
+
Step7: Install the LCD35 driver
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo ./UCTRONICS_LCD35_install''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo ./UCTRONICS_LCD35_install''</span></code>
Line 74: Line 77:
  
 
If you don’t want to run those command to install the LCD driver, we also provide ready to use system image file “UCTRONICS_LCD35_RPI.img". Please click the following link to download the system image file:
 
If you don’t want to run those command to install the LCD driver, we also provide ready to use system image file “UCTRONICS_LCD35_RPI.img". Please click the following link to download the system image file:
http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img  
+
 
Check the following link to install the win32diskimager tool in your computer. Then write the image file into the Micro SD card.  
+
http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img  
https://sourceforge.net/projects/win32diskimager/
+
 
====Add more functions to the LCD====
+
Check the following link to install the win32diskimager tool in your computer. Then write the image file into the Micro SD card.
=====Install calibration software for calibration=====
+
 +
https://sourceforge.net/projects/win32diskimager/
 +
 
 +
==Add more functions to the LCD==
 +
====Install calibration software for calibration====
  
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
Line 88: Line 95:
 
<code><span style="color: rgb(0,0,255)"> ''sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb''</span></code>
  
=====Install virtual keyboard=====
+
====Install virtual keyboard====
*Step 1 Execute the following commands to install the corresponding software
+
Step1: Execute the following commands to install the corresponding software
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo apt-get update''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo apt-get update''</span></code>
Line 97: Line 104:
 
<code><span style="color: rgb(0,0,255)"> ''sudo nano /usr/bin/toggle-matchbox-keyboard.sh''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo nano /usr/bin/toggle-matchbox-keyboard.sh''</span></code>
  
*Step 2 Copy the following contents to toggle box - keyboard. Sh, save the exit
+
Step2: Copy the following contents to toggle box - keyboard. Sh, save the exit
{{{{
+
                    #!/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
+
  
}}}}
+
#!/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
  
 
+
Step3: Execute the following command
*Step 3 Execute the following command
+
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod +x /usr/bin/toggle-matchbox-keyboard.sh''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo chmod +x /usr/bin/toggle-matchbox-keyboard.sh''</span></code>
Line 118: Line 122:
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo nano /usr/local/share/applications/toggle-matchbox-keyboard.desktop''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo nano /usr/local/share/applications/toggle-matchbox-keyboard.desktop''</span></code>
*Step 4 Copy the following contents to toggle - matchbox - keyboard. Desktop, save exit
 
{{{{
 
                    [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
 
}}}}
 
*Step 5 To perform the following command, note that this step must use the "PI" user permission, and if the administrator privileges are used, the file will not be found
 
  
<code><span style="color: rgb(0,0,255)"> ''nano ~/.config/lxpanel/LXDE-pi/panels/panel''</span></code>
+
Step4: Copy the following contents to toggle - matchbox - keyboard. Desktop, save exit
  
*Step 6 Find similar commands (different versions of ICONS may differ)
+
[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
  
{{{{
+
Step5: To perform the following command, note that this step must use the "PI" user permission, and if the administrator privileges are used, the file will not be found
  
                    Plugin {
+
<code><span style="color: rgb(0,0,255)"> ''nano ~/.config/lxpanel/LXDE-pi/panels/panel''</span></code>
                    type = launchbar
+
                    Config {
+
                    Button {
+
                    id=lxde-screenlock.desktop
+
                    }
+
                    Button {
+
                    id=lxde-logout.desktop
+
                    }
+
                    }
+
  
}}}}
+
Step6: Find similar commands (different versions of ICONS may differ)
  
*Step 7 Add the following code to add a Button item
+
Plugin {
{{{{
+
type = launchbar
 +
Config {
 +
Button {
 +
id=lxde-screenlock.desktop
 +
}
 +
Button {
 +
id=lxde-logout.desktop
 +
}
 +
}
  
                  Button {
+
Step7: Add the following code to add a Button item
                  id=/usr/local/share/applications/toggle-matchbox-keyboard.desktop
+
                  }
+
  
 +
Button {
 +
id=/usr/local/share/applications/toggle-matchbox-keyboard.desktop
 +
  }
  
}}}}
+
Step8: To restart the system with the following command, you can see a virtual keyboard icon in the top left corner
*Step 8 To restart the system with the following command, you can see a virtual keyboard icon in the top left corner
+
  
 
<code><span style="color: rgb(0,0,255)"> ''sudo reboot''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''sudo reboot''</span></code>
==== Contact us====
+
 
 +
=== Contact us===
 
If need any further support, please feel free to contact us.
 
If need any further support, please feel free to contact us.
 
{| border="1" cellspacing="5" cellpadding="5" align="center"
 
{| border="1" cellspacing="5" cellpadding="5" align="center"
Line 171: Line 170:
 
!Tel: +86 025 84271192
 
!Tel: +86 025 84271192
 
|}
 
|}
===Trouble Shooting===
+
==Trouble Shooting==
====How to add new ICON to desktop ?====
+
===How to add new ICON to desktop ?===
 
If it's just a folder, add it directly to the desktop
 
If it's just a folder, add it directly to the desktop
  
Line 180: Line 179:
 
*Step2: choose a icon you want to link
 
*Step2: choose a icon you want to link
 
*Step3: choose edit -> create link... ->Desktop ->OK
 
*Step3: choose edit -> create link... ->Desktop ->OK
====How to rotate the screen to 180 degree ?====
+
===How to rotate the screen to 180 degree ?===
  
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
Line 191: Line 190:
 
                 0 degree                                      180 degree
 
                 0 degree                                      180 degree
  
====Some zones working much better than others, the near edge zones seem the worst.====
+
===Some zones working much better than others, the near edge zones seem the worst.===
* You should recalibrate the touchscreen.
+
*You should recalibrate the touchscreen.
** 1.Downloading our UCTRONICS_LCD35_HDMI_RPI package from https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git
+
*Downloading our UCTRONICS_LCD35_HDMI_RPI package from  
** 2.Install calibration software for calibration
+
https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git
 +
*Install calibration software for calibration
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
 
<code><span style="color: rgb(0,0,255)"> ''cd UCTRONICS_LCD35_RPI''</span></code>
  
Line 205: Line 205:
 
   [[Image:calibration1.jpeg|220px|]]            [[Image:calibration2.jpeg|220px|]]
 
   [[Image:calibration1.jpeg|220px|]]            [[Image:calibration2.jpeg|220px|]]
  
==== How to burn the UCTRONICS_LCD35_RPI.img?====
+
=== How to burn the UCTRONICS_LCD35_RPI.img?===
*Step1: Download the burn tools from https://github.com/UCTRONICS/Win32DiskImager.git
+
Step1: Download the burn tools from  
 +
 +
https://github.com/UCTRONICS/Win32DiskImager.git
 +
 
 +
Step2: Download the UCTRONICS_LCD35_RPI.img file from
  
*Step2: Download the UCTRONICS_LCD35_RPI.img file from http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img
+
http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img
  
*Step3: Open the SDFormatter to format your SD card
+
Step3: Open the SDFormatter to format your SD card
  
*Step4: Open the Win32DiskImager to write the UCTRONICS_LCD35_RPI.img to your SD card.
+
Step4: Open the Win32DiskImager to write the UCTRONICS_LCD35_RPI.img to your SD card.
  
 
For more details please refer to our video demo from  
 
For more details please refer to our video demo from  
  
https://www.youtube.com/watch?v=cCw91wH6mnc
+
https://www.youtube.com/watch?v=cCw91wH6mnc

Latest revision as of 02:03, 23 February 2018

UCTRONICS 3.5 Inches 480 x 320 TFT LCD Touch Screen Display

Model: U4703

Introduction

UCTRONICS 3.5" TFT LCD display module is designed for Raspberry Pi zero/Pi 2 /Pi 3 Model B / B+ and can also be used on other hardware platforms with have SPI interface. The 3.5" screen is the same size as the standard Raspberry Pi model B/B+, and well mate with the Raspberry Pi boards. With its touch screen, it is suitable for portable devices and projects, and it is a replacement for a heavy and bulky HDMI monitor, keyboard and mice. The highlight of this display module, it supports plug and play without reboot the Pi, and SPI speed runs as fast as 32MHz to support games and videos.

Specification

Support Kernel from 4.1 to 4.9 Support plug and play
Resolution: 480 x 320 pixels Support touch screen
Interface: SPI Support game and video
SPI speed: 32MHz Automatic driver installation script
Dimension: 55.98 x 85.60 mm Well mate with Pi Zero, Pi B+, Pi2 and Pi3

Hardware installation

        SPI hardware.png             LCD35 SPI.jpg
                Figure1                                       Figure2
        

The Figure 1 shows the display module pin out and dimension. Connect the 3.5inch LCD to the Raspberry Pi board like the Figure 2 shows. Power on the Raspberry Pi board and make sure the internet is connected properly. Note: LCD module pin1 should be aligned to Raspberry Pi board Pin1, misalign might cause damage.

Download and install driver

The LCD driver has been already installed in the Micro SD card shipped only with the kit that includes a Micro SD card. The following steps are for install the driver on a clean system. All the installation steps are also available from our github:

https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI/
Step1: Expand the Micro SD card

sudo raspi-config

then Select Advanced Operations -> Expand Filesystem and hit YES , then go to Finish and you need to run sudo reboot to reboot your Raspberry Pi.

Step2: Update your Raspberry Pi system

sudo apt-get update

Step3: Download the driver package

sudo git clone https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git

Step4: Go to the UCTRONICS_LCD35_RPI

cd UCTRONICS_LCD35_RPI

Step5: Change the file permission

sudo chmod 777 UCTRONICS_LCD_backup

sudo chmod 777 UCTRONICS_LCD35_install

sudo chmod 777 UCTRONICS_LCD_restore

sudo chmod 777 UCTRONICS_LCD_hdmi

Step6: Backup original system data

sudo ./UCTRONICS_LCD_backup

Step7: Install the LCD35 driver

sudo ./UCTRONICS_LCD35_install

Wait for a while the system will be installed and restarted automatically. If you want to reuse the original system, you can use the below command

sudo ./UCTRONICS_LCD_restore

If you want to display on HDMI instead of LCD, just use the below command

sudo ./UCTRONICS_LCD_hdmi

If you don’t want to run those command to install the LCD driver, we also provide ready to use system image file “UCTRONICS_LCD35_RPI.img". Please click the following link to download the system image file:

http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img 

Check the following link to install the win32diskimager tool in your computer. Then write the image file into the Micro SD card.

https://sourceforge.net/projects/win32diskimager/

Add more functions to the LCD

Install calibration software for calibration

cd UCTRONICS_LCD35_RPI

sudo unzip Xinput-calibrator_0.7.5-1_armhf.zip

cd xinput-calibrator_0.7.5-1_armhf/

sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Install virtual keyboard

Step1: Execute the following commands to install the corresponding software

sudo apt-get update

sudo apt-get install matchbox-keyboard

sudo nano /usr/bin/toggle-matchbox-keyboard.sh

Step2: Copy the following contents to toggle box - keyboard. Sh, save the exit
#!/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
Step3: Execute the following command

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

Step4: Copy the following contents to toggle - matchbox - keyboard. Desktop, save exit
[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
Step5: To perform the following command, note that this step must use the "PI" user permission, and if the administrator privileges are used, the file will not be found

nano ~/.config/lxpanel/LXDE-pi/panels/panel

Step6: Find similar commands (different versions of ICONS may differ)
Plugin {
type = launchbar
Config {
Button {
id=lxde-screenlock.desktop
}
Button {
id=lxde-logout.desktop
}
}
Step7: Add the following code to add a Button item
Button {
id=/usr/local/share/applications/toggle-matchbox-keyboard.desktop
 }
Step8: To restart the system with the following command, you can see a virtual keyboard icon in the top left corner

sudo reboot

Contact us

If need any further support, please feel free to contact us.

Website: http://www.uctronics.com
Email: [email protected]
Tel: +86 025 84271192

Trouble Shooting

How to add new ICON to desktop ?

If it's just a folder, add it directly to the desktop

If it is an executable, follow this steps:

  • Step1: choose the Directory Tree -> / -> usr -> share ->applications folder
  • Step2: choose a icon you want to link
  • Step3: choose edit -> create link... ->Desktop ->OK

How to rotate the screen to 180 degree ?

cd UCTRONICS_LCD35_RPI

sudo chmod 777 UCTRONICS_LCD35_rotation_180_install

sudo ./UCTRONICS_LCD35_rotation_180_install

        LCD35 SPI 0.jpg             LCD35 SPI 180.jpg
                0 degree                                      180 degree

Some zones working much better than others, the near edge zones seem the worst.

  • You should recalibrate the touchscreen.
  • Downloading our UCTRONICS_LCD35_HDMI_RPI package from
https://github.com/UCTRONICS/UCTRONICS_LCD35_RPI.git
  • Install calibration software for calibration

cd UCTRONICS_LCD35_RPI

sudo unzip Xinput-calibrator_0.7.5-1_armhf.zip

cd xinput-calibrator_0.7.5-1_armhf/

sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

 Calibration1.jpeg             Calibration2.jpeg

How to burn the UCTRONICS_LCD35_RPI.img?

Step1: Download the burn tools from 

https://github.com/UCTRONICS/Win32DiskImager.git
Step2: Download the UCTRONICS_LCD35_RPI.img file from 
http://uctronics.oss-us-west-1.aliyuncs.com/LCD35/image/UCTRONICS_LCD35_RPI.img
Step3: Open the SDFormatter to format your SD card
Step4: Open the Win32DiskImager to write the UCTRONICS_LCD35_RPI.img to your SD card.

For more details please refer to our video demo from

https://www.youtube.com/watch?v=cCw91wH6mnc