M5Core2

SKU:K010

Alert:
This web must be retained since it contains important information.

Tutorial

This tutorial will show you how to control M5Core2 devices through the UIFlow graphical programming platform
This tutorial will show you how to program and control M5Core2 devices through Arduino IDE
This tutorial will show you how to control M5Core2 devices through Micropython programming

Caution:
This product contains batteries that are non-replaceable

Description

M5Core2 is the second generation core device in the M5Stack development kit series, which further enhances the functions of the original generation of cores.

The MCU is an ESP32 model D0WDQ6-V3 and has dual core Xtensa® 32-bit 240Mhz LX6 processors that can be controlled separately. Wi-Fi are supported as standard and it includes an on board 16MB Flash and 8MB PSRAM, USB TYPE-C interface for charging, downloading of programs and serial communication, a 2.0-inch integrated capacitive touch screen, and a built-in vibration motor.

M5Core2 also features a built-in RTC module which can provide accurate timing. The power supply is managed by an AXP192 power management chip, which can effectively control the power consumption of the base and a built-in green LED power indicator helps to notify the user of battery level. The battery capacity has been upgraded to 390mAh, which can power the core for much longer than the previous model.

The M5Core2 retains the TF-card(microSD) slot and speakers. However, in order to ensure higher quality sound output, the I2S digital audio interface power amplifier chip is used to effectively prevent signal distortion. There are independent power and reset buttons on the left side and bottom of the base.

The 3 icons on the front of the screen are capacitive buttons which are programmable. There is a small expansion board on the back of the base with a 6-axis IMU sensor and microphone. The development platform and programming language supported by M5Stack Core2: Arduino, UIFlow (using Blockly, MicroPython language) No matter what level of your development and programming skills, M5Stack will help You gradually turn your ideas into reality.

Power Management

Operations:
Power on: One click the power button on the left
Power off: Long press the left power button for 6 seconds
Reset: Click the RST button on the bottom side

USB drive

Before using, please go to download page to download the USB driver that matches your operating system, and install it.
Note: Core2 currently has two CP2104/CH9102F A USB chip version, users can install the drivers (CH9102 and CP210x) that are compatible with two ICs at the same time to ensure that the device drivers work normally.

Extensions

To stack M5Core2 with M5 modules, you need to remove/eliminate the battery bottom of Core2; If you wish to keep I2S Mic, IMU and Battery functions, a M5GO Bottom2 is required.

The vibration sensor of M5Core2 and M5 Base series are incompatible in mechanical design. Please do not stack them together.

Some of the screen edges will have touch non-linearity problem, you can try to use M5Tool to upgrade the screen firmware to solve this problem.

This product contains batteries that are non-replaceable.

Product Features

  • ESP32-based, built-in Wi-Fi
  • 16M Flash,8M PSRAM
  • Built-in speaker, power indicator, vibration motor, RTC, I2S amplifier, capacitive touch screen, power button, reset button
  • TF card slot (16G Maximum size)
  • Built-in lithium battery, equipped with power management chip
  • Independent small board built-in 6-axis IMU, PDM microphone
  • M-Bus Socket & Pins
  • Compatible with multi-platform development:

Include

  • 1x M5Stack Core2
  • 1x Type-C USB(20cm)
  • 1x HEX KEY

Applications

  • Internet of things terminal controller
  • Stem education product
  • DIY creation
  • Smart home equipment

Specification

Resources Parameter
ESP32-D0WDQ6-V3 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi
Flash 16MB
PSRAM 8MB
Input Voltage 5V @ 500mA
Interface TypeC x 1, GROVE(I2C+I/0+UART) x 1
IPS LCD Screen 2.0"@320*240 ILI9342C
Touch Screen FT6336U
Speaker 1W-092
LED Green power indicator light
Button Power button, RST button, Virtual screen button*3
Vibration reminder Vibration motor
MIC SPM1423
I2S Power Amplifier NS4168
6-axis IMU MPU6886
RTC BM8563
PMU AXP192
USB Chip CP2104/CH9102F (two chip versions, there is no difference in function and use)
DC-DC Boost SY7088
TF card slot 16G Max
Lithium Battery 500mAh @ 3.7V
Antenna 2.4G 3D antenna
Operating temperature 0°C to 60°C
Base screw specifications Hexagon socket countersunk head M3
Internal PCB board reserved interface Battery interface (specification: 1.25mm-2P)
USB line interface (specification: 1.25mm-4P)
Net Weight 52g
Gross Weight 76g
Product Size 54 x 54 x 16.5mm
Package Size 75 x 60 x 20mm
Case Material Plastic ( PC )

Driver Installation

Click the link below to download the driver that matches the operating system. There are currently two driver chip versions, CP210X (for CP2104 version)/CP34X (for CH9102 version) driver compressed package. After decompressing the compressed package, select the installation package corresponding to the number of operating systems to install. (If you are not sure of the USB chip used by your device, you can install both drivers at the same time. During the installation process of CH9102_VCP_SER_MacOS v1.7, an error may occur, but the installation is actually completed, just ignore it.) When using it, if If the program cannot be downloaded normally (the prompt is overtime or Failed to write to target RAM), you can try to reinstall the device driver.

