Stufin
Home Quick Cart Profile

M5Stack Cardputer Kit with M5StampS3

Buy Now on Stufin

Wireless connectivity

Wi-Fi and Bluetooth 5 antennas integrated on the board

Compact form factor

54 x 54 mm (2.13 x 2.13 in) with a 30-pin GPIO header

Powerful peripherals

+ 2 x I2C interfaces

+ 2 x UART interfaces (1 x with HW flow control)

+ 1 x SPI interface

+ 1 x I2S interface

+ 12-bit ADC (8 channels)

+ 2 x DAC channels

Power management

USB-C port for power supply and programming, 2 x 1.8 V and 3.3 V power rails

Expansion capabilities

30-pin GPIO header with access to all peripherals, breadboard-friendly design

### Additional Features

MicroSD card slot for storage expansion (up to 4 GB)

RGB LED for status indication

Button and switch

Reset button, BOOT button, and a 3-position slide switch

JTAG interface for debugging and programming

Software Support

The M5Stack Cardputer Kit with M5StampS3 is supported by a range of software platforms, including
M5Stack's UIFlowA Python-based, visual programming environment for IoT development

Arduino

Compatible with the Arduino IDE for C/C++ development

MicroPython

Supports MicroPython for rapid prototyping and development

In the Box

M5Stack Cardputer Kit with M5StampS3 module

USB-C cable for power supply and programming

Quick start guide and documentation resources

Specifications

Operating Temperature

-20C to 85C (-4F to 185F)

Storage Temperature

-40C to 125C (-40F to 257F)

Humidity

5% to 95% RH (non-condensing)

Ordering Information

The M5Stack Cardputer Kit with M5StampS3 is available for purchase through authorized distributors and online marketplaces. Please refer to the manufacturer's website for the latest pricing and availability information.

Pin Configuration

  • M5Stack Cardputer Kit with M5StampS3 Pinout Guide
  • The M5Stack Cardputer Kit with M5StampS3 is a powerful IoT development board that combines the ease of use of a microcontroller with the flexibility of a modular design. The board features a range of pins that allow users to connect various peripherals, sensors, and modules to create a wide range of IoT projects. In this guide, we will provide a detailed explanation of each pin on the M5StampS3, including their functions and how to connect them.
  • Pinout Structure:
  • The M5StampS3 has a total of 24 pins, arranged in two rows of 12 pins each. The pins are labeled with a combination of letters and numbers, indicating their function and purpose.
  • Row 1:
  • 1. GND (Ground) Pin: This pin provides a common ground connection for the board and is used to connect to the negative terminal of a power supply or battery.
  • 2. VIN (Voltage Input) Pin: This pin is used to connect an external power source, such as a battery or wall adapter, to the board. The input voltage range is 3.3V to 5.5V.
  • 3. 3V3 (3.3V Regulator Output) Pin: This pin provides a regulated 3.3V output from the onboard voltage regulator, which can be used to power external components.
  • 4. UART_TX (UART Transmit) Pin: This pin is used for serial communication and transmits data from the microcontroller to an external device.
  • 5. UART_RX (UART Receive) Pin: This pin is used for serial communication and receives data from an external device.
  • 6. GPIO0 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 7. GPIO1 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 8. GPIO2 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 9. I2C_SDA (I2C Serial Data) Pin: This pin is used for I2C communication and transmits data between devices on the I2C bus.
  • 10. I2C_SCL (I2C Serial Clock) Pin: This pin is used for I2C communication and provides the clock signal for devices on the I2C bus.
  • 11. SPI_CS (SPI Chip Select) Pin: This pin is used for SPI communication and selects the active device on the SPI bus.
  • 12. SPI_CLK (SPI Clock) Pin: This pin is used for SPI communication and provides the clock signal for devices on the SPI bus.
  • Row 2:
  • 1. SPI_MISO (SPI Master In Slave Out) Pin: This pin is used for SPI communication and receives data from an external device.
  • 2. SPI_MOSI (SPI Master Out Slave In) Pin: This pin is used for SPI communication and transmits data to an external device.
  • 3. ADC_IN0 (Analog-to-Digital Converter Input 0) Pin: This pin is used for analog-to-digital conversion and measures the voltage level of an external signal.
  • 4. ADC_IN1 (Analog-to-Digital Converter Input 1) Pin: This pin is used for analog-to-digital conversion and measures the voltage level of an external signal.
  • 5. DAC_OUT (Digital-to-Analog Converter Output) Pin: This pin is used for digital-to-analog conversion and generates an analog output signal.
  • 6. GPIO3 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 7. GPIO4 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 8. GPIO5 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 9. GPIO6 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 10. GPIO7 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 11. GPIO8 (General Purpose Input/Output) Pin: This pin can be used as a digital input or output and can be configured for a variety of functions, such as button inputs, LED outputs, or sensor connections.
  • 12. RST (Reset) Pin: This pin is used to reset the microcontroller and can be connected to a button or switch to implement a manual reset function.
  • Connecting the Pins:
  • To connect the pins on the M5StampS3, you will need to use jumper wires, breadboards, or custom PCBs, depending on your project requirements. Here are some general guidelines to keep in mind:
  • Use the correct voltage levels: Make sure to use the correct voltage levels for each pin, as specified in the datasheet.
  • Use the correct pin configurations: Configure the pins according to your project requirements, such as setting them as inputs or outputs, or configuring them for specific communication protocols like UART, I2C, or SPI.
  • Use pull-up/pull-down resistors: Use pull-up or pull-down resistors to prevent floating inputs and ensure stable operation.
  • Use decoupling capacitors: Use decoupling capacitors to filter out noise and ensure stable power supply voltage.
  • By following these guidelines and understanding the functions of each pin, you can connect the M5StampS3 to a wide range of peripherals, sensors, and modules to create innovative IoT projects.

