i.MX 8M Plus EVK

Introduction

The NXP I.MX 8M Plus is a popular SoC found in many single board computers, development kits, and finished products. When prototyping, many users turn to the official NXP Evaluation Kit for the i.MX 8M Plus, known simply as the i.MX 8M Plus EVK. The board contains many of the ports, connections, and external components needed to verify hardware and software functionality. The board can also be used with Edge Impulse, to run machine learning workloads on the edge.

The board contains:

i.MX 8M Plus Quad applications processor

  • 4x Arm® Cortex-A53 up to 1.8 GHz

  • 1x Arm® Cortex-M7 up to 800 MHz

  • Cadence® Tensilica® HiFi4 DSP up to 800 MHz

  • Neural Processing Unit

Special Note: The NPU is not currently used by Edge Impulse by default, but CPU-inferencing alone is adequate in most situations. The NPU can be leveraged however, if you export the Tensorflow from your Block Output after your model has been trained, by following these instructions: Edge Impulse Studio -> Dashboard -> Block outputs. Once download, you can build an application, or use Python, to run the model accelerated via the i.MX8's NPU.

Memory and Storage

  • 6 GB LPDDR4

  • 32 GB eMMC 5.1

Accessories included in the Evaluation Kit

  • i.MX 8M Plus CPU module​

  • Base board ​

  • USB 3.0 to Type C cable.​

  • USB A to micro B cable​

  • USB Type C power supply

In addition to the i.MX 8M Plus EVK we recommend that you also add a camera and / or a microphone. Most popular USB webcams work fine on the development board out of the box.

Setting up your i.MX 8M Plus EVK

A few steps need to be performed to get your board ready for use.

Prerequisites

You will also need the following equipment to complete your first boot.

  • Monitor

  • Mouse and keyboard

  • Ethernet cable or WiFi

Operating System Installation

NXP provides a ready-made operating system based on Yocto Linux, that can be downloaded from the NXP website. However, we'll need a Debian or Ubuntu-based image for Edge Impulse purposes, so you'll have to run an OS build and come away with a file that can be flashed to an SD Card and then booted up. The instructions for building the Ubuntu-derived OS for the board are located here: https://github.com/nxp-imx/meta-nxp-desktop

Follow the instructions, and once you have an image built, flash it to an SD Card, insert into the i.MX 8M Plus EVK, and power on the board.

Installing dependencies

Once booted up, open up a Terminal on the device, and run the following commands:

sudo su
wget https://nodejs.org/dist/latest-v20.x/node-v20.12.1-linux-arm64.tar.gz
tar -xvf node-v20.12.1-linux-arm64.tar.gz
sudo cp -r node-v20.12.1-linux-arm64/{bin,include,lib,share} /usr/
node --version
sudo apt install -y gcc g++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set user root && sudo npm install edge-impulse-linux -g --unsafe-perm
edge-impulse-linux

Connecting to Edge Impulse

You may need to reboot the board once the dependencies have finished installing. Once rebooted, run:

edge-impulse-linux

This will start a wizard which will ask you to log in, and choose an Edge Impulse project. If you want to switch projects run the command with --clean.

Verifying that your device is connected

That's all! Your i.MX 8M Plus EVK is now connected to Edge Impulse. To verify this, go to your Edge Impulse project, and click Devices. The device will be listed here.

Next steps: building a machine learning model

With everything set up you can now build your first machine learning model with these tutorials:

Looking to connect different sensors? Our Linux SDK lets you easily send data from any sensor and any programming language (with examples in Node.js, Python, Go and C++) into Edge Impulse.

Deploying back to device

To run your impulse locally on the i.MX 8M Plus EVK, open up a terminal and run:

edge-impulse-linux-runner

This will automatically compile your model, download the model to your i.MX 8M Plus EVK, and then start classifying. Our Linux SDK has examples on how to integrate the model with your favourite programming language.

Image model?

If you have an image model then you can get a peek of what your i.MX 8M Plus EVK sees by being on the same network as your device, and finding the 'Want to see a feed of the camera and live classification in your browser' message in the console. Open the URL in a browser and both the camera feed and the classification are shown:

Conclusion

The i.MX 8M Plus EVK is a fully-featured development kit, making it a great option for machine learning on the edge. With it's Ubuntu-based OS flashed, it is capable of both collecting data, as well as running local inference with Edge Impulse.

If you have any questions, be sure to reach out to us on our Forums!

Last updated