1

member

Easy Basics: Project 083d Sipeed Maixduino Kit for RISC-V AI and IoT

of Acoptex.com in ESP8266 ESP-32

Basics: Project 083d

Project name: Sipeed Maixduino Kit for RISC-V AI and IoT

Tags: Arduino, Sipeed Maixduino Kit for RISC-V AI and IoT, seeedstudio, Artificial intelligence, AI, IOT, Internet of things, learning Maix with Arduino IDE, Arduino IDE, How to install 0.3.10 update for Maixduino, k210, kendryte.ld: no such file

Attachments: none

In this project, you need these parts :

1. Sipeed Maixduino Kit for RISC-V AI + IoT 1 pc

2. Arduino IDE (you can download it here)

3. USB Type C cable 1 pc

4. Micro SD card and SD card adapter (4GB size, format FAT) 1 pc

5. Resistor 1 pc (220 Ohm)
6. LED 1 pc (any color)

7.Breadboard half size or small size 1 pc

General

We will learn in this project about Sipeed Maixduino board and how to upload the sketch to it with Arduino IDE.

Seeed Studio has now released the board with Kendryte K210 RISC-V AI processor, based on Arduino UNO form factor and equipped with an ESP32 module for WiFi and Bluetooth connectivity. We will review the RISC-V 64 development board for AI + IoT applications - Sipeed Maixduino in this project. The estimated availability date is 17th of June 2019 but you can do pre order on seeedstudio.com website. 

The price of this developement board is not very high, just 23.90 USD and it's very good for AI + IoT applications. The package includes Maixduino development board, OV2640 camera module and 2.4 inch LCD TFT display. By default, the LCD (24pin interface) of the st7789 driver chip is used with a resolution of 320x240.

Let's get some idea about AI first.

Artificial intelligence (AI)

As described in Wikipedia "In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans. Colloquially, the term "artificial intelligence" is used to describe machines/computers that mimic "cognitive" functions that humans associate with other human minds, such as "learning" and "problem solving"".

So basically AI is a computer system or other machine able to perform tasks that ordinarily require human intelligence - like planning, learning, reasoning, problem solving, knowledge representation, perception, motion, manipulation and even social intelligence and creativity. AI is incorporated into a variety of different types of technology. Seeedstudio mainly focus on the types that more closely related to hardwares.

Understanding the Sipeed Maixduino Kit for RISC-V AI + IoT

What is the K210?

The Kendryte K210 is a system-on-chip (SoC) that integrates machine vision and machine hearing. Using TSMC's ultra-low-power 28nm advanced process with dual-core 64-bit processors for better power, performance, stability and reliability. The program strives for zero threshold development and can be deployed in the user's products in the shortest time, giving the product artificial intelligence.

The Kendryte K210 is located in the SoC of the AI ​​and IoT markets and is a very convenient MCU.

In Chinese, Kendryte means surveying intelligence, while surveying intelligence is taken from surveying and searching. The main application field of this chip is in the field of Internet of Things, and it is developed in the field of Internet of Things. Therefore, this chip mainly provides artificial intelligence solutions, which are explored in the field.

  • Machine vision
  • Machine hearing
  • Better low power vision processing speed and accuracy
  • With convolutional artificial neural network hardware accelerator KPU, high performance convolution artificial neural network operation
  • TSMC 28nm advanced process, temperature range -40 ° C to 125 ° C, stable and reliable
  • Supports firmware encryption, it is difficult to crack using common methods
  • Unique programmable IO array for more flexible product design
  • Low voltage, lower power consumption compared to systems with the same processing power
  • 3.3V/1.8V dual voltage support, no level shifting, cost saving

AI Solution

1.1. Machine Vision

With machine vision capabilities, the Kendryte K210 is a zero-threshold machine vision embedded solution. It can perform convolutional neural network calculations in low power situations. The chip can achieve the following machine vision capabilities:

  • General target detection based on Convolutional Neural Network
  • Image Classification based on Convolutional Neural Network
  • Face detection and face recognition
  • Get the size and coordinates of the detected target in real time
  • Get the type of detected target in real time

