PICO-i.MX6UL Development Platform for Android Things Quick Start Guide

Similar documents
Getting Started with the MCU Flashloader

i.mx 7 Dual/Solo Product Lifetime Usage

i.mxrt1050 Product Lifetime Usage Estimates

Building U-Boot in CodeWarrior ARMv8

MCUXpresso SDK USB Power Delivery

Offline Flash Programmer for Kinetis K- and L-series MCUs

i.mx 6ULL Product Usage Lifetime Estimates

How to Enable Boot from QSPI Flash

i.mx 6UltraLite Product Usage Lifetime Estimates

Processor Expert Software for i.mx Processors Version 1.0

Getting Started with Freescale MQX RTOS for Kinetis SDK and MDK-ARM Keil

How to use FlexMemory as D-Flash and EEPROM in KE1xF

Kinetis USB-KW41Z Wireless Protocol Sniffer Quick Start Guide

Configuring DDR in U-Boot using QCVS

MQX RTOS Release Notes for Kinetis SDK FRDM- KV10Z Freescale Freedom Development Platform

MQX RTOS Release Notes for Kinetis SDK v1.2.0 for KL33Z64 for FRDM-KL43Z Freescale Freedom Development Platform

Getting Started with MCUXpresso SDK CMSIS Packs

Smart Plug Software Design Reference Manual

FRDM-K64F Board Errata

Configure QSPI Bus Width and Frequency in Pre-Boot Loader Stage on QorIQ LS Series Processors

Getting Started with Freescale MQX RTOS for Kinetis SDK and ARM GCC

Quick Start Guide. i.mx 6SoloLite Evaluation Kit

Kinetis SDK Release Notes for the TWR-K24F120M Tower System Module

TWR-LS1021A Getting Started

i.mx 6UltraLite Evaluation Kit Quick Start Guide s datasheet has been downloaded from at this pag

SCM-i.MX 6 Series Yocto Linux User's Guide

Using an External GCC Toolchain with CodeWarrior for Power Architecture

How to Enable Boot from HyperFlash and SD Card

MIMXRT1020 EVK Board Hardware User s Guide

Android Release Notes

Kinetis SDK v Release Notes for the MK21DA5 and MKW24D5 Devices

User's Guide for NXP i.mx 8M Development Kit for Amazon AVS

Load Position-Independent Code (PIC) on a Kinetis Platform Using the IAR EWARM Compiler

Getting Started with FreeRTOS BSP for i.mx 7Dual

MCU Bootloader Release Notes

OpenSDA on TWR-KW2x. User s Guide Rev 1.1

Measuring Interrupt Latency

Using FCCU on MPC5744P

TWR-KV10Z32 Sample Code Guide for CodeWarrior Board configuration, software, and development tools

TWR-LS1021A Getting Started

TWR-KV10Z32 Sample Code Guide for IAR Board configuration, software, and development tools

Developing a simple UVC device based on i.mx RT1050

Collect Linux Hardware Trace for ARMv8 User Space and Kernel Space Applications

Developing a Camera Application with i.mx RT Series

S12Z MagniV LIN Bootloader

Power Consumption and Measurement of i.mx RT1020

Collecting Linux Trace without using CodeWarrior

Kinetis SDK Freescale Freedom FRDM-KL03Z Platform User s Guide

Get Started SUPPORT WARRANTY. Visit the i.mx community at

P1010RDB-PB Quick Start Guide

Getting Started with Freescale MQX RTOS for Kinetis SDK and Kinetis Design Studio IDE

SABRE Board for Smart Devices

AN5016. Trigonometry approximations. Document information

Quick Start Guide for FRDM-FXS-MULTI-B

Freescale Kinetis Software Development Kit Release Notes

Quick Start Guide for the Freescale Freedom Development Platform FRDM-KL43Z

Quick Start Guide for FRDM-KL05Z

Quick Start Guide for FRDM-KL46Z Rev 1

WPR1500-LDO MP Receiver V2.1 Reference Design User s Guide

NOVPEK NetLeap User Guide

Kinetis Flash Tool User's Guide

QN9080 QN908x RF Certification Guide

Freedom FRDM-MC-LVBLDC Development Platform User s Guide

SABRE Board for Smart Devices

Kinetis SDK v Release Notes for KV5x Derivatives

Oxalis Getting Started

Quick Start Guide for FRDM-KL46Z Rev 1

i.mx 6ULZ Migration Guide

Kinetis Bootloader v1.2.0 Release Notes

Freescale MQX USB Stack for TWR-K24F120M GA User s Guide

i.mx 6ULL Migration Guide

Kinetis KE1xF512 MCUs

