review-m5stack

We meet the M5Stack family, the popular devices based on the ES32

  • 4 min

Today we are going to talk about M5Stack, a family of devices based on the ESP32 that are gaining great popularity within the community.

Those of you who follow me on Twitter will have seen that lately I go 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 processing units, as well as sensors and actuators. The M5Stack philosophy is a series of stackable components (hence the name) that we can easily join together, like “Lego”.

Among the processors, most feature an ESP32 processor, in different versions. We already know the characteristics of the ESP32 but, in summary, two 240Mhz cores, WiFi and Bluetooth.

Regarding peripherals, M5Stack has a wide variety, including temperature, humidity, light sensors, motor drivers, 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 continuously expanding, but we are going to see the ones I have and can give an opinion on.

M5Stick-C

The little orange box I mentioned. A small-sized device, which incorporates an ESP32 Pico, battery, an LCD screen, accelerometer, three buttons, RTC, LED, IR sensor and microphone. That’s something!

m5-stick-c

It incorporates all the devices you need for testing and “playing”. The first version had a 160x80 pixel LCD screen. The next version, called M5Stick-Plus, improved the screen to 240x135 pixels. However, the Plus version has some small light leaks, which are mainly observed in the lower right corner. It’s not a big problem, but hopefully they will improve it in future versions.

As I already mentioned, I couldn’t be more in love with this little thing. It’s a very comfortable format, which I can take anywhere, and use while I’m testing. 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) such as a speaker, temperature sensor, etc. can be added.

M5 Atom

The smallest in the family, they also incorporate an ESP32 Pico. The basic model has an RGB LED on the top, while the Matrix model mounts a 5x5 RGB LED matrix.

m5-atom

The Atoms have a button on the top, but lack a battery, accelerometer, and the rest of the M5Stack devices. (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 GPIO pins available on their back. This makes them the base for a large number of peripherals, including servos, motors, and (here yes) an additional module with a battery.

M5 Core (1 and 2)

The Cores are the “flagship” of the M5 saga. At the time of writing this entry, the Core 2 is the current model. It retains the 320x240 pixel LCD screen from the previous version, but it becomes touch-sensitive. For this reason, the Core 2 dispenses with the three physical buttons that the original had.

m5-core-2

The Core range is powered by an ESP32 model D0WDQ6-V3, which incorporates 16MB Flash and 8MB PSRAM. The PSRAM memory is a very interesting feature, which the other models lack, and allows tackling much “larger” projects.

Furthermore, it has a battery, 6-axis IMU (again, 9 would suit it well), RTC, micro-sd card, vibration motor, microphone, speaker… well, everything you could expect from the flagship device of the family.

Conclusion

As I was saying, for me the M5Stack family is a complete success in terms of design, format, and functionality. They are very comfortable to use, very well thought out, and the quality is very good.

Personally, I’m 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 success for the educational field due to its simplicity.

But as standalone devices, I find the M5Stacks very interesting. It’s not without reason that they are achieving so much success, and the family is continuously expanding (they even have camera modules, and a Lidar!)

Likewise, the documentation, libraries, and examples are quite well developed. They can be programmed in C++, MicroPython, and in a proprietary environment called UI Flow (but I’m not interested in the latter two).

In short, some very interesting devices worth keeping an eye on in the future, and a prime example of how to do things really well.