Today we are going to talk about M5Stack, a family of devices based on the ESP32 that are becoming very popular among the community.
Those of you who follow us on Twitter, you may have seen that lately I have been everywhere with a small orange box with a screen. This device is one of the several members of the M5Stack family.
This family is much broader, and includes both processor units, sensors, and actuators. The philosophy of M5Stack is a series of stackable components (hence its name) that we can easily connect, like “legos”.
Among the processors, most of them have an ESP32 processor, in different versions. We already know the characteristics of the ESP32 but, in summary, two cores of 240Mhz, WiFi, and Bluetooth.
As for peripherals, M5Stack has a wide variety, including temperature sensors, humidity sensors, light sensors, motor actuators, servos. We even find small robots, for example, with wheels, or even mecanum wheels.
So let’s review some of these units. There are more than we are going to see, and it is constantly expanding, but let’s see the ones I have and can comment on.
The little orange box I connected with you. A device of small dimensions, which incorporates an ESP32 Pico, battery, an LCD screen, accelerometer, three buttons, RTC, LED, IR sensor, and microphone. That’s it!
It incorporates all the devices you need to do tests and “play”. The first version mounted an LCD screen of 160x80 pixels. The next version, called M5Stick-Plus, improved the screen to 240x135 pixels. On the other hand, the Plus version has some small light leaks, which are observed especially in the lower right corner. It’s not a big problem, but hopefully they will improve it in future versions.
As I mentioned earlier, I can’t be more in love with this little thing. It is a very convenient format, which I can take anywhere, and use while I do tests. If it had a 9-axis IMU, it would be close to perfection.
It has a Groove-type connection port, plus a connection port with Vin, Gnd, 5V, 3V3, and 3 pins. To this port, in addition to dupont cables, a series of extension modules (hats) can be added, such as a speaker, temperature sensor, etc…
The smallest of the family, also incorporate an ESP32 Pico. The basic model has an RGB LED on the top, while the Matrix model has a 5x5 RGB LED matrix.
The Atoms have a button on the top, but they lack a battery, accelerometer, and the rest of the devices of the M5Stack. (logical, but a shame, because a minimal battery would allow making devices like the Amazon Echo button)
On the other hand, the Atoms have many more available GPIO pins on their back. This makes them the basis for a large number of peripherals, including servos, motors, and (here yes) an additional module with a battery.
M5 Core (1 and 2)
The Core are the “flagship” of the M5 saga. At the time of writing this post, the Core 2 is the current model. It maintains the 320x240 pixel LCD screen from the previous version, but this one becomes touch-sensitive. For this reason, the Core 2 dispenses with the three physical buttons that the original version had.
The Core range is powered by an ESP32 model D0WDQ6-V3, which incorporates 16MB Flash and 8MB PSRAM. PSRAM memory is a very interesting feature, which the other models lack, and allows for much “larger” projects.
In addition, it has a battery, 6-axis IMU (again, how well 9 would fit), RTC, micro-sd card, vibration motor, microphone, speaker… well, everything you could expect in the flagship device of the family.
As I said, for me the M5Stack family is a success in terms of design, format, and functionality. They are very convenient to use, well thought out, and of very good quality.
Personally, I am not so interested in the ecosystem of peripherals (servos, sensors, etc). What I want is to control “standard” components, or attach them to my setups. But I find that it could be a hit for the educational field due to its simplicity.
But as independent devices, I find the M5Stack very interesting. Not without reason they are achieving so much success, and the family is constantly expanding (they even have modules with a camera, and a Lidar!)
Likewise, the documentation, libraries, and examples are quite well developed. They can be programmed in C++, MicroPython, and in their own environment called UI Flow (but I am not interested in the latter two).
In short, very interesting devices and ones to keep an eye on in the future, and a real example of how to do things really well.