Do not read the manual

The M5Stack is evolving quite fast meaning that user manuals are quickly outdated. The manual in my kit proved to be completely useless regarding software installation; refer to the product’s website for the latest software and instructions. From there you can download an Arduino IDE 1.8.5 pre-configured for the M5Stack and the ESP32. Just unzip it and you are ready to go. Almost…

 
M5Stack Mandelbrot
Proudly showing a Mandelbrot fractal.

Driver trouble

Almost, yes, because the M5Stack has a Silicon Labs CP2104 as USB-to-UART bridge and you may have to install a driver first. Not me, my computer already had one, but it didn’t work. Windows 10 detected a USB device, but did not like the device descriptor and so it wouldn’t give me a COM port. After a lot of fiddling with all sorts of driver versions suddenly the (brilliant?) idea came to me to keep the power/reset button pressed while connecting the module to the computer. Believe it or not, this did solve my problem. Maybe the current surge of the demo application is too high at power-up? (It plays sound and uses the display.)

Note that the M5Stack website mentions that, at least on Windows, you should use version 6.7.1 of the CP210x driver and not the universal Windows 10 drivers, but I couldn’t find that one.

On to the fun stuff

Once recognized by Windows everything worked fine for me. Loading the TFT_Mandlebrot example in the Arduino IDE and programming it into the M5Stack terminated successfully and then a nice colourful fractal showed up on the display.

 
M5Stack disassembled
Behind the screen.

Conclusion

The M5Stack succeeds where many other attempts have failed: making the creation of good-looking prototypes easy. Despite being pretty powerful — remember that the ESP32 has two-cores — with standard user interface options built in, it is as easy to program as any other Arduino-compatible board. The use of USB-C ensures that enough power is available for most applications.

I can be short about the M5Stack: I love it!