M5Stack: Documentation and Links

Feel free to edit this page!

General Documentation

Programming Languages and IDEs

The M5Stack modules are built around the popular ESP32 microcontroller. They can be programmed in C++ using either the Arduino ecosystem (Arduino IDE) or Platform.io (VScode IDE) (or both in parallel). Alternatively, you can run a MicroPython interpreter on the M5Stack. MicroPython is also used as foundation for M5Stack's custom block-based visual programming framework UIFlow.

C++ (Arduino, Platform.io)

Installation (Arduino IDE)

Installation (PlatformIO / VSCode)

Hint: If you want to work on a project both using PlatformIO/VScode and the Arduino IDE, just use a main.cpp file that contains #include <Arduino.h> and setup()/loop functions. Then add an empty foobar.ino file into the project folder. The Arduino IDE accepts the .inofile and simply compiles it together with all .cpp files in the same folder (i.e., our main.cpp) into a binary.

Useful Libraries

MicroPython

source: https://appelsiini.net/2018/m5stack-esp32-firmware-cli/

See also: Alternative MicroPython firmware, M5Stack forum post: "Where to get basic (offline?) MicroPython firmware with lcd module support?"

UIFlow

UIFlow/M5Flow is a web-based IDE including a block-based programming language (based on Blockly) that is “compiled” to Python code and uploaded to an M5Stack module via the internet. There is an additional tool, M5BlockMaker, that can be used to develop custom blocks.

Setting up Wifi / connecting to the device

UIFlow requires a special firmware to be flashed onto the M5Stack module (Howto).

If you don't want to install the flashing tools, you can always ask us to re-flash the UIFlow firmware onto the M5Stack module.

Shops

Random Stuff and Known Issues

Interesting Projects