I have a dedicated drawer for ESP based boards. They come in different forms and shapes but all of them can be summed up by: “here X module attached to ESP and some GPIO for you to play with”. M5Stack takes it a step further with well designed, incredibly polished ESP based development modules that just work on its own as an all-in-one development platform. I’m going to take a closer look at M5Stack Core – a beautify made ESP32 module with a plethora of functions.
When all-in-one means just that
M5Stack Core has all the makings of a learning tool. Don’t be put off by this, one look at M5Stack Instagram page reveals how creative the community is, and how quickly community takes the applied knowledge and uses in very creative projects. The key to that success is a module-based approach.
Looking at the website alone, I wonder if it’s not easier to list things that M5Stack Core doesn’t feature. Instead of a naked PCB, M5Stack offers a fully modular, stackable design that requires no soldering at all. Core modules come in dev kits or as a module paired with one from dozens available modules. From LoRa, RFID to battery packs and even a cooling base, you’ll never find yourself limited by this ecosystem. On top of that, more traditional expansions are available via GPIO or GROVE connectors.
Specs on FIRE
Guys at M5Stack sent me the M5Stack Core FIRE to play with and I have to say that the dev kit sets the expectations high from the moment you open the plastic container. Inside the dev kit I got:
- M5 Stack Core
- M5GO CHG Base
- LEGO-compatible base
- LEGO connectors
The Core module is well made, from a solid plastic. It will survive drops and various abuse. The module meant to be opened! Secured with 2 screws (there are 4 screws but only 2 keep the base attached) base latches on to the Core revealing ESP32 based PCB:
- ESP32 – 240MHz dual-core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual-mode Bluetooth, with 16MB Flash and 4MB RAM
- SCREEN – 2 inch, 320×240 Colorful TFT LCD, ILI9342C, max brightness 853nit
- 3 buttons
- Speaker 1W-0928
- 2 pin battery connector
- microSD card reader
- Port – GROVE(I2C+I/0+UART) x 1
- USB-C
- 30 GPIO pin header
The modular base comes with extra features and uses the GPIO header to latch on. This is the first option to customise your kit. There are about 30 or so different options. M5 Stack Core FIRE comes with the M5GO CHG Base:
- GROVE connectors UART, GPIO
- 2 x LED bars (RGB)
- LiPo battery 600mAh (reduced to 500mAh)
- microphone
There is also a LEGO style magnetic base that you can use to mount on LEGO Technics and a pass through USB-C port for charging and data.
Other M5Stack products talked about in detail:
- M5Stack Core
- M5Stack Core 2
- M5Stack UnitV2
- M5Dial
- M5Stack Atom Matrix (pending)
Learn, develop, make…
Right off the bat, M5Stack Core shows what is all about – it’s all about approachable programming. ESP based modules are very popular and there is no shortage of scripts and libraries that you can try, but a lot of them are daunting with little to none documentation or instructions for anyone just starting off. And the general assumption is that if you are going to play with ESP based boards, you are pretty much past the entry-level with Arduino & Arduino IDE.
As I power on the M5Stack Core – a very neat tutorial walks me through features available in the FIRE kit, showcasing it in action. A classic “show and tell” that is as welcoming as informative. Apart from the tutorial, there are a couple of options you can try instantly: rock paper scissors game, WiFi Scanner or Heartbeat display.
Learn
Visual programming isn’t something I would instantly associate with ESP boards, but M5Stack comes with a web-based (and downloadable) visual code editor: UI Flow (microPython based) which takes Scratch’s approach to programming. Code blocks are simple to understand, and you can always switch to microPython to learn how visual block is represented by lines of code. It’s a very good way to get you started with Python, or simply refresh your knowledge.
M5Stack core connects over WiFI or USB to the UI Flow which makes the process very simple, and the associated examples introduce you to the concept of programming with blocks. Apart from UI Flow, M5Stack provides firmware burner utility with several baked in choices of firmware showcasing games tools and visualisations.
Develop
Once you are familiar with your M5Stack Core module, take a look at an array of matching extensions. From temperature sensors to thermal camera add-ons, and robot platforms. The ecosystem is spoiled for choice and leaves you drooling for the next thing to add to your M5Stack collection.
Make
When your maker’s wings are spread enough and you are ready for another challenge, M5Stack Core is a fully developed ESP32 board. Nothing stops you from using Arduino IDE to develop for it. With the inclusion of GPIO expanders, GROVE ports and even prototyping modules sky is the limit (or ESP32’s processing power).
Community is very creative and one look at the M5Stack Instagram feed tells you how inventive makers get with it.
Final thoughts
I’m not surprised why M5Stack products are so popular. These are very well made modules that fill the learning niche nicely. Picking ESP32 is an awesome choice too as the transition from M5Stack modules onto more sophisticated ESP boards is seamless. If you ever wanted to start programming – M5Stack Core is a true all-in-one module – as long as you don’t require a touch screen (this will change soon) or 5G network. If you were ever looking for a pocket-size dev board to play with – you can not go wrong with M5Stack Core. I have 2 more modules I will be writing about soon. Thoughts? Let me know in this Reddit thread.