From Estone Technology Wiki
Revision as of 16:53, 4 September 2019 by Charles (Talk | contribs) (Wi-Fi Connection)

Jump to: navigation, search



The EMB-2238 is a Pico-ITX (100x 72mm) industrial motherboard based on NXP i.MX8M ARM application processor. The board features a Power over Ethernet (PoE) ready Gigabit Ethernet port, dual-core hardware DSP that runs algorithms for voice control, noise suppression, and echo cancellation technology, extensive high-performance digital audio inputs/outputs and full set of I/Os including RS-232/485, and more. OS supports include Yocto built Embedded Linux, Ubuntu, Qt and Wayland, Amazon AVS (Alexa Voice Service) Device SDK, Sensory TrulyHandsfree Wake Word Engine, Android OS.



Targeted to satisfy diverse applications demanding a robust and compact computing platform in industrial environments with 10 and 15 year longevity support NXP application processors, integrated Cortex-M4 for real time requirements, built-in reliable communication interfaces like RS-485, RS-232 and more.

  • NXP i.MX8M with up to four 1.5 GHz Cortex-A53 processors
  • One Cortex-M4 for real time requirements
  • Gigabit Ethernet with build-in POE (Power over Ethernet) option
  • Smart codec with dual-core DSP for digital MICs and voice control
  • MIPI CSI and DSI for LCD panel, built-in I2C touch panel support
  • 20+ audio channel 32-bit @ 384KHz input and output interfaces
  • Rich I/O with RS-232/485, I2C, GPIOs, USB 2.0 and 3.0 ports
EMB-2238 Block Diagram 20181228.jpg

Quick Start Guide

EMB-2238 has multiple boot configurations which are listed in the Quick Startup Guide below. Please follow the guide below to get started with i.MX8M boot and port diagram for this board

EMB-2238 Development Kit

Quick Start Guide

  • The Guide below is a guide designed to get started with the EMB-2238 development kit as well as the Alexa Voice Control SampleApp

EMB-2238 Development Kit - Quick Start Guide

i.MX8M Facts Datasheet

i.MX8M Hardware User's Guide

i.MX8M Processor Datasheet

EMB-2238 Image Build From Source


CPU - 2 Core Processors
Memory Size - 2GB Minimum
Disk Space - 30GB Minimum
Operating System - Ubuntu 16.04 LTS

Setup Environment

Follow the steps below for host setup. Once the guides below are finished you can follow the next section to compile image from scratch

  1. Setup Yocto Build Environment
  2. Build and Install SDK

Build Yocto Image from Scratch

These guides will guide you through image creation and compile from scratch

Note: Before starting any of these guides please setup environment from previous section

Image Without GUI

Image With GUI

Image With GUI & Alexa-AVS


Download DDR-Tool manual below

Micro SD Image

EMB-2238 MFGTool

Note: You can download created MFGTool Image from link below and follow instructions to install

Installing MFGtool Image

1. Download MFG Image from link above

2. Extract emb-2238-mfg-v2.zip on host system (Windows7,8,10)

3. Connect EMB-2238 to host (Windows) system via USB Type-C

4. Change EMB-2238 dip switches 1(Off) 2(Off) 3(Off) 4(Off) positions


5. Connect power to the EMB-2238 board

6. Open the extracted emb-2238-mfg-v2 >> emb-2238-mfg >> mfgtools

7. Open emb-2238 VBScript Script File to install full image with filesystem or emb-2238-kernel VBScript Script File to install kernel only

8. Press Open when prompted by Security Warning to open MFGtool

9. Make sure EMB-2238 power is on and USB Type-C connected to host machine (Windows) & on MfgTool_MultiPanel press Start to start imaging process

10. Wait for EMB-2238 image to finish loading and then you can switch dip switches back to 1(Off) 2(Off) 3(On) 4(Off) positions to boot from eMMC

Qt Creator

Note: Follow the instructions below to install and test QtCreator on EMB-2238



Ethernet Connection:

  • Plug the ethernet cable in the ethernet port on EMB-2238, the unit will recover an IP from the DHCP server.

Note: In case of failure follow the commands below

# ifconfig eth0 up
# udhcpc

Check IP Address:

# ifconfig


Check Internet Connection:

# ping (ping a host at the same network)
# ping www.estonetech.com (internet connect successful if packets are received with no loss)


Wi-Fi Connection

Enabling the Wifi interface:

# ifconfig wlan0 up


Scan Wifi hotspots:

# iwlist wlan0 scan


  • This will scan for any networks available for connection

  • Modify the Wifi .conf file according to the available network you want to connect to
# cd /etc
# nano wpa_supplicant.conf

  • Input SSID(ssid="your SSID") and Password(psk="your_PASSWORD") from Router in specified slots (/etc/wpa_supplicant.conf)


 pairwise=TKIP CCMP
 group=CCMP TKIP WEP104 WEP40

EMB-2238-wpa supplicant.jpg

  • Acquire the Dynamic IP Address from router's DHCP service
# wpa_supplicant -Dwext -iwlan0 -c ./wpa_supplicant.conf -B
# udhcpc -i wlan0


  • Check Connection
# ifconfig -a
# ping (Google DNS Service)
# ping www.google.com


  • To enable and connect bluetooth we will use the bluetooth command line:

Turn on bluetooth

# bluetoothctl


# power on


Setup Pairing Agent

# agent on


# default-agent


Make EMB-2238 Discoverable

# discoverable on
  • The command prompt will display Discoverable: yes and EMB-2238 will now be discoverable to other devices

  • From your mobile device bluetooth search you will be able to see EMB-2238 as (imx8mqevk), select and wait for pairing passkey confirmation

Passkey Confirmation

  • Confirm the pairing on both phone and EMB-2238(imx8mqevk)
# [agent] Confirm passkey 706010 (yes/no): yes


  • Authorize A2DP sevice (first 32 bits: 0000110d)
# Authorize service 0000111e-0000-1000-8000-00805f9b34fb (yes/no): yes

Note: You may be prompted about other services depending on what services your mobile device supports. Answer yes to all services for full device support.

Trusted Device

  • Trust device connected so EMB-2238 will automatically accept connections from your device next time when pairing
# trust XX:XX:XX:XX:XX:XX

  • exit from bluetoothctl command line interface
# exit


  • When a USB is connected to EMB-2238 it will automatically be detected by the terminal and will output a message like the example shown in the picture below.


Access to USB

  • To access the USB you first need to mount to specific directory
# mkdir /mnt/usb
# mount /dev/sd<x>1 /mnt/usb

Access to USB directory

  • Once the USB is mounted on the specific directory you can access the contents
# ls /mnt/usb/


Unmounting USB

  • To safely eject USB you will need to unmount USB from EMB-2238 using umount command
# umount /dev/usb/
  • Safely eject USB from EMB-2238
# eject /dev/sd<x>

Note: Use this method to safely mount and unmount USB's connected to the EMB-2238

Creating Ubuntu 18.04 Image