Doing Machine Learning From the Arduino Development Environment?

The Maixduino, a New MAix-Based Board From Sipeed

Alasdair Allan
4 min readApr 15, 2019

Towards the tail end of last year, Sipeed released their 64-bit RISC-V MAix module, crowdfunding a range of boards on Indiegogo specifically designed to do machine learning inferencing at the edge. No cloud needed.

Unlike a lot of crowdfunded boards and modules that disappear almost as soon as they’ve arrived, since the release back in November then there has been a lot of work done to document and support the MAix module, including both Arduino support and a port of MicroPython. We’ve also seen the MAix picked up by Seeed Studio who are putting together an MAix-based HAT for the Raspberry Pi.

So I was rather intrigued to see a pre-announcement of yet more MAix-based hardware from Sipeed. Say “hello” to the Maixduino.

A pre-production prototype of the Maixduino missing its ESP-WROOM-32 module. (📷: Sipeed)

The Maixduino is a MAix-based board with a “classic” Arduino form factor that is pin-compatible to the Arduino. However, that’s where the similarities end, because this isn’t your average Arduino-compatible. The board is built around two processor modules, Sipeed’s own RISC-V MAix module, and an Espressif ESP-WROOM-32.

The Sipeed MAix module is based on the Kendryte K210 processor, which has two 64-bit RISC-V CPU cores, each with a built-in independent FPU, and 8Mb of SRAM.

The Kendryte K210 processor. (📷: Sipeed)

The K210 also has an onboard neural network processor (KPU) for supporting machine vision applications at up to 60fps for QVGA, and 30fps for VGA. Alongside this is an audio processor (APU) with support for up to eight microphones at sampling rates up to 192KHz, with Fast Fourier Transform (FFT) hardware acceleration.

The Sipeed MAix module. (📷: Seeed Studio)

The MAix module is a System-on-Module (SoM) that breaks out all of the pins from the K210 processor, but also includes 16MB Flash and Wi-Fi support via an on-module Espressif ESP8285

The MAix module pin out. (📷: Sipeed)

The ESP32 is fully supported in the Arduino development environment, and we’ve seen plenty of Arduino-compatible boards built around an ESP32 in both the classic and newer MKR form factors. So with the MAix module already having an ESP8285 on module to offer Wi-Fi support for the new board you might be asking why the Maixduino also has an ESP32 onboard?

Because it’s presumably not being used to provide wireless support.

Flipping the Maixduino over shows a basic wiring diagram of how the board’s two processor modules talk to one another—it’s an intriguing addition and with multi-processor boards starting to become more common one I’d like to recommend anyone putting one together replicates—and from the pin out The ESP32 pins are broken out to add ADC support that the K210 lacks which suggests that it’s also available for other tasks. It’s there as a co-processor. Which does make me wonder what else you’re going to be able to do with it.

The rear of the pre-production prototype Maixduino. (📷: Sipeed)

The board is powered through a USB-C socket rather than the traditional micro USB. It looks like the move to the newer USB-C standard is well underway, as about half the boards crossing my desk now have USB-C jacks.

For the silkscreen, there also seems to be provision for a barrel jack capable of taking 6 to 24V DC as input, although it’s unclear whether this is going to be populated on the final board.

The board has a single channel speaker PA onboard as well, allowing you to connect a 1 to 3W speaker, along with a single I2S microphone providing keyword recognition support. There is also a micro SD card slot, and both an LCD display and camera connectors.

Renders of the finished Maxduino board. (📷: Sipeed)

You can develop for the board either in MicroPython, or in the Arduino development environment. The Arduino port features full support for the neural network API, and an included object detection demo inferencing example using MobileNet v1. Support for the OpenMV development environment is also coming soon.

Full details around the Maixduino haven’t been officially announced yet, but it will be released sometime this week. While there isn’t a firm indication of a price point with the MAix module itself retailing in small numbers for around $5, I’m expecting the Maixduino to cost somewhere between $20 and $30.

I guess we’ll see, and I’ll report back when I get my hands on the board.

Update: Looks like Sipeed is rapidly iterating the design of the board, first images with the ESP32 module attached, and they’ve switched out the serial chip so that you can have independent UART connections to the K210 and ESP32 simultaneously.

--

--