STACK & PLAY
Standard 5×5cm functionally stacking modularized components hardware system.
ESP32 microcontroller、 microSD card slot、USB-C、extension connectors.
The Stacking Functional MODULES Built for Customized Assembly.
Easy Deployment with multifunctional BASE.
STACK SERIES
5×5CM MODULAR STACKABLE
Standard Size
Better Display
User Friendly
For comprehensive application
STICK SERIES
COMPACT IoT SOLUTION
All-in-one
Best in Price
Low power consumption
For IoT edge application
ATOM SERIES
SMALL SIZE, BIG USE!
Smallest ESP32 devkit
IoT edge nodes
Miniature embedded device
For smart home and industry control application
FROM PROTOTYPING TO COMMERCIAL LEVEL
END TO END IoT EDGE SOLUTIONS
SMART FACTORY
Improving efficiency, preventing risks and delivering results with connected IoT devices.
SMART AGRICULTURE
Using sensors to collect data and using edge computing devices to analyze data, helps automate farming and breeding sectors.
SMART RETAIL
Obtain and analyze data about customer behavior; Automate shopping process and optimize shopping experience.
WEATHER STATION
Field ready data-collection solutions for environmental and meteorological monitoring.
WHY CHOOSE US?
FULL RANGE IoT MODULES
From the esp32-s3 controllers, arduino esp32, esp32 kits, esp32 camera, communication modules to the sensors including sensors like tof sensor and otherand actuators; high performance, high reliability, high scalability, and quick access to cloud platforms like Azure, AWS.
QUICK DEVELOPMENT AND VERIFICATION
Stackable standardization system to facilitate rapid concept proofing, rapid verification, and rapid shipment; ISO9001 international quality system certification, FCC, CE, TELEC product certifications to ensure timeline and quality.
TECHNICAL SERVICE
DOCS database, forums and etc provide technical services, UIFlow visual rapid development tools, complete API interfaces, greatly shorten the integration time, and help product mass production.
OPEN PLATFORM
Open-source hardware, open API interface, diverse cooperation forms, more cost-effective.
88
COUNTRIES
52668
GLOBAL DEVELOPERS
280
PRODUCTS
THE LATEST FROM M5STACK

Jan. 13, 2026 — M5Stack, a global leader in modular IoT and embedded development platforms, today launched StackChan, the first community-co-created open-source AI desktop robot, built on a proven ESP32 platform and designed to be endlessly hackable by makers worldwide.

 

Unlike closed, concept-driven AI robots, StackChan exposes its hardware, firmware, and interaction logic from day one — turning a playful desktop companion into a real development platform.

 

StackChan is now live on Kickstarter with a $65 Super Early Bird offer available for the first 72 hours.

 

 

From Community to the Globe: How StackChan Was Born

 

Before its official launch by M5Stack, StackChan had already existed as a community-driven project since 2021. Built on M5Stack standard controller, Core series, it began as a personal open-source project by maker Shinya Ishikawa, sustained and shaped through ongoing community contributions. 

 

As more enthusiasts joined the project, contributors like Takao, who helped popularize the DIY kits, and Robo8080, who introduced AI capabilities, played key roles in expanding StackChan beyond its original form. 

 

Inspired by StackChan’s expandability and creative potential, M5Stack officially brought the project to life as its first ready-to-play yet endlessly hackable desktop robot—while keeping its community-driven spirit at the core.

 

What Remains: Core Computing & Interaction Capabilities

 

As with the original version, StackChan continues to use the M5Stack flagship Core Series (CoreS3)as its main controller. CoreS3 is powered by an ESP32-S3 SoC with a 240 MHz dual-core processor, 16 MB Flash, and 8 MB PSRAM, and supports both Wi-Fi and BLE connectivity. 

To enable richer interactions, the main unit integrates a 2.0-inch capacitive touch display, a 0.3 MP camera, a proximity sensor, a 9-axis IMU (accelerometer + gyroscope + magnetometer). It also includes a microSD card slot, a 1W speaker, dual microphones, and power/reset buttons. Together, these hardware components form a solid foundation for StackChan’s audio-visual interactive experiences. 

For more technical details, please refer to the StackChan documentation: https://docs.m5stack.com/en/StackChan

 

What’s New: Ready-to-Play Functions Powered by Advanced Hardware

 

For the robot body, several advancements have been made to make it easier to get hands-on and improve the out-of-box experience. It features: 

Power & connectivity: A USB-C interface for both power and data, paired with a built-in 700 mAh battery.

Movement system: 2 feedback servos supporting 360° continuous rotation on the horizontal axis and 90° vertical tilt—enabling expressive movements with real-time position feedback.

Visual feedback: 2 rows totaling 12 RGB LEDs for expressive system and interaction feedback.

Sensors & interaction: Infrared transmission and reception, a three-zone touch panel, and a full-featured NFC module enabling touch- and identity-based interactions. 

On the software side, StackChan is ready-to-play for starters with no coding required. The pre-installed factory firmware delivers:

