Device Type:misc
Electrical Standard:global
Board:esp32
Project URL:https://docs.m5stack.com/en/core/m5stickc_plus
M5Stack M5StickC PLUS
Product Images

GPIO Pinout
| Pin | Function |
|---|---|
| GPIO37 | Button A |
| GPIO39 | Button B |
| GPIO10 | Internal LED |
| GPIO09 | Infrared LED |
| GPIO13 | SPI CLK |
| GPIO15 | SPI MOSI |
| GPIO21 | I2C SDA |
| GPIO22 | I2C SCL |
| GPIO05 | Display CS |
| GPIO23 | Display DC |
| GPIO19 | Display Reset |
| GPIO00 | I2S CLK |
| GPIO26 | I2S LRCLK |
| GPIO35 | Microphone Data |
External Component
ESPHome AXP192 Component by martydingo
This custom component it to implement support for the AXP192 for both the M5Stick-C. It is required to turn on the backlight.
Example Configuration
substitutions:
devicename: m5stick
upper_devicename: M5StickC
esphome:
name: $devicename
platformio_options:
upload_speed: 115200
esp32:
board: m5stick-c
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: $devicename Fallback Hotspot
password: !secret wifi_password
captive_portal:
logger:
api:
ota:
platform: esphome
external_components:
- source: github://martydingo/esphome-axp192
components: [axp192]
# AXP192 power management - must be present to initialize TFT power on
sensor:
- platform: axp192
model: M5STICKC
address: 0x34
i2c_id: bus_a
update_interval: 30s
battery_level:
name: "M5Stick Battery Level"
id: "m5stick_batterylevel"
binary_sensor:
- platform: gpio
pin:
number: GPIO37
inverted: true
name: ${upper_devicename} Button A
on_press:
then:
- light.turn_on: led1
on_release:
then:
- light.turn_off: led1
- platform: gpio
pin:
number: GPIO39
inverted: true
name: ${upper_devicename} Button B
on_press:
then:
- light.turn_on: led1
on_release:
then:
- light.turn_off: led1
light:
- platform: monochromatic
output: builtin_led
name: ${upper_devicename} Led
id: led1
output:
- platform: ledc
pin: 10
inverted: true
id: builtin_led
remote_transmitter:
- pin:
number: GPIO9
carrier_duty_percent: 50%
spi:
clk_pin: GPIO13
mosi_pin: GPIO15
i2c:
- id: bus_a
sda: GPIO21
scl: GPIO22
scan: True
font:
- file: "gfonts://Roboto"
id: roboto
size: 12
# 1.14 inch, 135*240 Colorful TFT LCD, ST7789v2
display:
- platform: st7789v
model: TTGO TDisplay 135x240
cs_pin: GPIO5
dc_pin: GPIO23
reset_pin: GPIO18
rotation: 270
show_test_card: true
i2s_audio:
id: bus_i2s
i2s_lrclk_pin: G26
i2s_bclk_pin: G0
microphone:
- platform: i2s_audio
i2s_din_pin: GPIO34
i2s_audio_id: bus_i2s
adc_type: external
pdm: true
id: mic
Workaround for using devices powered with 5V on the HY2.0-4P port
The 5V power on the HY2.0-4P is fed by the axp192. Therefore these devices must be initialized some time after the axp192 has started.
i2c:
- id: bus_grove
sda: GPIO32
scl: GPIO33
scan: True
frequency: 100kHz
## Start after the axp192 has powered up
## In case an additional delay is needed this component may be helpful:
## https://github.com/ssieb/esphome_components/tree/master/components/boot_delay
setup_priority: 500
sensor:
## Example: anything connected to "i2c_id: bus_grove" should have a lower setup priority than bus_grove.
- platform: scd30
setup_priority: 490
i2c_id: bus_grove
address: 0x61
co2:
name: "CO2"
temperature:
name: "Temperature"
humidity:
name: "Humidity"