1.2. Machine hearing

The Kendryte K210 has machine hearing capabilities. The chip comes with a high-performance microphone array audio processor for real-time source orientation and beamforming. The chip can achieve the following machine hearing capabilities:

  • Sound source orientation
  • Sound field imaging
  • Beamforming
  • Voice wake up
  • Speech Recognition

1.3. Visual/Hearing Hybrid Solution

The Kendryte K210 combines machine vision and machine hearing to provide even more powerful features. On the one hand, in the application, both the sound source localization and the sound field imaging can be used to assist the machine vision to track the target, and the general target detection can be used to obtain the target's orientation, and then the machine hearing aids the beamforming of the orientation. On the other hand, the direction of the person can be obtained by the image transmitted from the camera, so that the microphone array is directed to the person by beamforming. At the same time, the direction of a speaker can be determined according to the microphone array, and the camera is rotated to point to the person.

What is Maixduino?

Maixduino makes the Arduino IDE and libraries support the Maix series of development boards (k210 chips), making it easy to use a large number of existing open source Arduino libraries for rapid development and prototyping.

The Maixduino is a RISC-V 64 development board for AI + IoT applications which is based on MAIX Module. Different with other Sipeed MAIX development boards, Maixduino was designed in an Arduino Uno form factor, with ESP32 and MAIX AI modules together on board.

MAIX is Sipeed' s purpose-built product series designed to run AI at the edge. Move AI models from cloud down to devices on the edge of the network where they can run faster, at lower cost, and with greater privacy. MAIX isn't just a hardware solution, it combines custom hardware, open software, and state-of-the-art AI algorithms. Different kinds of dev. boards, kits, peripherals as well as wide compatibility enable rapid and agile prototype development, make AIoT projects much easier. And thanks to MAIX' s performance, small footprint, low power, and low cost, it enables the broad deployment of high-quality Edge AI.

Features:

  • CPU: RISC-V Dual Core 64bit, with FPU; 400MHz neural network 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
  • Just connect the USB Type-C cable to complete the download
  • Machine vision based on convolutional neural network
  • High performance microphone array processor for machine hearing
  • Support MaixPy IDE, Arduino IDE, OpenMV IDE, and PlatformIO IDE
  • Support Tiny-Yolo, Mobilenet and TensorFlow Lite for deep learning

Applications:

  • Smart Home applications like robot cleaners, smart speakers, electronic door locks, household monitoring etc.
  • Medical Industry  applications like Auxiliary diagnosis and treatment, medical image recognition, emergency alarm etc.
  • Smart Industry applications like industrial machinery, intelligent sorting, monitoring of electrical equipment, etc.
  • Education applications like educational robots, intelligent interactive platforms, educational efficiency inspection, various DIY projects etc.
  • Agriculture applications like agricultural monitoring, pest and disease monitoring, automated control, etc.

Specification:

  • Master module -Sipeed MAIX-I AIoT module
  • Power input - USB Type-C, DC-DC step-down circuit: support 6-12V input; provide 5V 1.2A output
  • Micro SD card(TF card) slot - Support Self-elastic card holder
  • Onboard MEMS microphone - MSM261S4030H0 is an omnidirectional, Bottom-ported, I2S digital output MEMS Microphone. It has high performance and reliability.
  • DVP Camera interface - 24P 0.5mm FPC connector
  • LCD connector - 8bit MCU LCD 24P 0.5mm FPC connector
  • Audio output -DAC+PA:TM8211:16 bit dynamic range;Low harmonic distortion; NS4150:3W output power;Up to 90% efficiency;
  • ESP32 module - Support 2.4G 802.11.b/g/n, 802.11 n (2.4 GHz) speeds up to 150 Mbps
  • Bluetooth v4.2 full standard, including traditional Bluetooth (BR/EDR) and Bluetooth Low Energy (BLE)
  • Supply voltage of external power supply 4.8V ~ 5.2V
  • Supply current of external power supply >600mA
  • Temperature rise <30K
  • Range of working temperature -30℃ ~ 85℃
  • MCU: ESP8285 Tensilica L106 32-bit MCU
  • Wireless Standard 802.11 b/g/n
  • Frequency Range 2400Mhz - 2483.5Mhz
  • TX Power(Conduction test) 802.11.b : +15dBm, 802.11.g : +10dBm(54Mbps), 802.11.n : +10dBm (65Mbps)
  • Antenna Connector IPEX 3.0x3.0mm
  • Wi-Fi mode Station/SoftAP/SoftAP+Station

