Myir’s MYS-8MMX is a single board computer built around NXP’s i.MX 8M Mini applications processor. This processor combines four ARM Cortex-A53 cores running at 1800 MHz with one ARM Cortex-M4 core running at 400 MHz. The hybrid design of the processor makes for a fairly powerful single board computer with the real-time I/O capabilities of a microcontroller. Also available is an industrial version of the board with slower clock speeds, and an optional aluminum enclosure. 

The MYS-8MMX (manufacturer website page) is a very complete system when it comes to peripherals. It has gigabit ethernet and a dual-band WiFi and Bluetooth module. For video it has HDMI out, plus a MIPI D-PHY connector for a display and a MIPI CSI connector for a camera. For storage, there is 8GB of eMMC on board plus a micro-SD slot and an M.2 connector for an SSD. It has 2 USB A ports and a USB C port with OTG support. The board has 2GB of DDR4 ram. The external power required is 5V at 2A.

There is a GPIO header on the board that breaks out a number of analog and digital I/O pins. Note that many of the integrated peripherals, such as UART, I2C, and PWM are available to all of the cores. For real-time performance you would want to assign some of these peripherals to the M4 core. This allows the A53 cores to go about running a user interface, for example. The cores have a message passing system that is supported in Linux. The M4 core can be started, stopped, and reprogrammed from the A53 cores. The GPIO header uses 2.0mm pin spacing, which many makers may find inconvenient.

To test the system I set up the board with an HDMI monitor, keyboard and mouse. The system booted from the eMMC into a graphical demonstration of potential uses for the board. Among the demos was a media player, a simulated ECG monitor, and simulated controls for a clothes washer. The developer’s name, Myir, stands for “Make Your Idea Real.” It’s clear they have commercial applications in mind.

Myir does not make their software and documentation publicly available; I emailed support and they gave me the link. Among the downloads for this board are documentation, bootable OS images, tools to create and upload those images, and a customized toolchain for developing software. Myir has developed support for their board in Yocto, which can create a custom embedded Linux distribution that suits your application. Source code is available for patches and software they have written. Some tools and documentation come from NXP, which is expected. Myir documentation is available in Chinese and fairly good English. Skim the table of contents of each of their documentation files before delving into any one of them. That way you will know when essential information is in a different file.

I decided to try to poke the GPIO ports to prove I had the board working. First I needed to upload a new OS image into the eMMC, to replace the graphical demonstration. This is done over a USB-C cable using a tool from NXP and setting switches on the board to choose boot targets. I followed Myir’s instructions but edited their script to upload a different OS image than the demonstration’s image. Once I did, I reset the switches on the board and booted into Linux as root with no password. Reading further in the documentation, I found a quick guide to configuring GPIO pins and toggling their state from user space. Indeed, I could set a pin to output and set it high or low from the command line.

To do much more with this system I would have to install the customized toolchain and learn a bit about programming for the i.MX 8M Mini processor. Because of the learning curve, I wouldn’t recommend this system for casual makers. There is far more community support and simpler toolchains for other SBCs. If you are keen to enter the world of industrial-grade embedded linux systems, however, this is a fine board to start with and modestly priced. 

Standout features: 

  • Has all the ports you could want, plus WiFi and Bluetooth
  • Features the latest applications processor from NXP
  • Relatively inexpensive for what you get