The M5StickC from M5Stack is a very handy and inexpensive tool for learning microprocessors and IoT prototyping projects.
The “stick” has the following key features:
- An ESP32 CPU, which means it has wifi and bluetooth on board and the ability to be programmed from a variety of platforms including Arduino, Visual scripting (using M5Stack’s UIflow), and MicroPython.
- USB-C connection for power and data.
- On board accessories including a 0.96″ LCD screen, 80mah battery and charging circuitry, two user buttons, IR communications, microphone, a 6-Axis IMU and a red LED.
- I/O options on board include a Grove connector and female header pins for ground, power. and 3 additional GPIO pins.
Further details on the stick can be found on the M5Stack site. My notes on hardware accessories that I have tested with the stick can be found here.
The stick is available from the manufacturer for about $10 (not including shipping to the US) or about double that from Amazon Prime or Microcenter. It comes in a snug little case with a short USB-C cable. A version with a watch band is also available. There are some accessories out there, but read about the 5 volt danger before buying any.
After a substantial amount of testing I feel the M5StickC is a great and cheap platform for learning physical computing and building quick prototypes that need a microprocessor, especially one with network connectivity. I expect to use this device extensively in my own teaching over the coming months and will be posting examples and other learning materials. However it is not perfect.
This page will be a resource base for what I have learned about the stick and reference material that I will be using.
So what is not so great about the stick?
- It uses a processor that is not 5 volt tolerant on the IO pins, which means the board could fry if 5 volts is sent to it over those pins. Yet the Grove connector supplies 5 volts to all external accessories. You cannot just plug in an accessory module with a Grove connector and be safe. Please read my notes on the “5 Volt Danger” with this device.
- It can’t run on its own power for long. The on board battery should be viewed as for testing purposes only. The battery can run the screen at full brightness with sensor data for up to 30 minutes. If the screen is off and the stick is just flashing the LED it may last up to two hours.
- No true on/off switch. The power switch on the side of the unit puts it in deep sleep mode (and turns off the screen). This is handy to have it wake up on some sort of input but it does mean the battery will slowly drain completely out when the stick is “off.”
- The English documentation on the manufacturers site is limited and incomplete and few examples are available. I hope to contribute something to changing that.
I consider the first issue to be the really serious one, especially in a learning environment.
Other hardware notes from early testing:
- The case is reasonably sturdy but may hide the very edge of the screen. However, the “buttons” are just flexing bits of the case, they may not last forever.
- Although it is not clear from M5Stack’s material, the case contains a magnet and the stick will adhere to iron surfaces. Keep this in mind if you are using any magnetic sensors.
- The stick includes four tiny slots on the sides for accessories such as M5Stack’s watch kit.
- All pins are set to wake the unit on power. In other words if there is any power draw on any of the pins the stick will power up from its deep sleep. Also all power pins are live at all times. Even when the unit is “off” power is being supplied to the 5 volt and 3.3 volt output pins and will be consumed if there is any load on them.
- The built in battery charger provides up to 1.4a current so the little battery charges quickly.
- There are five IO pins available:
- 0: ADC, PWM, touch, has the microphone connected to it
- 26: ADC, PWM, DAC
- 32: ADC, PWM, touch, I2C, on the Grove connector
- 33: ADC, PWM, touch, I2C, on the Grover connector
- 36: ADC, PWM, input only, has the ESP’s hall effect sensor connected to it.
There will be much more to come in my notes and examples for the stick. In the meantime, get one of these and let me know how it is working out for you.
Thanks for being a source of information on the M5StickC. I have an M5StickC + and an M5Stack Core2. I agree that the manufacturers documentation is minimal at best, forcing us all to share information about these devices. I’ve found that some i2c modules (like the MAX30102 Blood O2 sensor for example which uses two LED’s onboard the module) won’t power up through the Grove connector on the StickC. I haven’t tried using the IO ports and power interfaces on the end of the device but I suspect the problem is that I’ve exceeded the battery current capacity of the StickC. Just a thought.