MakerLab
ESP32M5StickC PLUS

M5StickC PLUS: Your Pocket-Sized ESP32 Powerhouse

A compact, feature-rich development board based on the ESP32, ideal for portable IoT projects and rapid prototyping.

M5StickC PLUS

The M5StickC PLUS is a highly integrated, low-cost development board from M5Stack, designed for portability and ease of use. It's built around the powerful Espressif ESP32-C3FN4 chip, a versatile microcontroller featuring Wi-Fi and Bluetooth connectivity, making it a prime choice for Internet of Things (IoT) applications. This board is a successor to the original M5StickC, offering enhanced features and performance in a similarly small form factor.

At its core, the ESP32-C3FN4 is a single-core RISC-V processor that operates at up to 160 MHz. It boasts 4MB of SPI Flash memory for program storage and configuration. The M5StickC PLUS integrates a vibrant 1.14-inch color LCD display (135x240 resolution), a programmable RGB LED, a buzzer, and an infrared transmitter, alongside a suite of sensors accessible via its expansion headers. This rich set of on-board peripherals allows for immediate experimentation without extensive external components.

Positioned within the ESP32 family, the M5StickC PLUS leverages the ESP32-C3's modern RISC-V architecture, offering a balance of performance, power efficiency, and cost. It's particularly suited for makers, students, and embedded engineers who need a compact yet capable platform for developing prototypes, wearable devices, remote sensors, or interactive gadgets. Its all-in-one design, including a rechargeable battery and USB-C for programming and power, makes it incredibly convenient for on-the-go development and deployment.

Released around 2020, the M5StickC PLUS continues M5Stack's philosophy of providing modular and user-friendly development tools. It builds upon the success of earlier M5Stick models by incorporating improvements like a larger battery capacity and a brighter screen, catering to projects requiring longer runtimes and better visibility. The board's robust ecosystem of Grove-compatible interfaces and M5Stack's own stackable modules further extends its capabilities, allowing for complex projects to be built with minimal wiring and effort.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCESP32-C3FN4
ArchitectureRISC-V Single-Core
Clock speed160 MHz (typical)
Flash / Storage4MB SPI Flash
RAM / SRAM400 KB SRAM
Operating voltage3.3V
Digital I/O pins15 (accessible via headers)
Analog / ADC2x 12-bit SAR ADCs
PWMUp to 6 channels
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth 5.0 LE
USBUSB Type-C (for programming, power, and serial communication)
Power input5V via USB Type-C, 3.7V LiPo Battery
Dimensions60mm x 25mm x 13.5mm

Pinout & pin functions

PinFunction
G0GPIO 0 (Boot mode control)
G36GPIO 36 (ADC1_CH0)
G35GPIO 35 (ADC1_CH6)
G34GPIO 34 (ADC1_CH3)
G39GPIO 39 (ADC1_CH1)
G33GPIO 33 (ADC1_CH4)
G25GPIO 25 (DAC, PWM)
G26GPIO 26 (DAC, PWM)
G21GPIO 21 (I2C SDA)
G22GPIO 22 (I2C SCL)
G19GPIO 19 (I2S, PWM)
G23GPIO 23 (SPI MOSI)
G18GPIO 18 (SPI SCK)
G17GPIO 17 (SPI MISO)
G16GPIO 16 (SPI CS)
G4GPIO 4 (UART TX)
G5GPIO 5 (UART RX)
G15GPIO 15 (PWM)
G12GPIO 12 (PWM)
G13GPIO 13 (PWM)
G14GPIO 14 (PWM)
G27GPIO 27 (PWM)
G32GPIO 32 (PWM)
5V5V Power Output
3V33.3V Power Output
GNDGround
BATBattery Input (Internal charging circuit)
IRInfrared Transmitter
BUZZBuzzer Output
RGBProgrammable RGB LED (WS2812B)

Wiring & circuit basics