Quick Start Guide. SABRE Platform for Smart Devices Based on the i.mx 6 Series

Getting Started with MQX RTOS for Kinetis SDK

Emulating Dual SPI Using FlexIO

Quick Start Guide Multisensory Enablement Kit i.mx 8QuadXPlus MEK CPU Board. Based on i.mx 8QuadXPlus Applications Processor

i.mx 6 Android JB 4.3_1.1.1 Patch Release Notes

Kinetis Flash Tool User's Guide

Kinetis Updater User's Guide

How to Implement USB Suspend/Resume Feature with MCUXpresso SDK USB Stack

Adding a run control interface into an existing CodeWarrior for MCU v10.x project

HVP-KV10Z32 User s Guide

NXP Semiconductors MCU Bootloader Demo Applications User's Guide

KW41Z IEEE and BLE Coexistence Performance

Matrix. Get Started Guide V2.0

i.mxrt1060 Product Lifetime Usage Estimates

How to Reduce SoC Power when Running M4 with A53 on i.mx8m

Getting Started with Pins Tool User's Guide

i.mx 8M EVK Board Hardware User's Guide

Contents 2. Contents

WCT1011A/WCT1013A Automotive MP-A9 V4.0 Run-Time Debugging

HVP-KV31F120M User s Guide

How to setup pre-build steps in CodeWarrior for Microcontrollers v10.x

Quick Start Guide for i.mx28 EVK. i.mx28 EVK Multimedia and connectivity

Freescale MKW40Z IEEE Software Quick Start Guide

NADK Reflector Application Debug

IMXPINSQSUG Quick Start Guide on Pins Tool for i.mx Processors

i.mx 6Solo/6DualLite Product Lifetime Usage Estimates

Matrix. Get Started Guide

i.mx 6 Yocto Project Patch Release Notes

Transcription:

NXP Semiconductors Document Number: PICOIMX6ULQSUG User's Guide Rev. 0, 12/2017 PICO-i.MX6UL Development Platform for Android Things Quick Start Guide 1. Overview This tutorial helps new developers get started with the NXP based development platform for Android Things PICO-i.MX6UL board, and software support. Specifically, it walks through the hardware setup, Android Things image build and board booting process. Code development, building, and unit testing take place on the developer s host computer. The resulting image is flashed to the target hardware for further integration testing and debugging over USB or Ethernet. Just as Android Things is Android-based, the software development leverages Android development tools including Android Development Bridge (ADB) and FASTBOOT mode to interact with the target. This development platform, together with the Board Support Package software, aims to enable faster development of IoT devices based on Android Things, and flexible hardware/software customization needed for the particular device. Contents 1. Overview... 1 2. Hardware requirements... 2 3. Getting familiar with development platform... 2 4. Connect board and host computer... 3 5. Instructions to set up serial console terminal... 4 6. Download mode and boot mode... 5 7. Prepare Android Things images... 5 7.1. Android Things image introduction... 5 7.2. Prebuilt Android Things images... 6 7.3. The mfgtools... 6 8. Testing and debugging tools... 6 9. Flash Android Things images... 7 9.1. Flash Android Things bootloader binary with MFG tools 7 9.2. Provision Android Things images with FASTBOOT mode 8 10. Boot Android Things... 8 10.1. Change boot arguments... 8 11. Instructions to switch to FASTBOOT mode... 9 11.1. Check whether the device is in FASTBOOT mode 9 11.2. Set the device into FASTBOOT mode... 9 12. Useful links... 10 2017 NXP B.V.

Getting familiar with development platform 2. Hardware requirements The development kit contains: PICO-i.MX6UL-eMMC System-On-Module (SOM) PICO- carrier board (pre-assembled with the SOM) Besides, other required materials include: Cables: For ADB/FASTBOOT/MFGTool USB type-a to USB type-c cable Serial console USB type-a to micro USB WiFi antenna (IPEX interface) 3. Getting familiar with development platform The key interfaces of the board are shown in Figure 1: USB to serial console convertor interface (1 in Figure 1) WiFi+Bluetooth antenna connector (5 in Figure 1) Microphone and headphone jack (3 in Figure 1) USB OTG (USB Type-C) and power supply interface (4 in Figure 1) Figure 1. PICO-i.MX6UL board (top view) 2 NXP Semiconductors