Expressive faces and motions: Preloaded with vivid facial expressions and coordinated movements that bring personality and liveliness to StackChan.

Built-in AI agent: Integrates an AI agent for natural voice-based interaction and conversational experiences.


 

App-based remote interaction: Supports official iOS app for video calls, remote avatar control, and real-time interaction with StackChan.

 

Chan-to-Chan Friends Map: Enables discovery of nearby StackChan devices, unlocking playful multi-device and social interaction scenarios.

 

Open for customization: While beginner-friendly by default, the firmware supports further development via Arduino and UiFlow2, making it easy to create custom applications.

 

100% Open-Source: Built to Be Customized and Extended

 

In an era filled with closed, concept-driven “AI robot” products, StackChan stands out with its open-source core. From firmware and hardware interfaces to development tools, every layer is designed to be explored, modified, and extended by users. 

Beyond code, StackChan also encourages physical customization. With 3D printing and creative accessories, users can personalize their StackChan’s appearance and turn it into a unique desktop companion. 

Open-source repository: https://github.com/m5stack/StackChan

Fun with Global Community: Share, Extend, and Evolve Together

 

Since its birth, StackChan has grown into a vibrant global community of makers, developers, and enthusiasts. From sharing projects and source code online to hosting meetups and anniversary events offline, the community continues to expand what StackChan can be. 

Owning a StackChan is not just about building a robot—it’s about being part of an open ecosystem where ideas and creativity evolve together. 

StackChan is not built to its end at launch. It is built to grow—through open technology, creative experimentation, and a global community that continues to redefine what a desktop robot can be. 

Discover your StackChan on Kickstarter now: https://www.kickstarter.com/projects/m5stack/stackchan-the-first-co-created-open-source-ai-desktop-robot?ref=d5iznw&utm_source=PR

When using M5Stack Modules or Bases, many users run into a common problem:

The same module, when stacked on different controllers (such as Basic, Core2, CoreS3, Tab5, etc.), uses different pin definitions. So, how should you correctly configure the pin numbers in your code?

If you have the same question, then understanding how the M5-Bus and DIP switches work is crucial.

This article will explain in a clear and practical way:

  • What is M5-Bus
  • Fixed Function Pins
  • What is a DIP Switch 

By the end, you could have a much clearer idea of how to set the DIP switches on the module, and how to configure the corresponding pin numbers in your program.

 

 

 

 

1. What is M5-Bus

M5-Bus is a stack expansion bus design adopted by M5Stack stacking series products (Module, Base). The interface uses 2x15P@2.54mm pin headers/sockets. The Core series controllers can quickly stack different modules via the M5-Bus to achieve functional expansion. Its fixed positions define power pins such as GND, 5V, 3V3, and BAT, ensuring compatibility with various devices; other pins vary depending on the controller model, so you need to configure your program according to the actual pin mapping.

 2. Fixed Function Pins 

The pin numbers of M5-Bus are fixed starting from the GND pin at the top left corner, numbered from 1 to 30. This sequence is consistent across all controllers. The pins marked with a red box are fixed-function pins (power and GND, etc.), while other pins may have different functions or GPIO mappings depending on the main controller.


3. What is a DIP Switch

A DIP Switch is a toggle switch. It is used to flexibly change the connection of key module pins to adapt to different controller models. For example, in the case of Module GPS v2.0, there are three switchable pins: TXD, RXD, and PPS. Two onboard DIP switches control which pins these signals are connected to.

DIP Switch1s switches 14 control TXD, switches 58 control RXD; DIP Switch2 is used to control PPS.

To avoid pin conflicts, typically each function pin only needs to be switched to one pin based on actual usage requirements. For example, in the following configuration, the 1st and 5th switches on DIP Switch1 are set to ON, the 2nd switch on DIP Switch2 is set to ON, and all other switches are set to OFF.

Based on the PCB silkscreen reference:

  • For Basic, the G17 pin; for Core2, the G14 pin; for CoreS3, the G17 pin will be connected to TXD.
  • For Basic, the G16 pin; for Core2, the G13 pin; for CoreS3, the G18 pin will be connected to RXD.
  • For Basic/Core2, the G35 pin; for CoreS3, the G10 pin will be connected to PPS.

When programming the device, you must modify the corresponding pin configuration according to the actual pin connections.


The DIP switchs corresponding positions and numbering connected to the M5-Bus are fixed (indicated by blue box).

If the PCB silkscreens I/O reference table does not include the controller model you are currently using, you can refer to the existing devices silkscreen PinMap to identify which M5-Bus pins the DIP switch connects to, and then map those to the corresponding pins of your current controller.


 4. Quick Question Time

When using Module LoRa868 with Tab5, and the DIP switches are set as shown in the picture, which Tab5 pins are used for NSS, BUSY, RST, and IRQ, respectively?


 Answer

5. Wrapping Up:

Treat the DIP Switch as a “Hardware-Level Remapping Tool”  

A DIP switch essentially gives you a form of hardware-level pin remapping:
The same module can be used with different Controllers, while routing key signals (TXD, RXD, PPS, etc.) to the most suitable GPIO pins.

