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:
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.
6 GB LPDDR4
32 GB eMMC 5.1
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.
A few steps need to be performed to get your board ready for use.
You will also need the following equipment to complete your first boot.
Monitor
Mouse and keyboard
Ethernet cable or WiFi
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.
Once booted up, open up a Terminal on the device, and run the following commands:
You may need to reboot the board once the dependencies have finished installing. Once rebooted, run:
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
.
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.
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.
To run your impulse locally on the i.MX 8M Plus EVK, open up a terminal and run:
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.
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:
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!