Starter ESPHome config
Built from the pinout above. Keys and the Wi-Fi password come from secrets.yaml in ESPHome. Check the pins against your hardware revision before flashing: one model can ship with different boards.
substitutions:
name: m5stack-cores3
esphome:
name: ${name}
friendly_name: "M5Stack CoreS3"
esp32:
board: esp32dev
logger:
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap: {}
captive_portal:
binary_sensor:
- platform: gpio
pin:
number: GPIO21
mode: INPUT_PULLUP
inverted: true
name: "Button 1" # Touchscreen IRQ
- platform: gpio
pin:
number: GPIO12
mode: INPUT_PULLUP
inverted: true
name: "Button 2" # Internal I2C SDA (PMU, touch, IMU, AW9523)
# Other pins from the pinout:
# GPIO3: Display CS
# GPIO35: Display MISO / D-C (3-wire)
# GPIO36: Display/SPI SCLK
# GPIO37: Display/SPI MOSI
# GPIO4: microSD CS (shares SPI bus)
# GPIO11: Internal I2C SCL
# GPIO2: Grove Port A SDA
# GPIO1: Grove Port A SCL
# GPIO9: Port B
# GPIO8: Port B
# GPIO18: Port C
# GPIO17: Port C
# GPIO0: I2S MCLK (microphone codec)
# GPIO14: I2S DATA IN (microphone codec)
# GPIO13: I2S DATA OUT (speaker)
# GPIO33: I2S LRCK (mic + speaker)
# GPIO34: I2S BCLK (mic + speaker)
How to flash
- Most devices are flashed over UART: a 3.3 V USB-TTL adapter to RX, TX, GND and 3V3, holding GPIO0 to ground at power-on (ESP8266/ESP32). Mains power disconnected.
- Beken (BK72xx) and Realtek chips are flashed with ltchiptool, or with cloudcutter without opening the case if the firmware allows it.
- Details and board photos: the device page in the ESPHome database.
A config from scratch: ESPHome generator. Which pins are safe: pinout.