PPC-4510

From Estone Technology Wiki
Jump to: navigation, search

Quick Setup Guide

Datasheet

OS Support

Yocto Embedded Linux

SDK Download

https://www.dropbox.com/s/8pxurmnbb7q27oh/poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-2.1.3.sh?dl=0

To install

   sh poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-2.1.3.sh

MFG Tool Download

https://www.dropbox.com/s/ed0qp5i3p4gvyj8/ppc4510-mfg.zip?dl=0

   cd ppc4510-mfg/Profiles/Linux/OS firmware/files/linux/
   cp imx6dl-hio.dtb imx6q-hio.dtb zImage .
   cp rootfs.tar.bz2 recovery.rootfs.tar.bz2 .
   cp SPL u-boot.img .
  • Use Micro A - USB connect to the OTG slot on the HIO Core Board
  • execute ppc4510-mfg/MfgTool2.exe
  • Change boot switch to 2
  • Plug in 12V power.

Mfgtool-2.png

  • Click “Start” will start the OS flashing process.

Mfgtool-3.png

  • Complete

Mfgtool-4.png

  • Quit MFG tools, remove OTG cable, and power.

Kernel Compile

   git clone -b imx_3.14.52_1.1.0_ga https://github.com/estonetechnology/ppc-4510-linux-kernel.git 
   source /opt/poky/2.1/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 
   export ARCH=arm 
   export CROSS_COMPILE=arm-poky-linux-gnueabi-
   make hio-imx6dl-ppc4510_defconfig 
   make; make hio-imx6dl-ppc4510.dtb 
  • Generate required files:

zImage: ppc-4510-linux-kernel/arch/arm/boot/zImage
hio-imx6dl-ppc4510.dtb: ppc-4510-linux-kernel/arch/arm/boot/dts/hio-imx6dl-ppc4510.dtb

Uboot Compile

   git clone -b imx_v2015.04_3.14.52_1.1.0_ga https://github.com/estonetechnology/ppc-4510-linux-uboot
   source /opt/poky/2.1/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 
   export ARCH=arm 
   export CROSS_COMPILE=arm-poky-linux-gnueabi- 
   make hio-imx6dl-board_spl_defconfig 
   make 
  • Generate required files: SPL u-boot.img

Rootfs Compile

  • Platform source code download

To download the platform source code, you need to have repo installed.

  • Install the repo utility:
   mkdir ~/bin
   curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
   chmod a+x ~/bin/repo
  • Download the source code:
   PATH=${PATH}:~/bin
   mkdir fsl-community-bsp
   cd fsl-community-bsp
   repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b krogoth
   repo sync
  
   cd fsl-community-bsp/sources/
   git clone -b pyro https://github.com/meta-qt5/meta-qt5.git
   git clone -b krogoth https://github.com/chausieu/meta-hio.git
   git clone -b krogoth git://git.yoctoproject.org/meta-mono
   
   cd fsl-community-bsp
   . ./setup-environment build
   git clone https://github.com/chausieu/hio-imx6dl-iob3200-conf.git
   mv hio-imx6dl-iob3200-conf/local.conf hio-imx6dl-iob3200-conf/bblayers.conf conf/
  • compile the image:
   bitbake core-image-full-cmdline
  • Compiled image will be stored in: fsl-community-bsp/build/tmp/deploy/images/hio-imx6dl-iob3200/

USB Update

   mkfs.vfat /dev/sda1
   
  • Extract Update file:
   cd /path/to/usb
   tar -xvf /path/to/ppc4510-usb-update-kernel3.14.52-yocto2.1-qt5.6.2.tar.bz2
  
  • Plug USB to ppc4510 and power on
  • Enter login Information and it will automatically update

Testing Unit

Setup environment for the test:

  • Ubuntu machine with minicom set up / Windows machine with PuTTy set up
  • Console cable

Ubuntu OS:
To install minicom on the Ubuntu host, type command below:

$ sudo apt-get install minicom

Configure minicom:

$ sudo minicom -s

Configure as below and save as dfl.

Minicom.png

Windows OS:

Download PuTTY here

- Connect the Development Cable to the board, and connect the USB to a Windows PC.
- Go to Computer Management console on Windows PC, click Ports (COM&LPT)' to expand. There should be Prolific USB-to-Serial Com Port(COM4) displayed.
- Download the 'putty terminal software into the Windows PC > Start Putty > Change these configuration on the user interface:

Serial line: COM4
Speed: 115200

- Click Open, the putty console window should display.
- Power on board, the backend output will show on the putty console window.

Network

  • Ethernet connection

Plug the network cable in, the unit will get an IP address from DHCP server.

Note: In case of failure, follow commands below:

# ifconfig eth0 up
# udhcpc

Check the IP address:

# ifconfig 

This command will show you what is the IP address.

Ex: IP address: 192.168.1.125 (It is various depending on the DHCP server settings)