Maixduino can be programmed with MaixPy IDE (MicroPython), Arduino IDE, OpenMV IDE, and PlatformIO IDE, and supports Tiny-Yolo, Mobilenet and TensorFlow Lite deep learning frameworks with QVGA @ 60fps or VGA @ 30fps image identification.

The shape and pins are compatible with Arduino UNO R3 but the voltage level is not compatible, which requires great attention, otherwise the board can be damaged. Maixduino supports 3.3V and 1.8V levels, and the pins are divided into several BANKs, each BANK can be set to a voltage of 1.8V or 3.3V by software, However, these pins are not 5V tolerated. Therefore, when using the peripheral device of Arduino, be careful not to short the 5V to the pin or RST (1.8V) pin.

This development board has the TF card slot. You need to use the Micro SD card with fast speed, such as SD 2 generation protocol, Class10 memory card. It should be formatted FAT format (4GB size).

You can find Maixduino specification here. Kendryte K210 datasheet located here. Kendryte Standalone SDK Programming Guide located here and Kendryte FreeRTOS SDK Programming Guide located here.

Kendryte K210 FreeRTOS SDK v0.7.0 located here.

Kendryte K210 Standalone SDK v0.5.6 located here.

Signals and connections of the Sipeed Maixduino Kit for RISC-V AI + IoT


Maxduino pinout


Espressif ESP32-WROOM-32 pinout.


Sipeed M1 pinout. See detailed description about pins here.

ADC - Analog to Digital Converter or Analog pins.This devepment board has 5.

GND - Ground pin.

RST - Reset pin.

Vin - External power supply pin 6V

I2C - It has dedicated pins available for two-wire I2C communication. One pin is used for data transfer (SDA) and another pin is used for clock synchronization (SCL). 

Pin 0, Pin 1 - hardware serial communication pins.

5V, 3V3 - power supply pins.

ESP32-WROOM-32 - ESP32-WROOM-32 module soldered to the development board. Optionally ESP32-WROOM-32D, ESP32-WROOM-32U or ESP32-SOLO-1 module may be soldered instead of the ESP32-WROOM-32.

Reset button - to reset the development board

BOOT button - to upload the firmware/sketch

USB type C port - USB interface. It functions as the power supply for the board and the communication interface between PC and the ESP module.

Wiring

Pay attention to the installation direction of the camera and screen, otherwise it may not work or damage the device. The camera is facing the back:

The screen is facing the front:


Step by step istruction

The Arduino environment has to be set up to make it compatible with the Sipeed Maixduino Kit for RISC-V AI + IoT.

1. Installing add-on in Arduino IDE (Windows 10 OS)

  1. Download and install the latest Arduino IDE Windows Installer from arduino.cc
  2. Open Arduino IDE. 
  3. Open the Preferences window from the Arduino IDE. Go to File -> Preferences.
  4. Enter http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json into Additional Board Manager URLs field
    try this URL if the download speed is too slow:
    http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_dl_cdn_index.json
    or try this URL if the download speed is too slow:
    http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_dl_cdn_index.json and click OK button. If you already have a URL in there, and want to keep it, you can separate multiple URLs by placing a comma between them. 

  5. Open Boards manager. Go to Tools -> Board -> Boards Manager…
  6. There should be a couple new entries in addition to the standard Arduino boards. Look for Maixduino or scroll down to the Maixduino entry (usually at the bottom). Select the Maixduino entry. When you click it an install option will appear. Select the latest version and click Install button (we have choosen to install the stable version 0.3.9, version 0.3.10 was available but it was an error during the downloading to our PC through the Arduino Board manager). 
  7. It may take a few minutes to download and install (the archived file is ~54MB). Once the installation has completed, an Arduino-blue INSTALLED will appear next to the entry.
  8. Click on Close button.
  9. Open Boards manager. Go to Tools -> Board -> and you can see that the Sipeed Maixduino board installed in your Arduino IDE.

