What Is A Maixduino? A Low Cost Board for Edge-Ai Aplications

The Maixduino is a low-cost board used in Edge Ai applications, specifically in machine vision and “hearing”. It has an Ai accelerator processor with the RISC-V architecture that runs optimized Convolutional Neural Networks and an ESP32, all in the form factor of an Arduino. The board comes with a 2.4-inch TFT display and an OV2640 camera.

There is a lot more to be said about this little board. I’m just scratching the surface.

More About The Maixduino

The reason for the Maixduino’s being so cheap lies in its open source architecture. It uses a royalty-free RISC-V based processor that is an open standard set architecture (ISA) originally created by the University of California-Barkley. So, you don’t need a licence to build one. With this in mind, the result was increased computer speed, reduced cost and power consumption. At the center of all this is the Kendryte K210 chip. The Chinese company Sipeed applied the knowledge and built the module called Sipeed M1 that includes the K210 chip.

The main details of the development board:

Besides the main chip, the Maixduino also integrates an ESP32 for GPIO-based operations and information processing. Thanks to the availability of an ESP32, we have the possibility of wireless communication and a sensor/actuator interface to be used in our projects. The on-board interfaces and devices are interesting. When we buy the Maixduino, it typically comes with a 2MP camera and an LCD screen. We have an inboard microphone and an output for a small speaker (3 watt). There is also a place for the MicroSD card. As for the computer interface, we have to use the Type C USB cable and we have to buy it (it does not come with a kit). The rest of the specs can be seen next:

  • CPU: RISC-V Dual Core 64bit, with FPU;
  • KPU: CNN Accelerator 400MHz – 600Mhz  Processor
  • QVGA@60FPS/VGA@30FPS image identification
  • Onboard ESP32 module support 2.4G 802.11.b/g/n and Bluetooth 4.2
  • Arduino Uno form factor, Arduino compatible interface
  • Onboard omnidirectional I2S digital output MEMS Microphone
  • 24P 0.5mm FPC connector for DVP Camera
  • 8bit MCU LCD 24P 0.5mm FPC connector
  • Support self-elastic micro SD card holder
  • Reset and boot button
  • 3W DAC+PA Audio output
  • USB Type-C cable interface

M1 Chip of the Maixduino

Inside the Maixduino M1 chip, we have an important chip (KPU-Knowledge Processor Unit) that allows us to run small optimized Convolutional Neural Networks at the edge of the network for computer vision operations. On the other hand, the APU processes the audio signal coming from the MEMS microphone for “hearing” aplications. The memory is split into two parts for a total of 8 MiB:

  • 6MiB of General-purpose SRAM memory
  • 2MiB of AI-purpose SRAM memory 

The KPU also suports Neural Network operations like:

  • Convolution
  • Batch normalization
  • Activation
  • Pooling operations

Maixduino suported IDE´s

From the official documentation, we can see that the Maixduino support various integrated developer environments (IDEs) like Maixpy, Arduino, OpenMV, and PlataformIO. In practice, there isn’t a lot of available information in English. So, from my research, I found out that it is better to start with the Arduino IDE, which is a very well-known platform, and then focus on the Maixpy IDE, which uses Micropython programming. In the case of the Maixpy IDE, the board has to be flashed with the Micropython firmware.

On the other hand, the Maixduino supports Deep Learning Frameworks like Tiny-Yolo (You only look Once), MobileNet, and TensorFlow Lite. From the available research and projects, I found out that most researchers and makers focus on the TinyYolo and MobileNet frameworks.

References