Stufin
Home Quick Cart Profile

M5StickC ESP32-PICO Mini IoT Development Kit

Buy Now

Microcontroller

ESP32-PICO (ESP32 Dual-Core Xtensa LX6 processor)

Wi-Fi and BluetoothSupports 802.11 b/g/n Wi-Fi and Bluetooth 4.2 (BLE and BR/EDR)

Memory

520 KB SRAM, 448 KB ROM, and 4MB Flash

Display

0.96" Full Color TFT Display (160x80 pixels)

Battery

Rechargeable 95mAh Li-Polymer Battery

Expansion

9-pin I/O header (compatible with most Grove modules) and 5-pin I/O header

Power Management

+ Battery TypeRechargeable 95mAh Li-Polymer Battery
+ Charging InterfaceUSB-C
+ Power Consumption< 100mA (average)

Getting Started

  • Unboxing and Assembly: Carefully unbox the kit and assemble the components according to the provided instructions.
  • Software Installation: Install the required software tools, such as MicroPython, Lua, or other operating systems.
  • Programming: Write and upload your code to the board using a programming language of your choice.
  • Hardware Integration: Integrate sensors, actuators, and other hardware components according to your project requirements.
To get started with the M5StickC ESP32-PICO Mini IoT Development Kit, follow these steps

For more information, please refer to the detailed datasheet, user manual, and tutorials provided with the kit.

Operating System

Supports MicroPython, Lua, and other operating systems

Dimensions

54 x 15 x 15 mm (2.13 x 0.59 x 0.59 inches)

Functionality

The M5StickC ESP32-PICO Mini IoT Development Kit is designed to provide a flexible and versatile platform for developing IoT projects. Key functionality includes
Wi-Fi and Bluetooth ConnectivityEnables wireless communication with other devices, cloud services, and the internet.

Display and Graphics

The integrated 0.96" color TFT display supports GUI development, graphics rendering, and real-time data visualization.

Sensor Integration

The board is compatible with a wide range of sensors, including Grove modules, for monitoring temperature, humidity, light, sound, and other environmental parameters.

MicroPython Support

Supports MicroPython, an optimized Python interpreter for microcontrollers, allowing for rapid development and prototyping.

Home Automation

Develop smart home devices, such as smart thermostats, lighting controllers, and security systems.

Wearable Devices

Create wearable devices, such as smartwatches, fitness trackers, and health monitors.

Industrial Automation

Develop industrial automation systems, such as sensor monitoring, machine control, and data acquisition systems.

Robotics

Build robotics projects, such as autonomous robots, robot arms, and robotic vehicles.

Technical Specifications

ESP32-PICO Specifications

+ Dual-Core Xtensa LX6 processor

+ Operating Frequency160 MHz
+ Wi-Fi802.11 b/g/n
+ Bluetooth4.2 (BLE and BR/EDR)

+ UART, I2C, I2S, SPI, and other peripherals

Display Specifications

+ Resolution160x80 pixels
+ Color Depth16-bit
+ InterfaceSPI

Pin Configuration

  • M5StickC ESP32-PICO Mini IoT Development Kit Pinout Guide
  • The M5StickC ESP32-PICO Mini IoT Development Kit is a compact and feature-rich board that combines the power of ESP32 microcontrollers with a range of peripherals and interfaces. This guide provides a detailed explanation of each pin on the board, including their functions and how to connect them.
  • Pin Structure:
  • The M5StickC board has a total of 26 pins, arranged into two rows of 13 pins each. The pins are numbered from 1 to 26, with the even-numbered pins on the top row and the odd-numbered pins on the bottom row.
  • Pinout Description:
  • Here's a point-by-point explanation of each pin on the M5StickC board:
  • Top Row (Even-Numbered Pins):
  • 1. GPIO 18: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 2. GPIO 19: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 3. GPIO 20: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 4. GPIO 21: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 5. GPIO 22: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 6. GPIO 23: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 7. GPIO 25: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 8. VCC: Power supply pin, provides 3.3V power to the board.
  • 9. EN: Enable pin, active-low reset pin for the ESP32 chip.
  • 10. GPIO 0: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 11. GPIO 2: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 12. GPIO 4: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 13. GPIO 26: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • Bottom Row (Odd-Numbered Pins):
  • 1. GND: Ground pin, provides a common ground connection for the board.
  • 2. GPIO 15: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 3. GPIO 13: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 4. GPIO 12: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 5. GPIO 14: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 6. GPIO 27: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 7. GPIO 32: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 8. GPIO 33: General-purpose input/output pin, can be used for digital input/output or as an ADC channel.
  • 9. VIN: Power input pin, accepts an external power source (3.3V to 5V).
  • 10. 3V3: Power output pin, provides a regulated 3.3V power supply.
  • 11. RX: Receive pin for the onboard USB-to-UART bridge.
  • 12. TX: Transmit pin for the onboard USB-to-UART bridge.
  • 13. GND: Ground pin, provides a common ground connection for the board.
  • Connection Guidelines:
  • When connecting pins on the M5StickC board, keep the following guidelines in mind:
  • Use a breadboard or PCB with a similar pinout to connect external components.
  • Ensure that the power supply pins (VCC and VIN) are connected correctly to avoid damage to the board.
  • Use a level shifter or voltage divider when connecting 5V devices to the board, as the ESP32 chip operates at 3.3V.
  • Be careful when connecting pins to avoid short circuits, which can damage the board or external components.
  • Refer to the datasheet and relevant documentation for the specific components you are connecting to ensure compatibility and proper connection.
  • By following this guide, you can effectively utilize the pins on the M5StickC ESP32-PICO Mini IoT Development Kit to build a wide range of IoT projects and applications.

