A New Powerful Arduino Variant: Maixduino on Sipeed MAIX Boards

Arduino, the very popular and easy to use open-source hardware platform, features a wide range of variants based on different architectures. Though the majority of Arduino boards are based on AVR and Arm, the emerging RISC-V ISA has entered the market. SiFive’s HiFive1 and HiFive Unleashed, for example, are two early Arduino-compatible boards based on RISC-V ISA.

For open source hardware, including RISC-V ISA, please see my new article On Open Source Hardware.

Now we have a new powerful Arduino variant, Maixduino on Sipeed MAIX boards. Announced by a Chinese startup in Q3 2018, Sipeed MAIX boards now have three editions, MAIX M1, MAIX Go and MAIX Bit. Each MAIX board comes with a Kendryte K210 SoC. The Kendryte K210 features two 64-bit RISC-V cores with FPU, a CNN accelerator, 8 MiB SRAM and abundant peripherals. There are two “classical” development approaches for MAIX boards, one is using C language with Kendryte SDK and toolchain, another one is using Python language with MicroPython. The newly-added Maixduino development approach will be much more easier for developers who are already familiar with Arduino.

Installation

Installing Maixduino on Windows is very easy. First, install Arduino IDE, and .net core preview 3 which is needed by the K210 flash tool.

On Arduino IDE’s File -> Preference dianoge, add http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json in the Addition Boards Manager URLs.

Then on Arduino IDE’s Tools -> Boards -> Boards Manager, find Maixduino(k210) by Sipeed and install it. The installing takes half an hour on my PC.

After finishing installation, the K210 toolchain’s path should be added to Windows’s environment variable PATH. The path is like C:\Users(username)\AppData\Local\Arduino15\packages\Maixduino\tools\riscv64-unknown-elf-gcc\8.2.0\bin.

For MAIX boards development, the Arduino IDE should be configurated as bellow.

Unlike other Arduino boards, the boot button on the MAIX Bit board need to be pressured while flashing the sketch.

Demonstration

To demonstrate the Maixduino, I wrote a simple sketch to ligh up the builtin RGB LEDs.