BB-View Cape Portable LCD Solution for the BeagleBone Family BY User Manual Version 2 Dated: 21st May 2014 Revision History: Version Date Description 1.0 26/11/2013 Original Version 1.1 27/03/2014 Correction DISCLAIMER This product is intended to be used for ENGINEERING DEVELOPMENT, DEMONSTRATION OR EVALUATION PURPOSES ONLY and is not considered by element14 to be a finished end product fit for general consumer use. Persons handling the product(s) must have electronics training and observe good engineering practice standards. The goods being provided are not intended to be complete in terms of required design and/or manufacturing related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. Table of Contents 1 Product Overview ....................................................................... 1 1.1 Introduction............................................................................ 1 1.2 Kit Contents............................................................................ 2 1.3 Board Interfaces ..................................................................... 2 1.4 System Block Diagram ............................................................. 2 1.5 Physical Dimensions (mm)........................................................ 3 2 BB-View Features ....................................................................... 4 2.1 Hardware and Software Features:.............................................. 4 2.2 Operational Parameters:........................................................... 4 3 Hardware Description ................................................................. 5 3.1 LCD Interface (LCD) ................................................................ 5 3.2 Extended I/O Interface (J1) ...................................................... 7 3.3 Extended I/O Interface (J2) ...................................................... 9 3.4 Keypad Interfaces ................................................................. 10 3.5 LED Interfaces ...................................................................... 11 4 How to Setup BB-View .............................................................. 12 4.1 Installing Windows Drivers for the USB Interface ....................... 12 4.2 Setting up PuTTY ................................................................... 15 5 Demonstration and Compilation of the TI-SDK ......................... 18 5.1 BB-View Demonstration using a Pre-Compiled Image ................. 18 5.1.1 Image Programming ........................................................ 18 5.1.1.1 For BeagleBone Black ................................................ 18 5.1.1.2 For BeagleBone ........................................................ 20 5.1.2 Setting up a 4.3" LCD Module ........................................... 20 5.1.3 Setting up a 7" LCD Module .............................................. 21 5.2 Keypad Test .......................................................................... 21 5.3 LED Test ............................................................................... 21 5.4 Pre-Compiled TI-SDK Image Features ...................................... 22 5.4.1 QML Playground .............................................................. 23 5.4.2 Animated Tiles ................................................................ 24 5.4.3 Thermostat Demo ........................................................... 24 5.4.4 Vector Deformation ......................................................... 25 5.5 Working With the TI-SDK Image.............................................. 25 5.5.1 Setup for Development Environment ................................. 25 5.5.2 Compiling "Uboot" for BB-View ......................................... 26 5.5.2.1 Compiling "uboot" from Texas Instruments .................. 26 5.5.2.2 Compiling "uboot" from element14 ............................. 27 5.5.3 Compiling "Kernel" for BB-View ......................................... 28 5.5.3.1 Compiling the "Kernel" from Texas Instruments ............ 28 5.5.3.2 Compiling the "Kernel" from element14 ....................... 29 5.5.4 System Update with BB-View Support................................ 29 6 Demonstration and Compilation of Angstrom ........................... 31 6.1 Demonstration of the Display Function ..................................... 31 6.1.1 Image Programming ........................................................ 31 6.1.2 Setup for 4.3" LCD Module ............................................... 32 6.1.3 Setup for 7" LCD Module .................................................. 32 6.2 Keypad Test .......................................................................... 33 6.3 LED Test ............................................................................... 33 6.4 Compilation of the Kernel ....................................................... 33 7 Appendix 1: Installing an Ubuntu Linux System ....................... 34 7.1 Installing VirtualBox .............................................................. 34 7.2 Installing an Ubuntu Linux System .......................................... 39 1 Product Overview 1.1 Introduction The BB-View is a portable LCD expansion cape with touchscreen capability for BeagleBone boards, a credit-card-sized expandable Linux computer to evaluate the TI's SitaraTM AM335x ARM(R) CortexTM-A8 processors. The BB-View is 24-bit LCD expansion cape supplied with a TFT LCD(18-bit) module, available in two size options: 4.3" & 7", which can display up to a resolution of 480x272 (4.3" LCD) and 800x480 (7" LCD). Both have a 4-wire resistive touchscreen interface. BB-View has been designed with convenience in mind and extends the I/O interfaces of the BeagleBone & BeagleBone Black allowing users to utilise a touchscreen LCD module without sacrificing I/O interface access. BB-View fits on top of the BeagleBone OR BeagleBone Black and still has full access to all the GPIOs via two 46-pin connectors. It's equipped with five switches (four for GPIOs & one for Boot) and two user defined LEDs. The BB-View draws power directly from the board (BeagleBone or BeagleBone Black) eliminating the need for any kind of external power supply. The BB-View is also supplied with a pre-compiled image with Linux QT demos to help set up your BeagleBone & BeagleBone Black board quickly and easily. Page | 1 1.2 Kit Contents BB-View Cape Only [BeagleBone OR BeagleBone Black not included] 4.3" OR 7" Touchscreen LCD Module Flexible FPC Cable Quick Start Guide 1.3 Board Interfaces 1.4 ystem Block Diagram Page | 2 1.5 Physical Dimensions (mm) Page | 3 2 BB-View Features 2.1 Hardware and Software Features: A 24-bit LCD expansion cape for the BeagleBone board family 4-wire resistive touchscreen LCD modules (18-bit): o 4.3" LCD: 480x272 resolution o 7" LCD: 800x480 resolution Five switches (four for GPIOs & Two user defined LEDs Full access to all the GPIOs via two 46-pin connectors (besides those already one for BOOT) used by the BB-View) Powered directly from BeagleBone boards, no external power supply required. Provided with pre-compiled BSP image with QT Demo to help setup the BeagleBone board quickly and easily. Works with BeagleBone & BeagleBone Black Supporting TISDK and Angstrom image Drivers and driver source code are provided along with BB-View 2.2 Operational Parameters: Dimensions: 69.04mm x 54.61mm Operating Humidity: 20% ~ 90% Power Supply: +5V (provided by BeagleBone board) PCB Layers: 4 Page | 4 3 Hardware Description BB-View expansion cape has an LCD connector (LCD) and two 46-position dual-row connectors (J1 and J2) that can be used as extended I/O interfaces for the BeagleBone & BeagleBone Black. This chapter contains pin definitions for these connectors. Figure 1: Pin Locations on the BB-View 3.1 LCD Interface (LCD) Pins Definitions Descriptions 1 B0 LCD Pixel data bit 23 2 B1 LCD Pixel data bit 20 3 B2 LCD Pixel data bit 17 4 B3 LCD Pixel data bit 11 5 B4 LCD Pixel data bit 12 6 B5 LCD Pixel data bit 13 7 B6 LCD Pixel data bit 14 8 B7 LCD Pixel data bit 15 9 GND GND Page | 5 Pins Definitions Descriptions 10 G0 LCD Pixel data bit 22 11 G1 LCD Pixel data bit 19 12 G2 LCD Pixel data bit 5 13 G3 LCD Pixel data bit 6 14 G4 LCD Pixel data bit 7 15 G5 LCD Pixel data bit 8 16 G6 LCD Pixel data bit 9 17 G7 LCD Pixel data bit 10 18 GND GND 19 R0 LCD Pixel data bit 21 20 R1 LCD Pixel data bit 18 21 R2 LCD Pixel data bit 16 22 R3 LCD Pixel data bit 0 23 R4 LCD Pixel data bit 1 24 R5 LCD Pixel data bit 2 25 R6 LCD Pixel data bit 3 26 R7 LCD Pixel data bit 4 27 GND GND 28 DEN 29 HSYNC LCD Horizontal Synchronization 30 VSYNC LCD Vertical Synchronization 31 GND GND 32 CLK LCD Pixel Clock 33 GND GND 34 X+ X+ Position Input 35 X- X- Position Input 36 Y+ Y+ Position Input 37 Y- Y- Position Input 38 SPI_CLK SPI clock 39 SPI_MOSI Slave data in, master data out AC bias control (STN) or pixel data enable (TFT) Page | 6 Pins Definitions Descriptions 40 SPI_MISO Slave data out, master data in 41 SPI_CS SPI enable 42 IIC_CLK IIC master serial clock 43 IIC_DAT IIC serial bidirectional data 44 GND GND 45 VDD1 3.3V power for LCD buffer 46 VDD2 3.3V 47 VDD3 5V 48 VDD4 5V 49 RESET No connection 50 PWREN GPIO 3.2 Extended I/O Interface (J1) Pins Definitions Descriptions 1 GND GND 2 GND GND 3 NC NC 4 NC NC 5 NC NC 6 NC NC 7 NC NC 8 NC NC 9 NC NC 10 NC NC 11 LCD_DATA18 LCD Pixel data bit 18 12 LCD_DATA19 LCD Pixel data bit 19 13 LCD_DATA22 LCD Pixel data bit 22 14 LCD_DATA21 LCD Pixel data bit 21 15 LCD_DATA16 LCD Pixel data bit 16 Page | 7 Pins Definitions Descriptions 16 LCD_DATA17 LCD Pixel data bit 17 17 LCD_DATA20 LCD Pixel data bit 20 18 NC NC 19 LCD_DATA23 LCD Pixel data bit 23 20 NC NC 21 NC NC 22 NC NC 23 NC NC 24 NC NC 25 NC NC 26 NC NC 27 LCD_VSYNC LCD Vertical Synchronization 28 LCD_PCLK LCD Pixel Clock 29 LCD_HSYNC LCD Horizontal Synchronization 30 LCD_DE 31 LCD_DATA14 LCD Pixel data bit 14 32 LCD_DATA15 LCD Pixel data bit 15 33 LCD_DATA13 LCD Pixel data bit13 34 LCD_DATA11 LCD Pixel data bit 11 35 LCD_DATA12 LCD Pixel data bit 12 36 LCD_DATA10 LCD Pixel data bit 10 37 LCD_DATA8 LCD Pixel data bit 8 38 LCD_DATA9 LCD Pixel data bit 9 39 LCD_DATA6 LCD Pixel data bit 6 40 LCD_DATA7 LCD Pixel data bit 7 41 LCD_DATA4 LCD Pixel data bit 4 42 LCD_DATA5 LCD Pixel data bit 5 43 LCD_DATA2 LCD Pixel data bit 2 44 LCD_DATA3 LCD Pixel data bit 3 45 LCD_DATA0 LCD Pixel data bit 0 AC bias control (STN) or pixel data enable (TFT) Page | 8 Pins Definitions Descriptions 46 LCD_DATA1 LCD Pixel data bit 1 3.3 Extended I/O Interface (J2) Pins Definitions Descriptions 1 GND GND 2 GND GND 3 VDD_3V3B 3.3V 4 VDD_3V3B 3.3V 5 VDD5V 5V 6 VDD5V 5V 7 SYS5V 5V 8 SYS5V 5V 9 NC NC 10 SYS_RESETn Reset 11 USER3 GPIO 12 LED0 GPIO 13 NC NC 14 PWM Power on enable 15 NC NC 16 USER0 GPIO 17 I2C1_SCL IIC3 master serial clock 18 I2C1_SDA IIC serial bidirectional data 19 NC NC 20 LED1 GPIO 21 NC NC 22 NC NC 23 USER2 GPIO 24 USER1 GPIO 25 NC NC Page | 9 Pins Definitions Descriptions 26 NC NC 27 NC NC 28 SPI1_CS0 SPI enable 0 29 SPI1_DO SPI data 0 30 SPI1_D1 SPI data 1 31 SPI1_SCLK SPI Clock 32 VDD_ADC ADC power 33 NC NC 34 NC NC 35 NC NC 36 NC NC 37 Y+ Y+ Position Input 38 Y- Y- Position Input 39 X+ X+ Position Input 40 X- X- Position Input 41 NC NC 42 NC NC 43 GND GND 44 GND GND 45 GND GND 46 GND GND 3.4 Keypad Interfaces Pins Definitions Descriptions 1 USER0 User defined 2 USER1 User defined 3 USER2 User defined 4 USER3 User defined 5 BOOT Boot switch Page | 10 3.5 LED Interfaces Pins Definitions Descriptions 1 USER0 User defined 2 USER1 User defined Page | 11 4 How to Setup BB-View A pre-compiled image for BB-View can be downloaded from the element14 website which can be used for demonstration of the board using BeagleBone & BeagleBone Black. However, there are some preparations such as installing USB and Ethernet drivers and setting up PuTTY that need to be done prior to starting the demonstration. Note: To download the pre-compiled image for BB-view please visit: www.element14.com/BeagleBone 4.1 Installing Windows Drivers for the USB Interface 1) BeagleBone boards are supplied with a pre-programmed eMMC with Angstrom system. Connect the BeagleBone or BeagleBone Black to the USB interface of your PC using an OTG cable and power on the board, after the Angstrom system start-up is complete, you can find a drive named "BEAGLEBONE" under "My Computer". 2) The New Hardware Wizard should automatically detect the new hardware and launch a pop-up window as shown below. Select Install from a list or specific location (Advanced) and click Next. Page | 12 Figure 2: Serial Driver Installation Prompt 3) Click Browse as highlighted in the following image and specify the location of CDCAM folder in the drive BEAGLEBONE and then click Next to install the driver. Figure 3: Setting Driver Location Page | 13 4) The New Hardware Wizard should once again pop up having detected another aspect of the hardware. As before, select Install from a list or specific location (Advanced) and click Next when the following window shows up to install the USB Ethernet driver. Figure 4: USB Ethernet Driver Installation Prompt 5) Click Browse in the following figure and specify the location of the RNDIS folder in the drive BEAGLEBONE and then click Next to install the driver. Page | 14 Figure 5: Driver Installation Prompt 4.2 Setting up PuTTY PuTTY is a virtual terminal which can receive and display the working information of the BeagleBone or BeagleBone Black. It needs to be configured on your PC before it can communicate with BeagleBone or BeagleBone Black. Follow the steps listed below to ensure correct configuration. 1) Download "putty.exe" (can be downloaded from www.element14.com/BeagleBone) to your PC and run it to open the PuTTY Configuration window then configure it as shown below; Page | 15 Figure 6: PuTTY Configuration Settings Note: The Host Name (or IP address) in the above window may need to be changed according to the IP configuration of the board when power is on. The value in Figure 6 is the default. In the event the default value is incorrect please refer to your network documentation for assistance in discovering the IP address of the device. Click Open when you finish the configuration 2) Enter your login details as in the following window and press enter on your keyboard. As default the username is "root" and the password field should be left empty. Page | 16 Figure 7: Login to the BeagleBone Black After logging in successfully, a bash shell environment is activated. All the shell instructions hereafter are typed and executed under this environment. Page | 17 5 Demonstration and Compilation of the TI-SDK This chapter will introduce how to carry out demonstrations of the display function of the BB-View using BeagleBone & BeagleBone Black with provided pre-compiled TI-SDK, as well as how to create Linux development environment and customise the Linux system. Note: Each instruction has been proceeded by a pencil "" to prevent confusion caused by the long instructions that occupy more than one line in the document. Please note that there are SPACES in the following instructions; Missing any SPACE will lead to failure when running an application. 5.1 BB-View Demonstration using a Pre-Compiled Image Here we will use a pre-compiled & patched TI-SDK image provided for the BB-View for demonstration purposes. First we need to program the image into the BeagleBone or BeagleBone Black. 5.1.1 Image Programming 5.1.1.1 For BeagleBone Black 1) Download the "BB-View Pre-Compiled TI-SDK Image.zip" to get the following image from: URL: www.element14.com/BeagleBone *Image Name: "bb-view-emmc-flasher-2013-09-09.img.xz" *Note: Please use the latest image available for download. 2) Uncompress the TI-SDK image by using 7-zip compression tool Page | 18 (available from www.element14.com/BeagleBone) 3) Program the uncompressed image into a MicroSD MicroSD card by using the "Win32DiskImager Win32DiskImager Tool" (from www.element14.com/BeagleBone) www.element14.com/BeagleBone and then insert the card into the BeagleBone Black TF card slot. 4) Press and hold the uSD BOOT button and then power on the BeagleBone Black (without connecting BB-View View & LCD module). modul 5) When all 4 user LEDs stay constantly ON, this indicates that the image has been programmed into the BeagleBone Black (it may take up to 30-40min 40min). Please power OFF the board and remove the MicroSD card, and then connect BeagleBone Black,, BB-View BB and an LCD module as shown below and power it ON again; Figure 8: Connecting the BB-View, BB BeagleBone Black and the LCD Module Note: Please ensure the blue tape on the LCD FPC cable is facing upwards upwards. 6) Follow the instructions shown on the LCD module to complete the screen calibration. Page | 19 5.1.1.2 For BeagleBone 1) Download the "BB-View Pre-Compiled TI-SDK Image.zip" to get the following image from: URL: www.element14.com/BeagleBone *Image Name: "bb-view-mmc-beaglebone-2013-10-16.img.xz" *Note: Please use the latest image available for download. 2) Uncompress the TI-SDK image by using 7-zip compression tool (available from www.element14.com/BeagleBone) 3) Program the uncompressed image into a MicroSD card by using the "Win32DiskImager Tool" (from www.element14.com/BeagleBone) and then insert the card into the BeagleBone TF card slot. 4) Connect the BeagleBone, BB-View and an LCD module as shown above and power it ON 5) Follow the instructions shown on the LCD module to complete the screen calibration. 5.1.2 Setting up a 4.3" LCD Module The following instructions are executed (in PuTTY) for use of a 4.3-inch LCD module; root@am335x-evm:~# echo "optargs=dispmode=4.3inch_LCD" > /media/mmcblk0p1/uEnv.txt root@am335x-evm:~# sync Note: The system supports 4.3-inch LCD modules by default, and therefore there is no need to Page | 20 execute these instructions if the default settings haven't been changed. Now restart the board to finish the setup for a 4.3-inch LCD module. 5.1.3 Setting up a 7" LCD Module The following instructions are executed (in PuTTY) for use of a 7-inch LCD module; root@am335x-evm:~# echo "optargs=dispmode=7inch_LCD" > /media/mmcblk0p1/uEnv.txt root@am335x-evm:~# sync Now restart the board to finish the setup for a 7-inch LCD module. Note: The system uses 4.3-inch as a default display mode, to use 7" display for the first time just touches the screen for 5 times to skip touchscreen calibration and enter Linux shell, then use the above commands to configure the display. If you have calibrated the touch screen, after you change the display mode, you must execute the following instructions to recalibrate in PuTTY: root@am335x-evm:~#rm /media/mmcblk0p1/pointercal root@am335x-evm:~# sync Now reboot the board and you will be presented with the calibration interface 5.2 Keypad Test Execute the following instruction then press the user keypad buttons to test root@am335x-evm:~# hexdump -C -v /dev/input/event1 5.3 LED Test Turn off LED0: root@am335x-evm:~# echo 0> /sys/class/leds/bb-view\:led0/brightness Page | 21 Turn on LED0: root@am335x-evm:~# echo 1> /sys/class/leds/bb-view\:led0/brightness Turn off LED1: root@am335x-evm:~# echo 0> /sys/class/leds/bb-view\:led1/brightness Turn on LED1: root@am335x-evm:~# echo 1> /sys/class/leds/bb-view\:led1/brightness 5.4 Pre-Compiled TI-SDK Image Features Figure 9: TI-SDK Main Menu Screen Page | 22 The provided pre-compiled TI-SDK image contains a wealth of applications including: Benchmarks 3D Demo Applications Internet Browser WiFi Connection (requires separately available WiFi daughter card) Bluetooth Connection (requires separately available Bluetooth daughter card) Video Decoding & Audio Capture The TI-SDK also provides several Linux QT based demo applications that showcase the touch screen functionality of the BB-View. These are discussed below: 5.4.1 QML Playground Figure 10: QML Playground Main Menu This section contains several applications showcasing the features of QT Quick. The demo applications allow the user to view the source code giving an insight into how certain features can be used. Page | 23 5.4.2 Animated Tiles Figure 11: Animated Tiles Demo Application The animated tiles demo shows how to animate transitions between five predefined states. 5.4.3 Thermostat Demo Figure 12: Thermostat Demo Application The thermostat demo demonstrates some of the functionalities that would be available in a home automation system. The demo shows a simple GUI that can be used to control a thermostat. It also draws weather information Page | 24 from an online service (internet connection required). 5.4.4 Vector Deformation Figure 13: Vector Deformation Demo The vector deformation demo shows how advanced vector techniques can be used to draw text using a Qpainter path. 5.5 Working With the TI-SDK Image 5.5.1 Setup for Development Environment Before getting started with system compilation, a development environment under Linux is required to be built first. (For installation of Linux system, please refer to Appendix 1 Installing Ubuntu Linux System). 1) Download the "BB-View TI-SDK Source Code.zip" from: www.element14.com/BeagleBone to the "$HOME" directory and unzip. From the directory execute the following instruction to install the development environment; Ubuntu@Ubuntu:~$ ./ti-sdk-am335x-evm-06.00.00.00-Linux-x8 6-Install --mode console 2) Follow the instructions to finish the installation, and then you'll find a file "ti-sdk-am335x-evm-06.00.00.00" under the $HOME directory. Page | 25 3) Execute the following command to install "mkimage". sudo apt-get install uboot-mkimage 4) Execute the following instruction to define a temporary environment variable for the compiler in the Ubuntu system. export PATH=$HOME/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sys roots/i686-arago-linux/usr/bin/:$PATH Note: The instruction used to define environment variables can be added into .bashrc under $HOME so that the system can create the variable automatically when booting up. To view the path of compiler, please execute echo $PATH. Now a development environment has been installed successfully. 5.5.2 Compiling "Uboot" for BB-View Users have the two options; either they can use the official TISDK provided by Texas Instruments which needs to be patched first so that it can support BB-View OR they can use the uboot developed by element14 which already has been patched to be used with BB-View and ready to use. This section will introduce both the uboot compilation processes. 5.5.2.1 Compiling "uboot" from Texas Instruments 1) Copy "u-boot-2013.01.01-psp06.00.00.00-bb-view.patch" from "$HOME" to: "$HOME/ti-sdk-am335x-evm-06.00.00.00/board-support/" 2) Execute the following instruction to apply a patch to the uboot source code so that it can be running in eMMC; Page | 26 Ubuntu@Ubuntu:~/ti-sdk-am335x-evm-06.00.00.00$ cd board-support/ $ cd u-boot-2013.01.01-psp06.00.00.00 $ patch -p1 < ../u-boot-2013.01.01-psp06.00.00.00-BB-View.patch 3) Execute the following instruction to compile $ make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm distclean $ rm -rf am335x $ make O=am335x CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm am335x_evm After the compilation is done, the files "MLO" and "u-boot.img" can be found under "am335x/" of the current directory. 5.5.2.2 Compiling "uboot" from element14 1) Execute the following commands to uncompress the uboot source code $ cd $HOME $ tar xvf u-boot-2013.01.01-psp06.00.00.00-bb-view.tar.bz2 2) Execute the following instructions to compile $ cd $HOME/u-boot-2013.01.01-psp06.00.00.00 $ make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm distclean $ rm -rf am335x $ make O=am335x CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm am335x_evm After the compilation is done, the files "MLO" and "u-boot.img" can be found under "am335x/" of the current directory. Page | 27 5.5.3 Compiling "Kernel" for BB-View There are two options; you can either use the official TISDK provided by Texas Instruments which needs to be patched first so that it can support BB-View OR you can use the Linux kernel developed by element14 which has already been patched for use with the BB-View and is ready to use. This section will introduce both of the kernel compilation processes. 5.5.3.1 Compiling the "Kernel" from Texas Instruments 1) Copy "linux-3.2.0-psp04.06.00.11-BB-View.patch" from "$HOME" to "$HOME/ti-sdk-am335x-evm-06.00.00.00/board-support/" 2) Execute the following instructions to install the patch and then compile the TI-SDK kernel; $ cd $HOME/ti-sdk-am335x-evm-06.00.00.00/board-support/ linux-3.2.0-psp04.06.00.11 $ patch -p0 < ../ linux-3.2.0-psp04.06.00.11-BB-View.patch $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihfam335x_evm_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules A kernel file named "uImage" with LCD module support is generated under "arch/arm/boot/". Page | 28 5.5.3.2 Compiling the "Kernel" from element14 Execute the following instructions to unzip the source code and compile the kernel image; $ cd $HOME $ tar xvf linux-3.2.0-psp04.06.00.11-bb-view.tar.bz2 $ cd linux-3.2.0-psp04.06.00.11 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihfdistclean $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihfam335x_evm_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules A kernel file named "uImage" with LCD module support is generated under "arch/arm/boot/". 5.5.4 System Update with BB-View Support 1) Format a flash drive or a TF card to FAT32 and mount it under the Ubuntu Linux system, and then execute the following instructions to copy the image to the flash drive or TF card. (These instructions assume the flash drive or TF card is mounted under "/mnt") $ cd $HOME $ cp u-boot-2013.01.01-psp06.00.00.00/am335x/MLO /mnt $ cp u-boot-2013.01.01-psp06.00.00.00/am335x/u-boot.img /mnt $ cp linux-3.2.0-psp04.06.00.11/arch/arm/uImage /mnt $ mkdir /mnt/rootfs $ cd $HOME/linux-3.2.0-psp04.06.00.11 Page | 29 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihfmodules_install INSTALL_MOD_PATH=/mnt/rootfs $ cd /mnt/rootfs $ tar -czvf ../kernel_modules.tar.gz ./ $ cd /mnt $ rm -rf rootfs 2) Connect BB-View to the BeagleBone or BeagleBone Black and then connect the power supply; Insert the flash drive or TF card into the BeagleBone or BeagleBone Black and execute the following instructions in PuTTY to update the system image (If a TF card is used instead of a flash drive, please change the path in the instructions accordingly) $ cp /media/sda1/MLO /media/mmcblk0p1/ $ cp /media/sda1/u-boot.img /media/mmcblk0p1/ $ cp /media/sda1/uImage /media/mmcblk0p1/ $ tar -xvf /media/sda1/kernel_modules.tar.gz -C / Page | 30 6 Demonstration and Compilation of Angstrom This chapter will introduce how to carry out demonstrations of the display functions of BeagleBone Black and BB-View under Angstrom, as well as how to create a Linux development environment and compile the system. 6.1 Demonstration of the Display Function 6.1.1 Image Programming 1) Use the format tool from HP named "HPUSBFW.exe" to format a flash drive with the FAT32 file system. 2) Download the "BB-VIEW Angstrom Image.zip" to get following files from: URL: www.element14.com/BeagleBone File Names: am335x-boneblack-lcd4.dtb am335x-boneblack-lcd7.dtb am335x-boneblack.dtb kernel_modules.gz uImage Unzip the files and copy all the image files to the flash drive. 3) Connect the flash drive to the BeagleBone Black and power it ON. 4) Execute the following instructions in a terminal program (such as PuTTY) to mount the flash drive: $ mkdir /media/udisk $ mount /dev/sda1 /media/udisk 5) Execute the following instructions to install the image and then restart the Page | 31 system; $ cp -f /media/udisk/uImage /boot/ $ cp -f /media/udisk/*.dtb /boot/ $ tar -xvf /media/udisk/kernel_modules.gz -C / $ sync 6.1.2 Setup for 4.3" LCD Module The following instructions are executed in PuTTY for use of 4.3" LCD module: root@beaglebone:~# cd /boot root@beaglebone:~# cp am335x-boneblack-lcd4.dtb am335x-boneblack.dtb root@beaglebone:~# sync Now restart the board to finish the setup for 4.3" LCD module. 6.1.3 Setup for 7" LCD Module The following instructions are executed in PuTTY for use of 7" LCD module; root@beaglebone:~# cd /boot root@beaglebone:~# cp am335x-boneblack-lcd7.dtb am335x-boneblack.dtb root@beaglebone:~# sync Now restart the board to finish the setup for 7" LCD module. Note: If you have calibrated the touch screen, after you change the display mode, you must execute the following instructions to recalibrate in PuTTY: root@beaglebone:~# rm /etc/pointercal.xinput root@beaglebone:~# sync Then select System > Administration > Calibrate Touchscreen on the desktop of Angstrom Page | 32 6.2 Keypad Test Execute the following instruction then press the user keypad buttons to test root@beaglebone:~# hexdump-C-v /dev/input/event2 6.3 LED Test Turn off LED0: root@beaglebone:~# echo 0> /sys/class/leds/bb-view\:led0/brightness Turn on LED0: root@beaglebone:~# echo 1> /sys/class/leds/bb-view\:led0/brightness Turn off LED1: root@beaglebone:~# echo 0> /sys/class/leds/bb-view\:led1/brightness Turn on LED1: root@beaglebone:~# echo 1> /sys/class/leds/bb-view\:led1/brightness 6.4 Compilation of the Kernel Users can download the Angstrom kernel source code "BB-VIEW Angstrom Source Code.zip" from; www.element14.com/BeagleBone File name: "bb-black-kernel-3.8.13-bb-view.tar.bz2" This is enabled with support for BB-View. Please refer to the document relevant to the BeagleBone Black for the details of kernel compilation and updating. Page | 33 7 Appendix 1: Installing an Ubuntu Linux System An appropriate development environment is required for software development. The CD included with product contains a development environment which needs to be installed under a Linux environment. If you are working on a PC running Windows, you have to create a Linux system first, and then you can install the environment. An easy method for achieving this is to use virtual machine software such as VirtualBox to install Ubuntu Linux on an emulated/virtual PC. The following sections will introduce the installation processes of VirtualBox and an Ubuntu system. 7.1 Installing VirtualBox You can access http://www.virtualbox.org/wiki/Downloads to download the latest version of VirtualBox. At the time of writing VirtualBox requires a minimum of 512MB of RAM to run however 1GB is recommended. 1) The installation process is simple. Start VirtualBox from the Start menu of Windows, and then click New in the VirtualBox window. A pop-up window titled "Create New Virtual Machine" will be shown as below: Page | 34 2) Click Next to create a new virtual machine. 3) Enter a name for the new virtual machine and select the operating system type as shown below: 4) Enter a name in the Name field, e.g. Ubuntu, and select Linux in the Operating System drop-down menu, and then click next. 5) Allocate memory to the virtual machine and then click Next Page | 35 Note: If your PC has 1GB of RAM or lower, keep the default setting; If your PC more than 1GB of RAM, you can allocate up to 1/4 to the virtual machine, for example, 512MB out of 2GB memory could be allocated to virtual machine. 6) If this is the first time you have installed VirtualBox, you need to select Create new hard disk in the following window, and then click Next 7) Click Next in the following window Page | 36 8) Select Fixed-size storage in the following window and click Next 9) Define where the hard disk data is stored and the default space of the virtual disk (8GB at least), and then click Next 10) Click Finish in the following window Page | 37 11) Your PC will then create a new virtual disk 12) A window with summary of the newly created virtual machine will be shown as below when the creation process is done. Please click Finish to complete the whole process. Page | 38 7.2 Installing an Ubuntu Linux System After VirtualBox is installed, we can install the Ubuntu Linux system. Visit http://www.Ubuntu.com/download/Ubuntu/download to download the ISO image file of Ubuntu, and then follow the steps below: 1) Start VirtualBox from the Start menu and click Settings on the VirtualBox window. A Settings window will be shown as below 2) Select Storage on the left in the Settings window and click the CD icon next to the option Empty under IDC controller in the right part of the window, and then find the ISO file you downloaded Page | 39 3) Select the ISO file you downloaded and click OK as shown below 4) Click Start on the VirtualBox window, the Ubuntu installation program will start as shown below: Page | 40 5) Some prompt windows will pop up during the initiation process. You just need only click OK all the way y to the end of the process. 6) Click Install Ubuntu to start installation when the following window appears 7) Click Forward to continue the process Page | 41 8) Select Erase disk and install Ubuntu and click Forward Note: Selecting this option will only affect the virtual hard drive you created earlier and will not lead to any content loss on your hard drive. 9) Click Install Now in the following window to start installation: Page | 42 10) Some simple questions need to be answered during the installation process. Please enter appropriate information and click "Forward". " The following window is the last question that will appear during the process: 11) After all the required information is properly entered in to the fields, f select Log in automatically and click forward. 12) The installation of Ubuntu may take between 15 minutes to an hour depending on your PC's specification. A prompt window will be shown as below after installation is done. Please select Restart Now to restart start Ubuntu system. Page | 43 13) The Ubuntu system is ready for use after restarting. Normally the ISO file shown below will be ejected automatically by VirtualBox after restarting Ubuntu. If it is not, you can eject the ISO file manually in the Settings window of VirtualBox. The following window shows the settings window after the ISO file is ejected. Page | 44