Driver name Applicable driver chip Download link
CP210x_VCP_Windows CP2104 Download
CP210x_VCP_MacOS CP2104 Download
CP210x_VCP_Linux CP2104 Download
CH9102_VCP_SER_Windows CH9102 Download
CH9102_VCP_SER_MacOS v1.7 CH9102 Download

EasyLoader

EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification.

Download Windows Version Easyloader Download MacOS Version Easyloader

Description:
This case will perform hardware running tests for speakers, wifi, buttons, accelerometer, TF-card(microSD), screen, etc.

PinMap

LCD & TF card

LCD :320x240 TF card Maximum size 16GB

ESP32 Chip GPIO38 GPIO23 GPIO18 GPIO5 GPIO15
AXP192 Chip AXP_IO4 AXP_DC3 AXP_LDO2
ILI9342C MISO MOSI SCK CS DC RST BL PWR
ESP32 Chip GPIO38 GPIO23 GPIO18 GPIO4
TF Card MISO MOSI SCK CS

CAP.TOUCH (I2C Addr: 0x38)

ESP32 chip GPIO21 GPIO22 GPIO39
AXP192 AXP_IO4
FT6336U SDA SCL INT RST

Mic & NS4168(Speaker)

ESP32 Chip GPIO12 GPIO0 GPIO2 AXP_IO2 GPIO34
NS4168 BCLK LRCK DATA SPK_EN
Mic CLK DATA

AXP Power Indicator Light

AXP192 AXP_IO1 AXP_LDO3
Green LED Vcc
Vibration motor Vcc

RTC

ESP32 Chip GPIO21 GPIO22
AXP192 AXP_PWR
BM8563 SDA SCL INT

IMU(3-axis gyroscope & 3-axis accelerometer)

ESP32 Chip GPIO21 GPIO22
MPU6886 SDA SCL

USB to serial chip

ESP32 Chip GPIO1 GPIO3
CP2104/CH9102F RXD TXD

Internal I2C connection

ESP32 Chip GPIO21 GPIO22
MPU6886 SDA SCL
AXP192 SDA SCL
BM8563 SDA SCL
FT6336U SDA SCL

M5Core2 M-BUS Schematic diagram

M5Core2 BUS(compared to M5Stack)

M5PORT DEFINE
PORT PIN Note:
PORT-A(Red) 32/33 I2C
PORT-B(Black) 26/36 DAC/AD
PORT-C(Blue) 13/14 UART

ESP32 ADC/DAC

ADC1 ADC2 DAC1 DAC2
8 channels 10 channels 2 channels 2 channels
G32-39 G0/2/4/12-15/25-27 G25 G26

For more information about Pin assignment and Pin Remapping, Please refer to ESP32 Datasheet

Charging current measured value

charging current Fully charged current(Power OFF) Fully charged current(Power ON)
0.219A 0.055A 0.147A

Schematic

Product Size

module size

Example

Arduino

Tutorial

The book " ESP32 formats and communication protocols " features the M5Stack Core2 module in several Chapters. The M5Stack Core2 module incorporates a touch LCD screen, Bluetooth and Wi-Fi communication, a microphone and speaker, as well as an accelerometer and gyroscope, making the M5Stack Core2 module extremely versatile. The book build projects using communication protocols ranging from those connecting your smart watch to your mobile phone (BLE) to long range communication with satellites circling above the Earth (LoRa) and transmission of audio signals between devices (I2S). QR codes are used to control external devices over the internet, while the ESP-MESH and ESP-NOW protocols enable communication between microcontrollers without an internet connection.

Learn

Health monitoring using the M5Stack Mini Heart Rate Unit and Non-Contact Infrared Thermometer Unit and the Waylay IO IoT platform.
I made one-wheel balancing robot. This robot can be operated remotely from a smartphone using Blynk.
Modern times make modern solutions possible. Therefore, the step to a digital snow globe is not that far.
Developing a simple remote for my openhub, I have got the app but do not want to unlock my phone, open the app to do stuff

Version Change

Release Date Product Change Note:
2020.6 Initial public release< /
2021.7 USB Chip changed from CP2104 to CH9102F The actual delivery has two chip versions, CP2104/CH9102F, and there is no difference in function and use
2023.27 Cancel RTC coin cell batteries Does not affect the timing function
2023.10 Lithium battery capacity changed to 500mAh /

FAQ

Q: If the memory card fails to read, you can add the following code in the initialization to increase the host memory card reading ability.

for (auto gpio : (const uint8_t[]){18, 19, 23}) {
   *(volatile uint32_t*)(GPIO_PIN_MUX_REG[gpio]) |= FUN_DRV_M;
   gpio_pulldown_dis((gpio_num_t)gpio);
   gpio_pullup_en((gpio_num_t)gpio);
 }

Q: How to detect the power level of core2?


#include <M5Core2.h>

void setup() {
  M5.begin();
}
void loop() {
  Serial.printf("Bat Voltage:%f\n", M5.Axp.GetBatVoltage());
  delay(500);
}

Q: How do I display pictures on CORE2? (Using C language)

    1. Create a 320*240 pixel jpg image named logo.jpg.
    1. Download the source files , unzip them, open the folder, execute .\conver.ps1 in the terminal, and replace the result in the array of the source file below.
    1. Open the drawImageData_core2_Pure.ino program, and replace the binary result obtained above into the array below.
    1. Upload the program. The result is as shown in the image below:
      module sizemodule sizemodule size