Code Examples

M5StickC ESP32-PICO Mini IoT Development Kit Documentation
Overview
The M5StickC ESP32-PICO Mini IoT Development Kit is a compact, feature-rich development board based on the ESP32-PICO microcontroller. It offers a range of peripherals, including Wi-Fi, Bluetooth, ADC, DAC, I2C, I2S, SPI, and UART, making it an ideal platform for IoT, robotics, and automation projects.
Hardware Specifications
Microcontroller: ESP32-PICO
 Processor: Dual-core 32-bit LX6
 Clock Speed: Up to 240 MHz
 Wi-Fi: 802.11 b/g/n
 Bluetooth: 4.2 BLE
 Flash Memory: 4 MB
 SRAM: 520 KB
 LCD Display: 0.96-inch 160x80 TFT
 Battery: Rechargeable 95mAh Li-polymer
 Operating System: MicroPython, Arduino, UIFlow
Software Development
The M5StickC supports various programming languages, including MicroPython, Arduino, and UIFlow. Here are some code examples to demonstrate its capabilities:
### Example 1: Wi-Fi Connectivity using MicroPython
In this example, we will connect the M5StickC to a Wi-Fi network and display the connection status on the LCD display.
```python
import machine
import network
import utime
# Initialize the LCD display
lcd = machine.LCD()
# Initialize the Wi-Fi interface
wlan = network.WLAN(network.STA_IF)
# Connect to a Wi-Fi network
wlan.connect('your_wifi_ssid', 'your_wifi_password')
while not wlan.isconnected():
    utime.sleep(1)
# Display the connection status on the LCD
lcd.fill(0)
lcd.text('Wi-Fi Connected', 10, 10)
lcd.show()
```
### Example 2: Reading Analog Values using Arduino
In this example, we will read an analog value from the built-in light sensor and display it on the serial console.
```c
#include <M5StickC.h>
void setup() {
  // Initialize the serial console
  Serial.begin(115200);
// Initialize the light sensor
  pinMode(LIGHT_PIN, INPUT);
}
void loop() {
  // Read the analog value from the light sensor
  int lightValue = analogRead(LIGHT_PIN);
// Display the value on the serial console
  Serial.print("Light Value: ");
  Serial.println(lightValue);
delay(100);
}
```
### Example 3: I2C Communication using UIFlow
In this example, we will use UIFlow to communicate with an external I2C device, such as a temperature sensor.
```uiblocks
import uiflow as ui
# Initialize the I2C interface
i2c = ui.i2c(I2C_PIN_SCL, I2C_PIN_SDA)
# Create an I2C device object
temp_sensor = ui.i2c_device(i2c, 0x48)
# Read the temperature value from the sensor
temp_value = temp_sensor.read_reg(0x00)
# Display the value on the LCD
ui.lcd.clear()
ui.lcd.print("Temperature: " + str(temp_value) + "C")
ui.lcd.show()
```
These examples demonstrate the capabilities of the M5StickC ESP32-PICO Mini IoT Development Kit in various contexts, including Wi-Fi connectivity, analog-to-digital conversion, and I2C communication. With its versatility and compact design, the M5StickC is an ideal platform for a wide range of IoT, robotics, and automation projects.