Skip to content

Most visited

Recently visited

navigation

NXP i.MX6UL

Expanding the i.MX 6 series, the i.MX 6UltraLite is a high performance, ultra-efficient processor family featuring an advanced implementation of a single ARM® Cortex®-A7 core. The Pico variant is pin-compatible with the Intel® Edison for sensors and low-speed I/O, but also adds additional expansion possibilities for multimedia and connectivity, giving you cutting edge technology that can easily be expanded and implemented for IoT designs.

Flashing the image

Before you begin flashing, you will need the following items in addition to your board:

To flash Android Things onto your board, download the latest preview image in the Android Things Console (see the release notes) and follow these steps:

Step 1: Connect the Hardware

Connect the board to your host computer:

For Pico i.MX6UL:

""

  1. Connect a USB-C cable from your host computer to the USB OTG connector.

For SprIoT i.MX6UL:

""

  1. Connect a Micro-USB cable to the USB OTG connector.
  2. Connect a 5V power adapter to the power input connector.

For Argon i.MX6UL:

""

  1. Ensure switch SW1 is in the OFF position.
  2. Connect a Micro-USB cable to the OTG (J7) connector.
  3. Connect a 5V power adapter to the power input (J2) connector.
  4. Move SW1 to the ON position to power the board.

Step 2: Flash Android Things

Use the following steps to flash the Android image:

  1. Download and install Android Studio or the sdkmanager command-line tool. Update the Android SDK Platform Tools to version 25.0.3 or later from the SDK Manager.

    • Navigate to the Android SDK location on your computer; the path can be found in the system settings for Android Studio. Verify that the fastboot binary is installed in the platform-tools/ directory.

    • After you have the fastboot tool, add it to your PATH environment variable. This command should be similar to the following:

      export PATH=$PATH:"path/to/fastboot"

  2. Open a command line terminal and navigate to the unzipped image directory.

  3. Verify that the device has booted into Fastboot mode by executing the following command:

    $ fastboot devices
    1b2f21d4e1fe0129	fastboot
    
  4. Execute the flash-all.sh script. This script installs the necessary bootloader, baseband firmware(s), and operating system. (On Windows systems, use flash-all.bat instead).

  5. To verify that Android is running on the device, discover it using the adb tool:

    $ adb wait-for-device
    ...
    $ adb devices
    List of devices attached
    1b2f21d4e1fe0129	device
    

Connecting Wi-Fi

After flashing your board, it is strongly recommended to connect it to the internet. This allows your device to deliver crash reports and receive updates.

Before connecting your board to a Wi-Fi network, attach an external IPEX or u.FL Wi-Fi antenna to your board as shown:

For Pico i.MX6UL:

""

For SprIoT i.MX6UL:

""

For Argon i.MX6UL:

""

To connect your board to Wi-Fi, first access a shell prompt on the device. You can use either of the following methods:

Once you can access a shell prompt, follow these steps:

  1. Send an intent to the Wi-Fi service that includes the SSID of your local network. Your board must support the network protocol and frequency band of the wireless network in order to establish a connection.

    $ am startservice \
        -n com.google.wifisetup/.WifiSetupService \
        -a WifiSetupService.Connect
    

    The following arguments are supported with this command:

    Argument Description
    -e ssid network_ssid Connect to the wireless network SSID specified by network_ssid. This argument is required.
    -e passphrase network_pass Optional argument to use the passcode specified by network_pass to connect to the network SSID. This argument is not necessary if your network doesn't require a passcode.
    -e passphrase64 encoded_pass Optional argument used in place of passphrase for passcodes with special characters (space, !, ", $, &, ', (, ), ;, <, >, `, or |). Use base64 encoding to specify the value for encoded_pass.
    --ez hidden true Optional argument to indicate that the SSID specified in this command is hidden. If omitted, this value defaults to false.

  2. Verify that the connection was successful through logcat:

    $ logcat -d | grep Wifi
    ...
    V WifiWatcher: Network state changed to CONNECTED
    V WifiWatcher: SSID changed: ...
    I WifiConfigurator: Successfully connected to ...
    
  3. Test that you can access a remote IP address:

    $ ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=6.67 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=55.5 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=23.0 ms
    64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=245 ms
    
  4. Check that the date and time are set correctly on the device:

    $ date
    

If you want to clear all of the saved networks on the board:

$ am startservice \
    -n com.google.wifisetup/.WifiSetupService \
    -a WifiSetupService.Reset

Serial debug console

The serial console is a helpful tool for debugging your board and reviewing system log information. The console is the default output location for kernel log messages (i.e. dmesg), and it also provides access to a full shell prompt that you can use to access commands such as logcat. This is helpful if you are unable to access ADB on your board through other means and have not yet enabled a network connection.

To access the serial console:

For Pico i.MX6UL: Connect a micro USB cable to the debug interface as shown below.

""

For SprIoT i.MX6UL: Connect a Micro-USB cable to the board as shown below.

""

For Argon i.MX6UL: Connect a USB Type B cable to the board as shown below.

""

Open a connection to the USB serial device on your development computer using a terminal program, such as PuTTY (Windows), Serial (Mac OS), or Minicom (Linux). The serial port parameters for the console are as follows:

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)