2. Updating the Maixduino (k210) up to version 0.3.10

  1. Make sure that Arduino IDE is closed.
  2. Download the latest update here.
  3. Go to C:\Users\Your_user_name\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\
  4. Delete the folder with name 0.3.9
  5. Open zip file which you downloaded to your PC/laptop called Maixduino_core_v0.3.10.zip.
  6. Drag and drop the folder 0.3.10 with all files from zip file to your k210 folder.
  7. Congrats! The installation is done.
  8. Open Arduino IDE.
  9. Go to Tools -> Board -> Boards Manager…
  10. Look for Maixduino or scroll down to the Maixduino entry (usually at the bottom).
  11. You will see that Maixduino (k210) has version 0.3.10 now.

3. Uploading the sketch to Sipeed Maixduino board

  1. Do wiring.
  2. Plug the Sipeed Maixduino board to your PC and wait for the drivers to install (or install manually any that might be required). We had the drivers installed automatically. There are two serial ports for this board one is for the K210 (we have COM17) and one for the ESP32 (we have COM18).
  3. If the drivers did not install automatically you will need to install FT2232 drivers for USB serial port manually. You can read how to install them below before summary section. For the  to get the USB serial port, FT2232 drivers need to be installed. In new Maixduino and Maix Bit versions that come with a microphone (using a CH552 chip) the JTAG function is not available.
  4. Open Arduino IDE.
  5. Open Boards manager. Go to Tools -> Board -> and select the board (in our case - Sipeed Maixduino Board)
  6. Check the settings: for the Sipeed Maixduino board the Burn Tool Firmware by default is default, Burn Baudrate - decrease it if the download fails, Programmer - you MUST select k-flash.
  7. Select COM port that the board is attached to. (We had COM17).
  8. In Arduino IDE go to File->Examples->01.Basics and select Blink sketch.
  9. Click on Upload button.
  10. You will upload this sketch to your Sipeed Maixduino board. If everything went as expected, you should see a “Done uploading” message. 
  11. The board will be reset automatically. You will see the LED flashing on your breadboard. Please note that no LED will be flashing on Sipeed Maixduino board.


4. How to install the FT2232 drivers

  1. Go to FTDI page.
  2. Download and extract the archive and connect Sipeed Maixduino to the USB port with USB type C cable. Drivers for Windows are also available as setup executable, you can download the file here.
  3. After connecting the Sipeed Maixduino to the USB port, a new device is detected and installation wizard appears. Select the second option, i.e. the installation from own location
  4. In the next dialog select the folder where you extracted the downloaded driver

Summary

We have learnt about the RISC-V 64 development board for AI + IoT applications - Sipeed Maixduino, we have also learnt how to install the board in Arduino UNO and how to upload the sketch to it.

The specifications and features of RISC-V 64 development board for AI + IoT applications are very impressive. It's a good development board to buy.

We are going to publish a new project with this development board soon on how to upload the firmware to it.

More projects with Sipeed Maixduino board

Project 083f Sipeed Maixduino board - Using MycroPython

Project 083e Sipeed Maixduino board - Uploading MaixPy

Project 083x Sipeed Maixduino board - Uploading script with uPyLoader

Project 083y Sipeed Maixduino board - Using MaixPy REPL interface and Micropython Editor

Project 083w Sipeed Maixduino board - Using PlatformIO IDE

Troubleshooting

If you have done everything correctly but can not upload sketch to the board and you are getting message that you are missing file kendryte.ld - it can be the problem with your Windows Username (you can have username with several words like Alex Bestman) but it should be single word like AlexBestman.

Libraries

  • No libraries required for this project

Sketch

  • None


Other projects of Acoptex.com

« Go back to category
Is this project fake? Report it!   
Recommend to a friend
Published at 16-06-2019
Viewed: 1503 times