Review of a cool Arduino-compatible prototyping platform: M5Stack

This summer, I am working as an intern at the company Switch Science in Tokyo, Japan. Switch Science creates electronics kits for people to build and learn from. They produce products that are enjoyable for kids in elementary school all the way up to adults interested in electronics.

I have been working here for just two days so far, and am enjoying everything about it! Everybody is extraordinarily kind and welcoming and there are many interesting creations they are willing to share with me. My role here is to create a project using M5Stack or micro:bit to present at the Maker Faire Tokyo in August. I have not yet used micro:bit, but I have been familiarizing myself with M5Stack over the past few days.

M5Stack is a small, compact, sleek module that can be coded with Arduino. It has a color LCD screen, microSD card slot, and a speaker. One of its most impressive features though, is that it can stack with other M5Stack components to add many extra input methods and uses, such as temperature sensors and step motor modules. It is even possible to DIY custom components. It clicks together seamlessly and looks so sleek and nice that it can be used as the project's final product without any other sort of casing.

I spent my first day simply trying to install the needed configurations to program my M5Stack. I kept receiving an error when copying the code from Github to my terminal which, if I remember correctly, started with "IOError: [Errno socket error]…". So, when I tried to compile a test program in Arduino, it would give me another error and prevent me from uploading my project to the M5Stack. I couldn't seem to find any solution to overcome this. But finally, 11 minutes before my work day was over, I changed my "board" on Arduino from "M5STACK-CORE-ESP32" to "ESP32 Dev Module". Suddenly, the project was able to be uploaded to my board and the words "Hello World!" displayed on the screen.

After my satisfying ending to my first day, I spent the next day familiarizing myself with the most basic module of the M5stack and its LCD screen. I started by writing a few messages with different colors and different sizes, to making randomly colored rectangles encompassed inside one another, until I finally created a simple drawing program using the buttons on the module. My wonderful co worker Maki saw this and asked me if I would like to film it for their youtube channel. Here is that video:

I then improved upon that code to create a simple game where you control a green square and attempt to collect as many small white squares as possible within 30 seconds.

I am enjoying my time at Switch Science immensely and am very grateful to them for letting me work here and experience programming in a wonderful workspace. I will continue recording my internship and experiences as my time here continues!