Check connection:

# ping 192.168.1.126 (ping a host at the same network)
# ping www.habeyusa.com (It would be successful if the network connects to the Internet)
  • Wifi connection

Enable the Wifi interface:

# ifconfig wlan0 up

Scan wifi hotspots:

# iwlist wlan0 scan 

Modify the wifi configuration file according to Router Setting:

# cd /usr/share/wifi
# nano wpa_supplicant.conf

Input the SSID and the password of Router in the specified position:

# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
  ssid="your_SSID"
  scan_ssid=1
  key_mgmt=WPA-PSK
  pairwise=TKIP CCMP
  group=CCMP TKIP WEP104 WEP40
  psk="your_PASSWORD" 
}

Run the following command, then acquire the IP address dynamically from Router's DHCP service:

# wpa_supplicant –Dwext –iwlan0 –c./wpa_supplicant.conf –B
# udhcpc –i wlan0

Check connection:

# ifconfig -a
# ping 192.168.1.126 (an IP address from same local network)
  • Bandwidth:


From Terminal 1:

# ifconfig (Ex: IP address is 192.168.1.125)
# iperf -s (to set up as a server)

From Terminal 2:

# iperf -c 192.168.1.125

The result will show the bandwidth as Mb/s as below.
Iperftest.png
Note: The bandwidth is various depending on the LAN bandwidth.

SD Card

When a SD card is inserted, it will be recognized automatically and a message will show in the console as below.

Sdcard.png

To test the card to see if it is usable:

# mkdir /mnt/sdcard
# mount /dev/mmcblk0p1 /mnt/sdcard

Check to see if it is mounted:

Sdcardmount.png

To see the content:

# ls /mnt/sdcard

Listsd.png

Unmount the card before removing out:

#umount /mnt/sdcard

USBs

When a USB is connected, it will be detected automatically and a message will be printed in the console screen.

Ex: Screen below is shown when a USB flash drive connected.

Usbdetect.png

To access to the usb flash drive, it must be mounted firstly:

# mkdir /mnt/usb
# mount /dev/sda1 /mnt/usb

Now, access to the usb drive content:

# ls /mnt/usb

Listusb.png

To unplug the usb flash drive, it should firstly be unmounted:

# umount /mnt/usb

Note: Repeat this method for another USB ports.

Speakers

The images includes several wav files. They are located in /usr/share/sounds/alsa.

# ls /usr/share/sounds/alsa

Ppc-4510-soundfile.png

To play them, use aplay as below:

# aplay /usr/share/sounds/alsa/Front_Left.wav

Also, use speaker-test to test speakers:

# speaker-test -c2 -t wav

Serial Ports

To perform this test, TxD and RxD pins need to be connected.

Molex connector:

Molexpinout.png

 Pin 1: COM REF (GND  RS232 Port)
 Pin 2: TxD (RS232 Port)
 Pin 3: CANL
 Pin 4: 24VDC
 Pin 5: Shield
 Pin 6: RxD (RS232 Port)
 Pin 7: CANH
 Pin 8: GND

COM Port:

Ppc-4510-compin.png

From Ubuntu minicom:

Listen on ttymxc2:

# stty -F /dev/ttymxc2 115200 raw -echo
# cat /dev/ttymxc2

From unit:

Transmit data over ttymxc2:

# stty -F /dev/ttymxc2 115200 raw -echo
# echo Hello > /dev/ttymxc2

A result as Hello word will be printed in the minicom

Ppc-4510-ttymxc2.png

Touch Screen

To calibrate:

# ts_calibrate

Ppc-4510-calibrate.png

To drag, draw test:

# ts_test

When a crosshair moves, its position will be printed out in the terminal.

Ppc-4510-tstest.png

Other

Set Up Qt Creator for Yocto Device

The instruction is listed here

Set Up Eclipse IDE for Yocto Device

The instruction is listed here

Android

Note: The Android Marshmallow 6.0 was mostly tested in the 14.04 x64 Ubuntu.

Preparation

Install required packages. Open Terminal and type commands below:

$ sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop
$ sudo apt-get install git-core curl u-boot-tools mtd-utils android-tools-fsutils
$ sudo apt-get install openjdk-7-jdk gnupg flex bison gperf libsdl1.2-dev libesd0-dev
$ sudo apt-get install libwxgtk3.0 squashfs-tools build-essential zip libncurses5-dev
$ sudo apt-get install libncurses5-dev schedtool libxml2 libxml2-utils xsltproc libc6-dev
$ sudo apt-get install schedtool g++-multilib lib32z1-dev lib32readline-gplv2-dev gcc-multilib 
$ sudo apt-get install libswitch-perl gcc-arm-linux-gnueabihf libssl1.0.0 libssl-dev

Configure git account:

$git config --global user.name "First Last"
$git config --global user.email "first.last@company.com"

Create repo:

