RoadTest: NXP i.MX RT1170 High End Processor Evaluation Kit
Author: skruglewicz
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Advent Azure Sphere Dev KIT, Arduino Nano 33 IOT, NXP LPC55S69-EVK included in the Advent Monarch LTE-M Dev Kit.
What were the biggest problems encountered?: 1) ---- During Unboxing, I realized that both the camera sensor module and the TFT LED display were not attached to the EVK. I looked through online documentation for the kit and could not find any indication on the orientation and how to attach these components to the EVK.I created 2 tickets on the online NXP customer support portal at https://support.nxp.com/s/ , And I received my 2 answers in a day. I did end up braking a part on the connector for the TFT display ribbon cable. the details of these 2 cases re mentioned in the review. 2) ---- Connecting the TFT was difficult. I was able to get help from customer support and the forum community. But broke the piece of the connector that secured the ribbon cable to the connector on the EVK. I had to order another connector that had the piece the secure the TFT ribbon. 3) --- I had trouble with an error in the NXP software graphics GuiGuider. I posted a question to the NXP GuiGUider Forum. The Response: was that I needed the Java Runtime Environment (JRE) installed on my machine. I had the development environment JDK but I needed to install the JRE. I installed the JRE and the problem was solved. This prerequisite was in the User Manual which I shold have caught. 4) ----
Detailed Review:
New PUBLISHED 07/03/2021
This review will dive into embedded software development using the i.MX RT1170-EVK PCB. The evaluation kit (EVK) helps you take your design to the next level by reducing complexity and accelerating time to market. NXP’s MCUXpresso software and tools offer comprehensive development solutions designed to optimize, ease and accelerate embedded system development of applications based on Cortex-M core devices from NXP. At the center of the EVK is NXP part# MIMXRT1176DVMAA processor. The EVK PCB allows embedded software developers to experiment with the powerful capabilities of the processor. The i.MX RT1170 MCU Family of processors are setting speed records at 1GHz. This ground-breaking family combines superior computing power and multiple media capabilities with ease of use and real-time functionality. I will be experimenting with some of these capabilities using the MCUXpresso SDK for the i.MX RT1170 Board. The evaluation kit supplied also contains a 5.5" 720 TFT LCD DISPLAY, and a camera module .which I also plan on experimenting with.
I do not have an electronics background, but I am interested in IoT. My background is more on the software side, with a Bachelors of Science Degree in Computer Science from Boston University. I Graduated from BU in 1980 and had been working as a Software Engineer since then until I retired in 2018. I've been presently experimenting with IoT and I've used a few Development kits. I'm not keen on soldering (my dexterity is not as good as it use to be !) So, Development Kits allow me to experiment without soldering.
I have evaluated another NXP product, the LPC55S69 EVK for a review on the AVNET Monarch LTE-M Development Kit -- EU . This kit uses the NXP LPC55S69-EVK as the base MCU PCB with an attached Avnet Monarch Go Arduino Shield. Attached to this Shield, is a Sequans Monarch Go LTE modem. This kit is comprised of hardware components from 3 hardware companies (NXP, Advent, Sequens) and 1 Telecom company (Verizon). The Ultimate goal of this product is to develop, prototype and test embedded software for use with the Sequans Monarch Go LTE Modem.
The Development for NXP boards is done through NXP's free Software development tools. You will need to become a member, to use them, but it's all FREE. I will describe the use of these tools and give you valuable links to them in this review.
So let's get started shall we.....
The .MIMXRT1170-EVK arrived as scheduled on Thursday May 27 2021 late in the day via UPS. I did not get to the Unboxing till a day later on Saturday May 29 2021, about midday. Here are some images and a video of the unboxing. Now its time to dive into the review.
If you watch the unboxing video I mentioned a empty static bag (in the image it's to the left). Well it was not empty the MIMXRT1170-EVK Packing List. has an item that I could not find.
"Item: 901-77346 Description: Full resolution 2592x1944 Pixel Size 1.4um x 1.4um camera module image sensor with Huatian technology"
Well it was in that static bag, but was too small to see at first. The bag was marked clearly with "901-77346".Luckly I did not throw the bag out in the trash!!! LOL
camera module image sensor with Huatian technology. that will plug into the camera module connector on the board.
COVER | PAGE 1 |
---|---|
PAGE 2 | Back Cover |
Follow the link http://www.nxp.com/MIMXRT1170-EVK/startnow to this landing page
I'll describe the navigation links on the Left side that when Selected display the Topic content in the right Frame.
I have followed similar getting started pages when I evaluated another NXP product, the LPC55S69 EVK for a review on the AVNET Monarch LTE-M Development Kit -- EU .. It was very helpful and guided me through the steps I needed to run my experiments with that EVK. experimentation with the
I have gone thru these steps and have my software development environment ready to start some of my experiments on this review. But first I'd like to describe my wonderful experience with the NXP support portal. They were able to answer my questions and led me on the right path to success with the EVK.
I thought to Include these picture suppled from the FACT SHEET for discussion in this review.
The EVK contains an MCU from the family of processors known as the NXP i.MX RT1170 family. The following list was taken from the fact sheet and all the features of the MCU.
Ok, some of the highlights of the i.MX RT1170 family for me, include:
The multicore capabilities with the M4 and the M7 Cortex processors.
The integrated multimedia for GUI & HMI. The graphics accelerator and display interfaces available.
The multiple memory options available.
the Security options available.
Here are the highlights:
According to the "Quick Start Guide" on Page 1, the MCU on the EVK is part number is MIMXRT1176.
The following configuration grid from the fact sheet, shows this MCU on the EVK at the top of the pack with only a NO "Tamper Protection" feature.
The following Chip Architecture Diagram, is included in a lot of Presentations and Literature on the MCU family. The dotted lines represent features not supported on all MCU's in the i.MXRT1170 family.
Notices that " Tamper Detection" in the "Security" section is not on all MCU's in the family. In fact it is only available on the industrial only qualifying chip, the i.MXRT1173. Not sure what "Target Detection" is, but it might have something to do with qualifying the chip as Industrial Only. Some of the other chips in the family do not support a "Secondary CPU" and/or "Multimedia". The chip included on the EVK however, does include all these features.
Notice there is an abundance of Connectivity features and an abundance of Times, Multimedia, System Control and Security features.
This list all the neat features available for you to experiment with on the EVK. There are plenty of interesting interfaces and features packed into this kit.
If you have gone through the Getting started exercise on the NXP getting started Page, then you will have experienced and should have your development environment set up .The following section will describe the NXP Toolchain available to developers for FREE.
If you have not gone thru the getting started page and want to install the latest version of the editor, goto MCUXpresso Page
Again the getting started page will have taken thru the installation of the SDK for the i.mxRT1170-EVK, but if you have not already installed it yet or want to update the SDK this section might help.
I did a few experiments to run some of the IMXRX1176 chip and the EVK capabilities through its paces. This section contains my notes on the experiments.
The EVK came with a TFT LCD display. I used this display to conduct experiments with the Graphics capabilities of the iMX RT1176 chip on the EVK
5.5 inch 720*1280 TFT LCD display with touch sensitive overlay, 2-lane or 4-lane MIPI interface Part#: RK055HDMIPI4M
There are several graphics libraries supported by the IMXRX1170-EVK, (refer to GUI solutions for NXP MCU) , but I used the Light and Versatile Graphics Library (LVGL) for my experiments. And the good news is that it is FREE to use with the open source license.
The SDK has a few examples using this library. They are mentioned in this section and are very useful for experimenting with the TFT Board connected to the IMMX1170-EVK. SO lets get into it, shall we.
You will need to attach the Ribbon cable coming from the TFT board to the EVK.
On the Back of the board locate the "MIPI LCD connector"
1. Gently pull out the black piece on the connector, which is used to secure the ribbon cable to the MIPI LCD Connector.
2. Turn over the LCD Board and Insert the cable into the connector blue strip down
3. Snap the the black piece back into the connector to secure the cable end to the connector. It goes under the ribbon cable.
Now Turn both boards over and you ready to experiment.
You can piggy back the TFT display to the back side of the EVK board using spacers . I might try this out with spacers. Stay tune...
OK, I did some experiments with the SDK. Import the examples from the littlevgl_example directory as follows.
Visually I did not see any differences in the widgets displayed on the screen between these 2 examples. I was unable to find any differences in each readme file? I'll have to walk through the code and try to discover the difference.
If anyone reading this review knows the answer , please leave a comment at the end of this review.
Design a Human Machine Interface.
Start by creating a project and follow along with the training video to design a simple HMI.
Then you can run your design through a simulator, send it directly to the target board to display on the connected TFT display and Generate code to place in the SDK example code to build and embed on the target device.
The JRE was missing and I only had the JDK installed. I should have read the GuiGuider User Guide... I am no longer getting the following error:
Error: opening registry key 'Software\Avast\Java Runtime Environment' Error: could not find java.ll Error: Could not find Java SE Runtime Environment.
What I did to resolve this was to
1) uninstall the 2 versions of the JDK as I wanted a fresh install.
2) downloaded a new JRE from Oracle from this page Java SE Runtime Environment 8 - Downloads - Oracle
I download the follow version.
Windows x64 |
80.7 MB |
And installed it. The install only installs the JRE because I don't need the JDK at the moment.
3) I then added path "C:\Program Files\Java\jre1.8.0_291\bin" to the PATH System environment Variable.
4) to test the installation from a command I ran the following java command , and it displayed the current version.
1. Design the GUI APP by GUI Guider.
2. Click Generate Code to generate source code.
3. Click File > Export Code to export the GUI APP source code.
I'm getting a "no connection to chips debug port" at the bottom of MCUXpresso?
I'm using this SDK on an i.MXRT1170-EVK
I'm connected to the Debug port on the i.MXRT1170 -EVK just as other examples.in the SDK example littlevgl_demo
I get the following message on the console? |
---|
MCUXpresso IDE RedlinkMulti Driver v11.3 (Mar 30 2021 16:50:12 - crt_emu_cm_redlink build 18) Found chip XML file in C:/Users/skrug/Documents/MCUXpressoIDE_11.3.1_5262/workspace/evkmimxrt1170_littlevgl_guider_cm7_experiment1/Debug\MIMXRT1176xxxxx.xml Reconnected to existing LinkServer process. Connecting to probe 1 core 0 (using server started externally) reports: 'Ee(42). Could not connect to core.' Retrying... Reconnected to existing LinkServer process. Server OK but no connection to probe 1 core 0 (after 3 attempts) - Ee(42). Could not connect to core. |
Camera module | MIPI camera sensor connector | Showing Camera module orientation on on the EVK |
---|---|---|
This project shows how to use the CSI with MIPI_CSI. In this example, the camera device output pixel format is RGB565, the MIPI_CSI converts it to RGB888 internally and sends to CSI. In other words, the CSI input data bus width is 24-bit. The CSI saves the frame as 32-bit format XRGB8888. PXP is used to convert the XRGB8888 to RGB565 and shown in the LCD panel.
It is an easy way to TEST if you have connected the Canara module to the connector properly.
Here is the program running showing the cover of one of my books, which is hanging over the camera. The book cover has a picture of our state bird, "the chickadee"
Here is an example of the program running. The picture of the book cover the "chickadee" is showing up on the display. But the bird is not identified on the debug terminal?
I would like to touch upon my scoring at the beginning of this review.
Product Performed to Expectations: 8I gave this an 8, because even though the TFT and camera were not connected,the specifications that I discovered before getting accepted for the Roadtest did live up to my expectations. This is a feature rich evk and I was very excited when I was selected and received this kit to review. |
Specifications were sufficient to design with: 7I gave this a 7, because the lack of specs for the Camera and TFT display. The specs on the EVK seem useful but to be honest I haven't used them yet. |
Demo Software was of good quality: 9I gave this a 9, because I can't stress enough how useful the SDK examples are for all NXP EVK's. I'm particularly impressed the building of the SDK online with the capabilities you need. The sdk example are a great tool to understand the capabilities of the EVK. I wish more MCU vendors would follow NXP's lead in supplying an SDK to the embedded development community. |
Product was easy to use: 9The i.MXRT1170-EVK was easy to use with all the training and SDK examples to experiment with. The switch is very handy to have and a first for me on an EVK. Again the MCUXpresso IDE is very easy to navigate and great to work with. |
Support materials were available: 9I gave this a 9, because the NXP online support portal is very responsive to help with problems . In addition, the Community Forum is a wealth of information and I got my answers that I needed to solve my problems that I ran into. |
The price to performance ratio was good: 7I gave this a 7, but didn't know how to rate this category. The price is a little steep for me to purchase , since I am a retired home hobbiest. I did not do any performance benchmarking for this product, since I was concentrating more on evaluating the product for usage in embedded software development. |
Under that folder Check each of these directories:
Overview
========
This project shows how to use the CSI with MIPI_CSI. In this example, the
camera device output pixel format is RGB565, the MIPI_CSI converts it to
RGB888 internally and sends to CSI. In other words, the CSI input data bus
width is 24-bit. The CSI saves the frame as 32-bit format XRGB8888. PXP
is used to convert the XRGB8888 to RGB565 and shown in the LCD panel.
Toolchain supported
===================
- IAR embedded Workbench 8.50.9
- Keil MDK 5.33
- GCC ARM Embedded 9.3.1
- MCUXpresso 11.3.1
Hardware requirements
=====================
- Mini/micro USB cable
- MIMXRT1170-EVK board
- Personal Computer
- RK055AHD091 panel
- OV5640 camera
Board settings
==============
Connect the panel to J48
Connect camera to J2
Connect 5V power to J43, set J38 to 1-2
Prepare the Demo
================
1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.
2. Open a serial terminal with the following settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
3. Build the project.
3. Download the program to the target board.
4. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
Running the demo
================
When the example runs, the screen shows the camera input frame.
Overview
========
TensorFlow Lite model based implementation of object detector based on
TensorFlow Lite example [2] adjusted to run on MCUs.
A 3-channel color image is set as an input to a quantized Mobilenet
convolutional neural network model [1] that classifies the input image into
one of 1000 output classes.
Firstly a static stopwatch image is set as input regardless camera is connected or not.
Secondly runtime image processing from camera in the case camera and display
is connected. Camera data are displayed on LCD.
HOW TO USE THE APPLICATION:
To classify an image, place an image in front of camera so that it fits in the
white rectangle in the middle of the display.
Note semihosting implementation causes slower or discontinuous video experience.
Select UART in 'Project Options' during project import for using external debug console
via UART (virtual COM port).
[1] https://www.tensorflow.org/lite/models
[2] https://github.com/tensorflow/tensorflow/tree/r2.3/tensorflow/lite/examples/label_image
Files:
main.cpp - example main function
image_data.h - image file converted into a C language array using
the xxd tool (distributed with the Vim editor at www.vim.org)
labels.h - names of object classes
mobilenet_v1_0.25_128_quant_int8.tflite - pre-trained TensorFlow Lite model quantized
using TF Lite converter (for more details see the eIQ TensorFlow Lite User's Guide, which
can be downloaded with the MCUXpresso SDK package)
(source: http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_0.25_128.tgz)
stopwatch.bmp - image file of the object to recognize
(source: https://commons.wikimedia.org/wiki/File:Stopwatch2.jpg)
timer.c - timer source code
image/* - image capture and pre-processing code
model/get_top_n.cpp - top results retrieval
model/model_data.h - model data from the .tflite file
converted to a C language array using the xxd tool (distributed
with the Vim editor at www.vim.org)
model/model.cpp - model initialization and inference code
model/model_mobilenet_ops.cpp - model operations registration
model/output_postproc.cpp - model output processing
video/* - camera and display handling
Toolchain supported
===================
- IAR embedded Workbench 8.50.9
- Keil MDK 5.33
- GCC ARM Embedded 9.3.1
- MCUXpresso 11.3.1
Hardware requirements
=====================
- Mini/micro USB cable
- EVK-MIMXRT1170 board
- Personal computer
- RK055AHD091 display (optional)
- OV5640 camera (optional)
Board settings
==============
Connect the display to J48 (optional)
Connect the camera to J2 (optional)
Connect external 5V power to J43, set J38 to 1-2
Prepare the Demo
================
1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.
2. Open a serial terminal with the following settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
3. Download the program to the target board.
4. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
Running the demo
================
The log below shows the output of the demo in the terminal window (compiled with ARM GCC):
Label image object recognition example using a TensorFlow Lite Micro model.
Detection threshold: 23%
Expected category: stopwatch
Model: mobilenet_v1_0.25_128_quant_int8
Static data processing:
----------------------------------------
Inference time: 88 ms
Detected: stopwatch (87%)
----------------------------------------
Camera data processing:
Data for inference are ready
----------------------------------------
Inference time: 88 ms
Detected: No label detected (0%)
----------------------------------------
Data for inference are ready
----------------------------------------
Inference time: 88 ms
Detected: jaguar (92%)
----------------------------------------
Data for inference are ready
----------------------------------------
Inference time: 88 ms
Detected: pineapple (97%)
----------------------------------------
REFERENCES |
|
---|---|
NXP i.MX RT1170-EVK Development Environment Setup
|
|
GUI Guider Resources |
|
NXP Design ResourcesBoard Documents
Chip Documents
Software
|
|
Additional Miscellaneous Resource Material
|
|
NXP Training Webinars
|
Top Comments
What did you like?
and
What did you NOT like?
Don't fret about it. You're not the first person to publish before being finished. There isn't a way to unpublish a document.
Two options I (and others) have done in the past: just mark it…
Nice road test report.
DAB