Code Examples

M5Stack Cardputer Kit with M5StampS3 Documentation
Overview
The M5Stack Cardputer Kit with M5StampS3 is an innovative IoT development board designed for rapid prototyping and project development. It integrates the M5StampS3 module, which is based on the ESP32-S3-WROOM module, providing Wi-Fi, Bluetooth, and various peripherals. This documentation provides an overview of the component, its features, and code examples to get you started.
Features
M5StampS3 module with ESP32-S3-WROOM
 Wi-Fi and Bluetooth capabilities
 Micro SD card slot for storage expansion
 USB-C interface for programming and power supply
 16MB Flash and 8MB PSRAM
 Support for various peripherals (I2C, SPI, UART, etc.)
Pinout
The M5StampS3 module has the following pinout:
| Pin | Function |
| --- | --- |
| GND | Ground |
| 3V3 | Power supply (3.3V) |
| EN | Enable pin (active low) |
| RX | UART receive pin |
| TX | UART transmit pin |
| SCL | I2C clock pin |
| SDA | I2C data pin |
| SPI_CS | SPI chip select pin |
| SPI_CLK | SPI clock pin |
| SPI_MOSI | SPI MOSI pin |
| SPI_MISO | SPI MISO pin |
| GPIO0-39 | General-purpose I/O pins |
Code Examples
### Example 1: Wi-Fi Connection and Web Server
This example demonstrates how to connect to a Wi-Fi network and create a simple web server using the M5Stack Cardputer Kit with M5StampS3.
```c
#include <WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char ssid = "your_wifi_ssid";
const char password = "your_wifi_password";
WiFiClient client;
ESP8266WebServer server(80);
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
  Serial.println("Starting web server...");
  server.begin();
  Serial.println("Web server started");
}
void loop() {
  server.handleClient();
}
void handleRoot() {
  server.send(200, "text/plain", "M5Stack Cardputer Kit with M5StampS3 Web Server");
}
void setup() {
  server.on("/", handleRoot);
}
```
### Example 2: I2C Communication with an external sensor (e.g., MPU6050)
This example demonstrates how to use the I2C interface of the M5StampS3 module to communicate with an external sensor, such as the MPU6050 accelerometer and gyroscope.
```c
#include <Wire.h>
#define MPU6050_ADDRESS 0x68
void setup() {
  Serial.begin(115200);
  Wire.begin();
  Serial.println("Initializing I2C...");
  Wire.beginTransmission(MPU6050_ADDRESS);
  Wire.write(0x6B); // PWR_MGMT_1 register
  Wire.write(0x00); // wake up device
  Wire.endTransmission(true);
  Serial.println("I2C initialized");
}
void loop() {
  Wire.beginTransmission(MPU6050_ADDRESS);
  Wire.write(0x3B); // ACCEL_XOUT_H register
  Wire.endTransmission(false);
  Wire.requestFrom(MPU6050_ADDRESS, 2, true);
  int16_t accX = Wire.read() << 8 | Wire.read();
  Serial.print("Acceleration X: ");
  Serial.println(accX);
  delay(500);
}
```
Note: These examples are for illustration purposes only and may require modification to suit your specific project requirements.
I hope this documentation helps you get started with the M5Stack Cardputer Kit with M5StampS3. For more information, please refer to the official documentation and datasheets provided by the manufacturer.