Connect board and host computer Take a close look at the jumpers on the top view of the board. There are two different setups, download mode (Figure 2) and boot mode (Figure 3), which will be described in details below. Figure 2. Jumper setup (download mode) Figure 3. Jumper setup (boot mode) 4. Connect board and host computer 1. Connect the USB type-a to micro USB s micro USB end to the micro USB interface (1 in Figure 1). 2. Connect the WiFi antenna to connector (5 in Figure 1). 3. Get a USB type A to USB type C cable. Plug the USB type C end to the USB OTG type C connector (4 in Figure 1) for ADB and FASTBOOT interface. Plug the other end of the USB cable to your computer. This interface is also the power supply for the board. NXP Semiconductors 3

Instructions to set up serial console terminal 5. Instructions to set up serial console terminal 1. Make sure that you connect to the UART serial console as shown in 3 in Connect board and host computer. 2. Start the serial communication software. 3. Choose the operating system of host computer Windows. o Once the PC recognizes the virtual USB to UART device, it can be seen in your PC Device Manager list. You can determine the port number of the virtual COM port by looking under the "Ports" group. o With the serial port driver installed, run your favorite terminal application to view the serial output from i.mx6ul microprocessor's UART. Recommended tools for serial communication terminal: Putty and Minicom. Serial port configuration: 115200 baudrate, 8 data bits, 1 stop bit, no parity. NOTE The PC needs a driver to enable a virtual COM port through the PC USB port. Please consult www.ftdichip.com/documents/installguides.htm to download the correct driver. Set up serial communication terminal in Putty as Figure 4: Figure 4. Screenshot of PuTTy configuration 4 NXP Semiconductors

Prepare Android Things images 4. Choose the operating system of host computer Ubuntu. Install Minicom on host computer with the command below: $ sudo apt-get install minicom Set up serial communication terminal in Minicom as Figure 5: Figure 5. Screenshot of Minicom configuration 6. Download mode and boot mode The board is designed as booting from the internal emmc. There are two modes for the PICO-i.MX6UL board. In the download mode, the board will receive the instructions from MFG Tools to flash images to boot storage such as emmc. In the boot mode, the board will load the image from the boot storage and boot from the image. The board comes with a working image burned in emmc. To boot the board from that image, you can boot the board directly with the power supply connected. Please make sure the board is in Boot Mode with the jumper setting as above. 7. Prepare Android Things images 7.1. Android Things image introduction Table 1 describes Android Things images and the targeted emmc partition where the Android Things images to be flashed into. Table 1. Android Things Image Image Name Image Description Target Parition u-boot.imx partition-table.img The u-boot bootloader image, which is the first code run after the PICO-i.MX6UL board hardware reset. It will load and jump to the boot.img either from Slot a s boot partition or Slot b s boot partition, based on the meta data stored in misc partition The GUID Partition Table image, which define the partitions in the PICO-i.MX6UL-emmc The first boot partition of PICO-i.MX6ULemmc gpt partition (Slot a s boot partition) for PICO-i.MX6UL-emmc NXP Semiconductors 5

