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?: MicroChip SmartFusion/SmartFusion2/PolarFire SoC evaluation boards.
What were the biggest problems encountered?: Using the SD Card sample projects requires either changing the example project setup, or soldering (weld) Resister 136 on the board. Would have been nice if this was just a jumper or dip switch on the board.
Like most evaluation boards the NXP i.MX RT1170 High End Processor Evaluation kit comes in fairly plain packing with next to no documentation and or setup instructions in the box. Luckily most of this is available on the NXP website. Once you have created an NXP login you can download the MCUXpresso SDK and board BSP, which comes with examples for every peripheral bus and device available on the evaluation board.
I started with version 11.3.0. and towards the end of the road test period I upgraded to the 11.4.0 version. The biggest functional change that I noticed in the two versions was addition of Crank Software graphical examples. Like most modern development environments NXP has used an Eclipse framework with a lot of plugins to create full featured, fairly intuitive interface to create projects, navigate and edit source code, build, program flash, and to debug. This of course comes with the trade off having fairly large downloads for the SDK and the BSP archive for the board, though there are definitely larger environments being created by other embedded processor vendors. Along with MCUXpresso NXP has provide an app called GUI Guider as a quick way to generate graphical and textual displays, when I first received the kit the Crank Software integration with the 1170 EVK hadn't been completed, but toward the end of the evaluation period this became available and I was able to try it out.
Both the iMX RT 1170 board and the RK055HDMIPI4M 5.5" LCD come with 4 plastic stand offs preinstalled on each board. The only thing that is missing from the setup guides (as most don't mention the LCD panel) is a description of how the LCD cable should be used to connect the two boards. For my first attempt I had assumed the two boards should be stacked with the processor board on the bottom, with this configuration I connected the LCD to RT1170 board, this resulted in nothing happening on the LCD panel when running one of many graphical examples. I eventually found a NXP demo video, where one of their engineers demonstrated the EVK and LCD with the LCD facing "down" on the "bottom" side of the EVK board. What I realized from this is the engineers may have intended to set the boards side by side, with the LCD connectors facing each other, and to connect the cable between the two boards. The flat LCD ribbon cable is long enough that you can put the LCD in a couple of different configurations, my original setup requires a twist in the cable, and LCD on bottom setup from the video, or just leave them sitting side by side on the table. A CrankSoftware image shows the total kit being used with a metal framed stand that tilts the whole kit up at 45%, which looked like it would be great for developing graphical touch applications.
The other component that came in the kit was a small camera. This snaps into a connector on the EVK, though it is easy to install, it would have been nice to have a screw or other fastener to keep this part secure. The image quality of the camera is good, but its usefulness in the kit can be limited by its fixed position.
Once I had everything setup I of course want to see this kit do something, so I loaded up a bunch of NXPs example projects from the BSP into the MCUXpresso workspace. Every project builds out of the box, and several have examples that can be built for the M7 or the M4 core. Loading and debugging was as simple as clicking the Debug link in the Quickstart Panel view in the IDE. If it asks how to connect for debug choose the "MCUXpresso IDE LinkServer (CMSIS-DAP) probes"
The board has everything built in to get a serial debug port out and to give control via JTAG, and if you aren't familiar with the Eclipse framework it has terminal plugin that can be used to interact with the serial port.
From project creation to dropping in widgets, text boxes, virtual keyboards (keys are a little small on this display), GUI Guider makes it a breeze to get up and running with a graphical hello world application. The app has the same ability to program and run your project through the CMSIS-DAP link or you can run it on a simulator if you don't have the hardware readily available. Here is my simple hello world GUI project
Two Crank Storyboard demo projects are now included in the rt1170's BSP in the 14.4.0 build of MCUXpresso, these projects look very good, and Crank Software has a free one month trial of their Storyboard product. It just takes a non-gmail (maybe others) email account to register.
Their most impressive looking demo is the Ebike display
Storyboard seems fairly intuitive to make a project and to drag and drop widgets and graphics on to screens and layers. What I found less than intuitive is who you take the export (a header file), and interact with anything in a C project in MCUXpresso. With more time and video demos or webinars from Crank Software someone could produce some nice looking interactive displays.
Two of the interfaces that I was exited to try out were the Audio output and SD Card. My first attempt at running this project failed, as I didn't have the card detect mode mentioned above. Luckily you can change the detection mechanism the code uses, it just comes with multiple warnings that it isn't the most reliable, and removing inserting cards may not be detected. I booted the board with the card inserted, so it was able to detect the card every time. With SD card working I was able to load up some MP3 songs on to an SD card and play stereo audio through a pair of Logitech computer speakers. This sounded good, but I'm sure the audiophile purists would find something to complain about. While I had the speakers connected I also tried out the Mic and voice detection demo. With this I wasn't able to figure out how to record and play back anything, but the voice detection demo was able to hear me say "Hey NXP", but I wasn't able to give it one of the preprogrammed commands.
The camera was an added bonus for me, I didn't actually plan on using it, but it and the NXP demo projects didn't disappoint. Here are some shots of it displaying video in a poorly lit room.
My intent for this road test was two fold, first was get my hands on a fast MCU and see how it compares to the higher end application cores in ARM and PowerPC embedded space, it doesn't disappoint. The second was to get my hands on a device that implements a vector graphics engine, to see how the images generated look on a small but capable display With the intent of seeing if the i.MX RT1176 could be used for applications like low power automotive displays, like a low end radio head or in avionics for low cost backup, or in some aircraft, primary instrument and sensor displays. Although I didn't get any of these applications coded up, from my experience of running through the plethora of examples that NXP has packed into the BSP for this board, I can say this is a very capable little MCU(s) with tons of I/O interfaces for communicating with just about any thing you might need.
Though the EVK is a great evaluation board for the i.MX RT1176 I can see where it wouldn't become a main tool in the makers tool box, as the large board may not fit into most projects, and most of the connectivity comes off the edges of the board, but it will definitely make for a good prototyping platform for something that you want to develop into a product.
Thank you for the detailed review Branden. It looks like you really put the board through its paces. I especially like LCD based exapmles. That has got to be the 'prettiest' Hello World I've seen in a while.