The M5StickC PLUS operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause permanent damage. When interfacing with 5V components, a level shifter is essential. Powering the M5StickC PLUS is typically done via the USB Type-C port, which can supply 5V. The board includes an onboard 3.7V LiPo battery, rechargeable through the USB port, and a power management IC to handle charging and battery monitoring.

For basic output, like lighting an LED, connect the anode (longer leg) of an LED to a chosen GPIO pin (e.g., G25) through a current-limiting resistor (typically 220-330 Ohms for standard LEDs). Connect the cathode (shorter leg) of the LED to a GND pin. This setup ensures the current is limited to protect both the LED and the M5StickC PLUS.

When connecting I2C devices, use the designated SDA (G21) and SCL (G22) pins. Ensure the external I2C device is also operating at 3.3V or use a level shifter if it's a 5V device. Many I2C sensors, like the BME280 or MPU6050, are commonly used with the M5StickC PLUS and can be directly wired to these pins, along with 3.3V and GND.

Programming & getting started

The M5StickC PLUS can be programmed using various toolchains. The Arduino IDE is a popular choice for its ease of use and extensive library support. After installing the ESP32 board support package in the Arduino IDE, you can select the M5StickC PLUS from the board manager. For MicroPython, you can flash a compatible firmware onto the device and then use a MicroPython IDE like Thonny to upload scripts. PlatformIO, integrated with VS Code, offers a more advanced development environment for C/C++ and other languages, supporting the ESP-IDF framework.

To upload your first program using the Arduino IDE: 1. Connect the M5StickC PLUS to your computer via USB. 2. Select the correct COM port in the Arduino IDE. 3. Choose 'M5StickC' as the board. 4. Write or paste your code (e.g., a simple blink sketch for the onboard RGB LED). 5. Click the 'Upload' button. The IDE will compile and flash the code to the M5StickC PLUS.

Project ideas

Portable Weather StationUtilize the I2C pins (G21, G22) to connect a BME280 sensor for temperature, humidity, and pressure readings. Display data on the built-in LCD and transmit readings over Wi-Fi. Learns about sensor integration, I2C communication, and Wi-Fi networking.
Gesture-Controlled RobotUse the onboard IR transmitter and receiver (if an external IR sensor is added) or an accelerometer/gyroscope module connected via I2C to control a small robot. Develop gesture recognition algorithms and wireless control. Learns about sensor fusion, control systems, and wireless communication.
Smart Home RemoteProgram the IR transmitter (IR pin) to control home appliances like TVs or air conditioners. Use the buttons or touchscreen (if added via expansion) for input and Wi-Fi to receive commands remotely. Learns about infrared communication protocols and remote control interfaces.
Wearable Notification DeviceConnect to Wi-Fi to receive notifications from services like email or social media. Display alerts on the LCD using GPIO pins for buttons and the RGB LED for status indication. Learns about network communication, event handling, and user interfaces.
IoT Data LoggerCollect sensor data (e.g., from an analog soil moisture sensor connected to an ADC pin) and log it to an SD card (using an SPI interface) or upload it to a cloud platform via Wi-Fi. Learns about data acquisition, storage, and cloud integration.
Miniature Music SynthesizerUse the buzzer (BUZZ pin) and GPIO pins for button input to create a simple musical instrument. Explore PWM for basic audio generation and timing for melodies. Learns about digital audio generation and user input handling.

Buying tips & gotchas

When purchasing, ensure you are buying the M5StickC PLUS, as there are many similar-looking M5Stack products. Avoid cheap, unbranded clones, which may have inferior components or unreliable firmware. The M5StickC PLUS uses standard 1.27mm pitch Grove connectors and 2.54mm pitch headers, making it compatible with a wide range of expansion modules. A common pitfall is connecting 5V logic to the 3.3V GPIO pins; always use level shifters or ensure compatibility. Consider purchasing a protective case and a small breadboard or adapter for easier prototyping.