Testing and debugging tools Table 1. Android Things Image Image Name Image Description Target Parition boot.img The Android Things boot image which is composed by Linux kernel zimage, linux kernel dtb(device Tree Binary) file, Android Things ramdisk image, and linux kernel boot arguments. The code in boot.img will mount the related system.img based on the meta data stored in misc partition. Boot a partition (Slot a s boot partition) for PICO-i.MX6UL-emmc boot_b(slot b s boot partition) for PICOi.MX6UL-emmc oem.img The oem image. oem_a partition (Slot a s system oem_b partition (Slot b s system 7.2. Prebuilt Android Things images The prebuilt Android Things images can be downloaded at: https://developer.android.com/things/preview/download.html Details on how to use console can be found at: https://developer.android.com/things/console/index.html 7.3. The mfgtools The mfgtools can be downloaded at: userdata.img The Android Things user data image userdata partition for PICO-i.MX6ULemmc system.img The Android Things system image which includes all Android Things related binaries, libraries, and system configuration files. system_a partition (Slot a s system system_b partition (Slot b s system gapps.img The Google application image. gapps_a partition (Slot a s system gapps_b partition (Slot b s system http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and- tools/iot-development-platforms-based-on-i.mx-6ul-processor-and-android-things-os:iot-dev- PLATFORMS-i.MX6UL?tab=Design_Tools_Tab 8. Testing and debugging tools Unit tests run locally on the developer s host computer and integration tests interact with the target device via ADB. Pico-imx6 board is Android Things compatible and provides full support for ADB and FASTBOOT over USB for debugging. ADB and FASTBOOT are the tools in Android SDK. Please refer to the link http://developer.android.com/sdk/index.html#other to download the latest version of Android SDK. 6 NXP Semiconductors

Flash Android Things images 9. Flash Android Things images By default, a valid bootloader binary has been flashed into the PICO-i.MX6UL board. It will make the board into FASTBOOT mode if Android Things Images are not flashed yet. Please refer to Instructions to switch to FASTBOOT mode to check whether your board is into FASTBOOT mode. 9.1. Flash Android Things bootloader binary with MFG tools 1. Unzip the mfgtools.tar.gz file to a selected location. The directory is named MFGTool-Dir in this example. 2. Make your board into download. 3. Power on the board. Use USB cable on the Pico OTG port to connect your WINDOWS/LINUX PC with Pico. 4. On WINDOWS, double click the mfgtool2-brillo-mx6ul-pico-emmc-firmware.vbs file to flash only the uboot.imx of Android Things, or double click the mfgtool2-brillo-mx6ul-pico-emmcfirmware.vbs file to flash all Android Things images. Then click Start. Figure 6. Flash Andrioid images Figure 7 shows what the tool will become once the download is complete. NXP Semiconductors 7

Boot Android Things Figure 7. Download completed 5. Program images in Linux OS: In Linux, run the command below to flash the uboot.imx image of Android Things. sudo./linux-runvbs.sh mfgtool2-brillo-mx6ul-pico-emmc-firmware.vbs In Linux, run the command below to flash all the images of Android Things. sudo./linux-runvbs.sh mfgtool2-brillo-mx6ul-pico-emmc.vbs NOTE If blocked, please plug out 55 the USB OTG cable, then plug in. 6. Power off. Set the board in the Boot mode. 9.2. Provision Android Things images with FASTBOOT mode Follow instructions on how to provision the Android Things images from Android Things developer website: https://developer.android.com/things/hardware/imx6ul.html. 10. Boot Android Things After flashing the images, you can boot the board directly with the power supply connected. Please make sure the board is in Boot Mode. 10.1. Change boot arguments By default, the u-boot will take the boot arguments stored in Android Things boot.img. The below is an example in case you need to change the default boot arguments used by u-boot. U-Boot > setenv bootargs console=ttymxc4,115200 init=/init androidboot.console=ttymxc4 androidboot.hardware=imx6ul vt.global_cursor_default=0 rootwait ro U-Boot > saveenv U-Boot > boot 8 NXP Semiconductors

Instructions to switch to FASTBOOT mode 11. Instructions to switch to FASTBOOT mode FASTBOOT mode is a state in which the board will respond the commands from host PC FASTBOOT commands to flash Android Things images or query board information. The board should connect with your host PC through USB type-a to USB type-c cable. You can interrupt u-boot autobooting by pressing any key. Enter the fastboot command. Figure 8. fastboot commmand 11.1. Check whether the device is in FASTBOOT mode You can check whether your board is in the FASTBOOT mode through fastboot commands on your PC. Figure 9. Checking board mode 11.2. Set the device into FASTBOOT mode If your device isn't in the FASTBOOT mode, you can set the device into FASTBOOT mode with either way below: 1. Via adb command line Once you confirm that you have accessed the device through adb on your PC, run the adb reboot bootloader command, as shown in Figure 10: NXP Semiconductors 9

Useful links 2. Via serial console Figure 10. Set board into FASTBOOT mode via adb command line Once the board completed booting-up, type the following commands in your serial console window: $su $reboot bootloader Once the device is in FASTBOOT mode, your serial console will look similar to Figure 11. Figure 11. Set board into FASTBOOT mode via serial console To get the device out of FASTBOOT mode, run the fastboot reboot command from your PC. 12. Useful links http://developer.android.com/tools/help/adb.html 10 NXP Semiconductors

How to Reach Us: Home Page: nxp.com Web Support: nxp.com/support Information in this document is provided solely to enable system and software implementers to use NXP products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits based on the information in this document. NXP reserves the right to make changes without further notice to any products herein. NXP makes no warranty, representation, or guarantee regarding the suitability of its products for any particular purpose, nor does NXP assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Typical parameters that may be provided in NXP data sheets and/or specifications can and do vary in different applications, and actual performance may vary over time. All operating parameters, including typicals, must be validated for each customer application by customer s technical experts. NXP does not convey any license under its patent rights nor the rights of others. NXP sells products pursuant to standard terms and conditions of sale, which can be found at the following address: nxp.com/salestermsandconditions. NXP, the NXP logo, NXP SECURE CONNECTIONS FOR A SMARTER WORLD, Freescale, the Freescale logo are the trademarks of NXP B.V. All other product or service names are the property of their respective owners. Arm, the Arm logo, and Cortex are registered trademarks of Arm Limited (or its subsidiaries) in the EU and/or elsewhere.. All rights reserved. 2017 NXP B.V. Document Number: PICOIMX6ULQSUG Rev. 0 12/2017