Maixduino AI Dev Board

Just received my Maixduino AI Dev Board today. Loaded Arduino K210 Library and tried the blink app. Doesn’t blink anything. In fact, most of the examples don’t work at all. The basic WiFi app can’t access the ESP device, Camera app fails to compile. I’ve selected the Sipeed Maixduino board in the arduino board selector. I assume that’s correct? Also, does anyone know why it shows two serial ports in Device Manager. Totally confused.

The only example apps that seems to work are the ones for the SD card. Anyone shed some light on this?




if you can share the error log and more details, it will be easy to look up the problem.


Thanks for the response. After further investigation I see that there is no on-board LED on the Maixduino Board. I used the TX-Led on port 1 to verify the app was running. I also see that there is a CH552 uP which provides 2 channel USB capability; and that one of the channels is connected to the ESP8266. I still don’t know how to connect the ESP serial to the K210 Serial port 1 to enable WiFi with the K210. There must be some way to disable the 8266 to the USB and allow the K210 to gain access to it. I haven’t figured it out yet.

As far as the OV2640 is concerned, I get the following errors. Maybe it’s using the wrong library.

Anyway, lot’s of issues to be worked out. Still researching…

Again, Thanks


$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ errors follow $$$$$$$$$$$$$$$$$$$$$$$$$$$$$

selfie:7:15: error: cannot declare variable ‘camera’ to be of abstract type ‘Sipeed_OV2640’



In file included from C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\examples\selfie\selfie.ino:1:

C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\src/Sipeed_OV2640.h:36:7: note: because the following virtual functions are pure within ‘Sipeed_OV2640’:

class Sipeed_OV2640 : public Camera{


In file included from C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\src/Sipeed_OV2640.h:4,

from C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\examples\selfie\selfie.ino:1:

C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Camera\src/Camera.h:79:18: note: ‘virtual void Camera::setRotation(uint8_t)’

virtual void setRotation(uint8_t rotation) = 0;


Multiple libraries were found for “Adafruit_GFX.h”

Used: C:\Users\dpcon\Documents\Arduino\libraries\Adafruit_GFX_Library

Not used: C:\Users\dpcon\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Adafruit-GFX-Library

exit status 1

cannot declare variable ‘camera’ to be of abstract type ‘Sipeed_OV2640’

Thanks for the replay, which blink app you used ? can you share the code.

The blink app is in the Maixduino examples under “ticker”

#include <Arduino.h>

#include <Ticker.h>

// attach a LED to pPIO 13

#define LED_PIN 13

Ticker blinker(TIMER0);

Ticker toggler(TIMER1);

Ticker changer(TIMER2);

float blinkerPace = 0.1; //seconds

const float togglePeriod = 5; //seconds

void change() {

blinkerPace = 0.5;


void blink() {

digitalWrite(LED_PIN, !digitalRead(LED_PIN));


void toggle() {

static bool isBlinking = false;

if (isBlinking) {


isBlinking = false;


else {

blinker.attach(blinkerPace, blink);

isBlinking = true;


digitalWrite(LED_PIN, LOW); //make sure LED on on after toggling (pin LOW = led ON)


void setup() {


toggler.attach(togglePeriod, toggle);

changer.once(30, change);


void loop() {


You can also just write out to the Serial() port. There’s an LED on that pin also. Writing to Serial1 doesn’t blink anything.

I have MaixDuino (2626), and examples in python language work, especially the camera works.
However, this is not the case with the arduino-ide example in cpp: selfie.ino. Procedure
int Sipeed_OV2640::sensor_snapshot( ){ g_dvp_finish_flag = 0;
uint32_t start = millis(); while (g_dvp_finish_flag == 0) {
usleep(50); if(millis() - start > 300) return -1; }
return reverse_u32pixel((uint32_t*)_dataBuffer, _width*_height/2);
} returns minus one, which is why image pointer *img of selfie.ino is NULL.
As the internet shows, i am not the only one with this problem.

Hi, in June I tryed to program my MaixDock using Arduino IDE using a Macbook Pro, and I couldn’t do every thing I watented, after spending more than 3 weeks trying to use the Ardiunos demos, I changed to use de Standalone C SDK, and it is more simple and easy to work than Arduino and it works faster, give you more control, but you have to program your drivers.

The biggest problem I had was the WIFI driver, the included demo doesn’t work with higher speeds, now that I´m working with my own drivers I’m working with 2.5Mbps. The biggest problem I´m facing is that ESP8285 has a bug, and some times it stay for more than 60 seconds locked, I’m using it to broadcast captured images.

In case of working with cameras, it was very paintfull to find low level documentation to use the cameras, the simplest way to find how to program the cameras is to see the source code of MaixPy.

The LCD and KPU are easy to programm beause every example i’ve found worked.

Well I hope, this few words could help you choose another option to programm you Maixnuino.



Thanks for providing this experience. I am just getting started with the SDK. If you end up developing a good WiFi driver, I’d be very interested in it, in case you decide to share the source code.



Hi, until now i’m still having problems with the bug of ESP8285, it still randmoly stays returning a “busy s…” or “receive xxxx…” message for 10 seconds or 30 second. I’m trying to use a different buffer size, and this is very annoying, because i need to send the result of a KMODEL detection in real time, and 10 to 30 of delay
makes my solution not reliable.