In practice, if the module’s silkscreen or documentation already specifies how to set the DIP switches and which pins to use for your controller (for example, Core2, CoreS3), you can simply:

  • Set the DIP switches according to the instructions, and
  • Use the same pin numbers in your code as indicated in the documentation.

If your host controller is not listed, you can follow this simple procedure:

  • Check the module silkscreen/documentation
    Identify which function each DIP switch group corresponds to.
  • Refer to the Controller’s PinMap
    Find out which GPIO pins on your current Controller correspond to those M5-Bus pins.
  • Set the DIP switches
    Ensure that each functional signal is routed to exactly one target pin, avoiding conflicts or duplicate connections.
  • Update the pin definitions in your code
    Make sure the pins used for UART, interrupts, etc., match the GPIO pins you determined in the previous steps.

Once you understand this workflow, you no longer need to memorize which module “must be used with which Controller.”
Instead, you can flexibly migrate and reuse modules across different controllers, according to your actual needs.

Setting up a voice assistant doesn’t have to be complicated. At M5Stack, we’re proud to bring this capability closer to developers and makers with the M5Stack CoreS3—a powerful ESP32-S3 based controller with integrated display, rich interfaces, and cutting-edge performance.

With M5Stack CoreS3, you can seamlessly integrate advanced voice control into your Home Assistant ecosystem, enjoy real-time responsiveness, and experience true local AI interaction—secure, reliable, and fast.

The following guide walks you step-by-step through the process of setting up the CoreS3 HA Voice Assistant, from environment installation to voice activation.

 

1.Environmental installation

  • 3.In Settings -> Add-ons -> Add-ons STORE, install the ESPHome addon.
  • 4.After successfully installing the ESPHome addon, enable Show in sidebar in the ESPHome management page to add it to the left navigation bar.
🏷️ Note

The compilation of firmware was based on ESPHome 2025.9.0/2025.10.0. If you face issue when compiling the project, consider switching to these versions.

 2.Adding a Device

Open the ESPHome addon page and click NEW DEVICE in the lower-right corner to create a new device.


Click CONTINUE.

Select New Device Setup to create a new configuration file.

Give the configuration file a proper name.


Next, when selecting the device, cancel the Use recommended settings, then select ESP32-S3. Locate M5Stack CoreS3 among the list.

Copy the Home Assistant API Encryption Key for later use, then click Skip

3.Configuring the Device

Click EDIT in the lower-left corner of the device to modify the Wi-Fi connection configuration. (The Wi-Fi configuration defaults to the current HA server's Wi-Fi settings, but you can also modify it directly with plaintext: ssid:"xxxx")

Add the following package configuration link to add voice assistant functionality to the device.

packages: 
m5stack.cores3-voice-assistant: github://m5stack/esphome-yaml/common/cores3-satellite-base.yaml@main

Click SAVE and then INSTALL in the upper-right corner.

Select Manual Download to start compiling the firmware.

🏷️ Firmware Compilation Note:

Compiling firmware through HA can be resource-intensive. The first compilation may take a long time for resource downloads, depending on the device hosting the HA service and network quality.

4.Firmware Flashing

Saving the Firmware

  • 1.After firmware compilation is complete, click the Download button and select the Modern Format firmware to download to your local machine.
  • 2 Use the ESPHome Web flashing tool to flash the firmware, or use tools like esptool. The starting address for firmware flashing is 0x00.

🏷️ Note

You can click Open ESPHome Web link on download prompt

Connecting for Flashing

Connect the CoreS3 device to your computer via a USB-C cable and press and hold the reset button until the green light turns on, then release it to enter download mode.

In ESPHome Web, click Connect to connect to the device and select the corresponding device port.

Click INSTALL, upload the *.bin file previously compiled

Click INSTALL again to begin flashing

Wait until the flash is successful

5.Confirming the New Device Configuration

After firmware flashing, the device will automatically connect to Wi-Fi. The Home Assistant service within the same local network will prompt for a new device discovery. In Notifications, select the new device and click Check it out -> CONFIGURE, then follow the pop-up steps to add the device to the specified area to complete the configuration. If you do not receive a new device notification, click Settings -> Devices & services to view device status.

Then, you should be able to configure your Voice Assistant, or you can skip it and configure later

  • Test the wake word

  • Select an area

  • Select the pipeline

  • Finish the configuration


6.Waking Up the Device

After adding the device and completing the preparation steps for Home Assistant Cloud and Assist pipeline, you can now wake up the device using voice commands.

Demo video

With the steps above, your M5Stack CoreS3 has transformed into a fully functional Home Assistant voice terminal. Whether you use it to control lighting, monitor your environment, or communicate with other smart devices, CoreS3 bridges the gap between you and your smart home—bringing natural voice control to your fingertips.

M5Stack continues to empower developers with open, powerful, and beautifully designed hardware.
With CoreS3, you’re not just installing firmware—you’re giving your smart home a voice.