$ cd ~
$ mkdir ppc4510-android
$ mkdir bin
$ cd ppc4510-android
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Getting Android source code:

Download Android 6.0.1 source code:

https://www.dropbox.com/s/bozr8o3ye9ayv75/android-source-imx6-6.0.1-part1.tar.bz2?dl=0
https://www.dropbox.com/s/c60ulbgq1mbrwkx/android-source-imx6-6.0.1-part2.tar.bz2?dl=0
https://www.dropbox.com/s/fm1mpwazjuc9zjf/android-source-imx6-6.0.1-part3.tar.bz2?dl=0

Extracting files:

$ cd ~/ppc4510-android
$ tar xvjf android-source-imx6-6.0.1-part1.tar.bz2
$ tar xvjf android-source-imx6-6.0.1-part2.tar.bz2
$ tar xvjf android-source-imx6-6.0.1-part3.tar.bz2

Important:

Update all source codes from us for the unit:

$ repo init -u https://github.com/ppc-4510-android/bsp-platform
$ repo sync

Compiling images

Setting up build environment:

$ source build/envsetup.sh

Selecting product to build:

$ lunch sabresd_6dq-user

Compiling image:

$ make

Adding images into MfgTool to flash the unit:

$ ./build/hb-tools/make.sh MFG

After completion, the file as PPC-4510-MNC-HABEY-*.zip is used.

Unzip the *.zip file to get the mfgtools

How to build partial images:

Building kernel image:

$ ./build/hb-tools/make.sh k

Building uboot image:

$ ./build/hb-tools/make.sh u

Building boot image:

$ ./build/hb-tools/make.sh b

Building system image:

$ ./build/hb-tools/make.sh a

Building recovery image:

$ ./build/hb-tools/make.sh OTA

Image releases

Download the compiled image here

Flashing image

Switching boot position to "2".

Opc-4207-boot.jpg

Use a mini USB type B to USB type A cable to connect the unit from OTG port to windows host.

Opc-4207-otg.jpg

Using mfgtools that has been extracted above to flash. Execute the ppc-4510-android.vbs:

Mfgtool-2.png
Click Start to flash the image.
Mfgtool-3.png
The flashing process is done once two processing bars turned to green.
Mfgtool-4.png
Now, click Stop and Exit the tool.

Starting up the unit
Unplug the cable and power. Change the boot selection to "1"
Opc-4207-boot1.jpg
Now, connect to power adapter and power on. The unit will start up.

Testing Unit

Bandwidth

To test Wifi/Ethernet bandwidth, running iPerf app from the unit.

  • Testing the WiFi bandwidth:

Connecting to WiFi hotspot: Go to Settings > Wifi > Turn on. After it connected, it will get an IP address from DHCP server.

Opening iPerf app from the unit, type -s and click ON. This process is to make the unit to become a server with an IP address that has been leased from DHCP server. Ex: It is 192.168.0.144 as photo below

Iperf-s.jpg

Opening the Terminal from Ubuntu host, type command below:

$ iperf -c 192.168.0.144

The bandwidth will be shown.

Iperf-c.png

Note: The bandwidth is various depending on your network.

  • Testing the Ethernet:

Follow exactly steps for WiFi above.

Serial Port

To perform this test, connect TxD and RxD pin.

Molex connector:

Connecting pin 3 & 7:
Molexpinout.png

COM port:

Ppc-4510-compin.png

Connecting pin 2 & 3:

Open pre-installed ComAssistant app.

Select port: /dev/ttymxc2 and /dev/ttyUSB0
Select baud: 9600
Turn they ON

Now, click Send or check the Check box next to Send button for Auto.
Once it is working, the windows at the top will show up.

Ppc4510-comassistant.png

USB

The ES File Explorer app is used to test USB flash drives.

When connecting a USB flash drive into the unit, a dialog pops up asking to use the ES File Explorer app to open the USB device. Select OK to open it.

The USB will be shown under Local.

Ppc-4510-usb.png

To perform read/write test, you can make a directory, copy, remove in this USB device.assistant.pn

SD Card

Open ES File Explorer and insert a SD card into SD slot. The Sd card will be recognized under Local.

Ppc-4510-sd.png

Copy/remove files/directories from this card to see its performance.

Display

The Display Tester pre-installed app is used for the test.

Open Display Tester > Select Display quality at the top right.

Ppc-4510-displaytester.png

  • To test the defective pixels

Select the Defective pixel detection > Slide the screen to pick background colors such as red, green, blue, white, grey, black, yellow, etc to detect defective pixels.

  • To test the touch point

Select the Multi-touch counter

  • To test the display quality

Select the Real world photos and slide the screen to get several photos to check the quality and also can compare with other devices.

Ppc-4510-displaytester1.JPG

Touch screen

Open the Touch Test pre-installed app from the unit. It will allow you to draw for the test.

Ppc4510-touch.png