← ESP32: Zero to First Flash

Install ESPHome and meet your toolchain

10 min

Why ESPHome

Most Latent solutions are ESPHome configs: you describe the device in YAML — pins, sensors, WiFi — and ESPHome compiles real C++ firmware from it. No programming needed to start, and the configs remain readable years later.

Install

ESPHome is a Python tool. Python 3.11 is the well-trodden path:

python3 -m venv ~/esphome-env
source ~/esphome-env/bin/activate
pip install esphome
esphome version

Use a virtual environment (as above) so ESPHome never fights your other Python tools.

The three commands you will actually use

esphome run config.yaml       # compile + flash + show logs (the main one)
esphome logs config.yaml      # just watch a running device's logs
esphome compile config.yaml   # build without flashing

secrets.yaml

Configs reference credentials like !secret wifi_ssid. Next to each config, keep a secrets.yaml:

wifi_ssid: "MyNetwork"
wifi_password: "correct horse battery staple"

Never share secrets.yaml. When you publish a config on Latent, the !secret references stay in — that is exactly the point: configs are shareable, secrets are not.

USB drivers

Modern S3 boards use native USB and need no driver on macOS/Linux. On Windows, if no COM port appears, install the CP210x or CH340 driver depending on the board's USB chip.


Sign in to use this feature — it takes 20 seconds and it’s free. Sign in Next lesson →