Skip to content

Android for Toradex Colibri i.MX7D

Android 7.1.2 running on Toradex Colibri Iris, i.MX7

Introduction

Kynetics has built a vanilla image of Android Nougat supporting the Toradex Colibri i.MX7D SOM and the Iris carrier board. It is pretty exciting to share with all of you this work we have done so far and to give you the chance to enjoy Android on this embedded system.

This is an unsupported release. For commercial support please contact us.

Release Notes

Here are some important remarks about our build:

  • Android 7.1.2, U-Boot 2017.03, Linux Kernel 4.9;
  • Userdebug build with permissive SELinux and disabled DM-Verity;
  • The build is compatible with:
    • Colibri i.MX7D eMMC SOM 1GB RAM,
    • The Iris carrier board,
    • 7" capacitive parallel display from Toradex
  • The Iris board has a DVI port: it was tested up to a resolution of 1024x768.

Flash Instructions

We've created a video that walks you through the steps. See farther down this page for information about things like how to put the board in recovery mode, etc.

Hardware requirements

  • The Toradex Colibri i.MX7D eMMC SOM (1GB RAM) connected to the Iris board
  • Toradex capacitive display (7’’)
  • Toradex serial cable adapter as per this tutorial
  • Micro USB cable
  • A host computer running GNU/Linux, MacOS or Windows

Software requirements

  • Kynetics Android for Toradex binaries package, can be downloaded from here.
  • imx_usb from Boundary Devices to load u-boot in device RAM.
  • Android platform tools installed on the host computer. You can download the archive here. Note: we need this archive to acquire the fastboot binary. Alternatively, you can install fastboot via a package manager. In this guide, we will use Ubuntu's package manager.
  • libusb userspace programming library and development tools.

Now proceed with the following steps:

  1. Install fastboot - On Ubuntu: sudo apt-get install fastboot -y

    • Alternatively, if you decided to download the platform-tools archive from Google (suggested if host distribution fastboot is too old), you will need to update your PATH environment variable. There are a number of ways to address this, not covered in this guide.
  2. Ensure that libusb is installed. You can compile from source, here. Or, alternatively you can download via package manager.

    • On Ubuntu: sudo apt-get update && sudo apt-get install libusb-1.0-0 && sudo apt-get install libusb-1.0-0-dev -y
  3. In the imx_usb_loader-master archive that you downloaded and extracted earlier, do a make in the root of the folder. This should succeed without error, assuming you have libusb properly installed as noted in 2. You should now see the imx_usb binary in the same folder upon completion of the make.

  4. Connect to the serial port using the PINs on the Iris board. For more information about connecting to the Iris serial port, see here.

  5. Connect also the micro USB port of the board to the host computer.

  6. Enter in recovery mode. For information how to enter in recovery mode see here.

  7. Use the imx_usb tool to load, in recovery mode, u-boot.imx which we provided. From the host pc:

    • $imx_usb /path/to/u-boot.imx as root if necessary.

    u-boot.imx is in the Kynetics Android for Toradex package folder.

  8. The u-boot console should start (u-boot build number g798e25b). From the u-boot console start fastboot with the command:

    • => fastboot 1

    • Note: to fall into the console, you may need to invoke CTRL + C

  9. From the host pc (as root if needed) from inside the Kynetics folder, run the following commands:

    • => fastboot flash gpt partition-table.img
    • => fastboot flash bootloader u-boot.imx

    Note: to fall into the console, you may need to invoke CTRL + C

  10. Reset the board: the new u-boot should start (build g798e25b). From the U-Boot console:

    • => env default -a
    • => saveenv
    • => mmc partconf 0 1 1 0 (needed only on old SOMs that fail boot after running the following res command. Running it anyway causes no harm)
    • => res (this will restart the board. If the board does not restart, do a power cycle. If the board fails to boot go back to step 7 and, once at step 10 again, run the above command before res).

    When the board is restarted, stop the boot loader immediately (pressing space) and at the prompt:

    • => fastboot 1
  11. In the host pc (as root if needed) from inside the Kynetics Android For Toradex folder, run the following commands:

    • => fastboot format device
    • => fastboot update -w colibri_imx7d-dev-1.0-alpha0.zip
  12. Android should start. If this is the first time the Toradex capacitive display is used, it is necessary to configure the touchscreen.

Configure the touch controller

The Atmel touch controller needs to be flashed with a configuration file in order to have a working touchscreen. The controller configuration is a one time task and it is independent from the OS, so if you have already flashed the configuration on the chip, you can skip this point. Please refer here for more info.

To flash the configuration use the mxt-app binary and the LTCTP070-3-GG_mXT1066T2_tdx_20170911.xcfg provided in the Kynetics Android for Toradex package (the versions provided by Toradex won't work on Android 7). The source code of mxt-app is available here.

NOTE: Do not rename the xcfg file.

Connect the board to the host computer, and from the host computer run the following commands:

  • $adb root
  • $adb push mxt-app /data/media/0/mxt-app
  • $adb push LTCTP070-3-GG_mXT1066T2_tdx_20170911.xcfg /data/media/0/LTCTP070-3-GG_mXT1066T2_tdx_20170911.xcfg
  • $adb shell
  • # cd /data/media/0/
  • # chmod a+x mxt-app
  • # ./mxt-app -d i2c-dev:3-004a --load LTCTP070-3-GG_mXT1066T2_tdx_20170911.xcfg
  • # reboot

After reboot, the touchscreen will work and you are ready to enjoy Android on the i.MX7 Colibri System.

Enjoy the Art of Coding™!