From Estone Technology Wiki
Revision as of 03:28, 8 May 2019 by Gan (Talk | contribs) (Compiling Kernel)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


The EMB-3200 is a 3.5” industrial motherboard based on NXP i.MX6 ARM applicatoin Processor. The board features dual Intel Gigabit Ethernet ports, Power over Ethernet (PoE), on-board WiFi/BT module, multiple LCD panel support, and full set of I/Os including RS-232/485, CAN, digtial IO and more.

Quick Setup Guide



Installing and configuring Git

$ sudo apt-get update
$ sudo apt-get install git
$ git config --global user.name "First Last"
$ git config --global user.email "first.last@company.com"

Installing SDK

Download here


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

Compiling Kernel

git clone -b 3.14.52-ppc421x https https://github.com/estonetechnology/imx6qdl-linux-kernel.git
source /opt/poky/2.1.3/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
export ARCH=arm
export CROSS_COMPILE=arm-poky-linux-gnueabi-
make hio-imx6dl-ppc4218_defconfig 
make -j16
make hio-imx6dl-ppc4218.dtb

Files require:

zImage (imx6qdl-linux-kernel/arch/arm/boot/zImage)
hio-imx6dl-ppc4218.dtb (imx6qdl-linux-kernel/arch/arm/boot/dts/hio-imx6dl-ppc4218.dtb)

Compiling U-boot

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.3/environment-setup-cortexa9hf-neon-poky-linux-gnueabi 
export ARCH=arm 
export CROSS_COMPILE=arm-poky-linux-gnueabi- 
make hio-imx6dl-board_spl_defconfig 

Files require:


Compiling Rootfs

  • Repo utility installation:
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
  • Getting source code:
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 krogoth 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/
  • Compiling image:
bitbake core-image-full-cmdline

Compiled image:

core-image-full-cmdline-hio-imx6dl-iob3200.tar.bz2 (fsl-community-bsp/build/tmp/deploy/images/hio-imx6dl-iob3200/core-image-full-cmdline-hio-imx6dl-iob3200.tar.bz2)

Flashing Image

  • Image:

Download compiled image here. The image comes with the MFG tool that requires a Windows OS system.

  • Preparation:

Set the boot selection to "2"
Use a mini USB type B to USB type A cable to connect the unit from OTG port to windows host.

  • Flashing

Extract the MFG file and run MfgTool2.exe. The device will be recognized as HID-compliant device.
Click Start to flash the image.
The flashing process is done once two processing bars turned to green.
Now, click Stop and Exit the tool.

  • Starting up

Unplug the cable and power. Change the boot selection to "1"
Now, connect to power adapter and power on. The unit will start up.




  • This test requires a Windows OS/ Ubuntu OS computer (Ubuntu host recommended). Follow the steps below to install and configure minicom.

For Ubuntu host:

Open terminal and install minicom by typing:

$ sudo apt-get install minicom


$ sudo minicom -s

Configure as below and save as dfl.

For Windows host:

Download PuTTY here

(a) Connect the Development Cable to the board, and connect the USB to a Windows PC.
(b) 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.
(c) Download the 'putty terminal software into the Windows PC > Start Putty > Change these configuration on the user interface:

Serial line: COM4
Speed: 115200

(d) Click Open, the putty console window should display.
(e) Power on board, the backend output will show on the putty console window.

  • Connect the serial to USB cable to your host.


  • This is loopback test, so connect Tx and Rx pins with a wire. Check out the PINs below:



Perform the test:
The test will be performed using Ubuntu host:
There are 2xRS232 enabled for this board. Verify them by typing

$dmesg | grep ttymxc*

The result is ttymxc0 and ttymxc4.

Test for ttymxc0:
Open minicom

$sudo minicom

Power on the board and login as root from Terminal.
Read from ttymxc0

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

Send from ttymxc0

stty -F /dev/ttymxc0 115200 raw -echo
echo Hello World > /dev/ttymxc0

The text sent as "Hello World" will display on the terminal.
Test for ttymxc4
Follow steps from ttymxc0 above for this test.


There are 2xGPIO used for the board. Check out the PINs below:

''Note:'' A voltage meter needed to check the result.

Open Terminal and run minicom, following commands below:

#cd /sys/class/gpio

Test for SPI4_SS0:

echo 84 > export
echo out > gpio84/direction
echo 1 > gpio84/value (Test the result with the voltage meter)
echo 0 > gpio84/value (Test the result with the voltage meter)

Test for SPI4_SCK:

echo 85 > export
echo out > gpio85/direction
echo 1 > gpio85/value (Test its result with the voltage meter)
echo 0 > gpio85/value (Test its result with the voltage meter)


The board has 2 Ethernet ports. To test the Ethernet bandwidth, the iperf package will be used. It needs a Ubuntu host to perform the test. Open Terminal and install iperf package by following command:

$sudo apt-get install iperf

Ethernet 1 (eth0)

Plug the network cable. Enable eth0 interface and lease IP address from DHCP server.

Open a Terminal and login as root. Follow commands below:

#ifconfig eth0 up
#udhcpc -i eth0

It will get an IP address from DHCP server (IP address will be assigned depending on your DHCP server settings).

Ex: IP address as has been leased from DHCP server.

  • Test the connection, perform a ping test.

#ping 192.168.1.x (x: a host from same network)

  • Test the bandwidth, follow commands below:

From Terminal 1:

#iperf -s (to set up as a server)

From Terminal 2:

#iperf -c

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

Ethernet 2 (eth1)

Follow exactly the steps from the Ethernet 1 above.


Plug a USB drive into the USB ports. Check the USB drive letter.


Usually, the result will show as sda1

Test the USB bandwidth by typing:

#hdparm -t /dev/sda1

The command will return a result as below.


Connect 2 speakers to the board.

There are a set of sample sounds files available on the systems from the alsa-utils package.

#ls /usr/share/sounds/alsa/

Use aplay command to play these files.

aplay /usr/share/sounds/alsa/Front_Right.wav

Also, the sound can be tested with speaker-test command.

speaker-test -c2 -t wav