O ESP-IDF (Espressif IoT Development Framework) é o principal framework para desenvolvimento com a linha completa de SoCs ESP32 da Espressif, incluindo o ESP32, ESP32-S, ESP32-C, ESP32-H e ESP32-P. Ele proporciona um SDK completo para criar aplicações nessas plataformas, utilizando linguagens de programação como C e C++.
Domine o desenvolvimento com ESP32 usando o ESP-IDF, o framework de desenvolvimento IoT oficial da Espressif! Torne-se um desenvolvedor profissional de ESP32. Saiba como aqui.
O ESP-IDF é compatível com Windows, Linux e Mac OS. No entanto, usuários do Windows 11 podem utilizar o ESP-IDF através do WSL (Windows Subsystem for Linux), abrindo diversas possibilidades para desenvolvimento. Essa alternativa simplifica a configuração do ambiente de desenvolvimento para ESP32, seja para testes, manutenção ou criação de novos projetos.
Este tutorial irá guiar você na instalação do ESP-IDF no WSL.
O que é WSL?
WSL (Windows Subsystem for Linux) é uma camada de compatibilidade que permite a execução de binários Linux nativamente no Windows 10 e Windows 11. Ele permite que os desenvolvedores usem um ambiente Linux completo sem a necessidade de uma máquina virtual, proporcionando acesso a ferramentas de desenvolvimento poderosas diretamente no Windows. Isso é especialmente útil para desenvolvedores que trabalham com sistemas embarcados no Linux, como o ESP-IDF.
Ferramentas necessárias para configurar o ESP-IDF no WSL
Para a instalação, configuração e uso do ESP-IDF no WSL, vamos precisar das seguintes ferramentas:
- Computador com Windows 11
- WSL 2
- Ubuntu on Windows using WSL
- usbipd-win
- ESP-IDF
Instalar o WSL
Primeiro, precisamos habilitar o WSL no Windows. Abra o PowerShell como Administrador e execute o seguinte comando:
wsl --install
Isso instalará o WSL e a distribuição padrão do Ubuntu. Se já tiver o WSL instalado, você pode atualizar para a versão mais recente com:
wsl --update
Se quiser instalar uma nova versão do Linux, você pode verificar a lista de distribuições disponíveis no WSL usando o PowerShell:
wsl -l -o

Para instalar uma distribuição específica, adicione o nome da distribuição ao comando:
wsl --install --distribution <NomeDaDistribuição>
Substitua <NomeDaDistribuição> pelo nome da distribuição Linux que você deseja instalar, como Ubuntu, Debian, Kali-Linux, etc. Exemplo:
wsl --install --distribution Ubuntu-22.04
Instalar e Configurar o usbipd-win
Para usar dispositivos USB, Serial ou JTAG no WSL, você precisa instalar o usbipd-win, uma ferramenta que permite que dispositivos USB sejam usados dentro do WSL.
Instalação
Abra o PowerShell como Administrador e execute o seguinte comando para instalar o usbipd-win:
winget install usbipd
Para verificar os dispositivos USB disponíveis, use o comando:
usbipd list
Para acessar o dispositivo desejado do Windows no WSL, o dispositivo deve estar vinculado com o usbipd. No PowerShell com direitos de administrador, digite o comando:
usbipd bind --busid <BUSID>
Substitua <BUSID> pelo identificador do dispositivo listado no comando anterior (por exemplo, 7-4, no meu caso):
usbipd bind --busid 7-4
Nota: este comando precisa ser usado apenas uma vez, a menos que o computador tenha sido reiniciado.
Após a vinculação, anexe o dispositivo especificado ao WSL com o comando abaixo, ainda no prompt de comando PowerShell:
usbipd attach --wsl --busid <BUSID>
No meu caso, ficou assim o comando:
Agora vamos verificar o dispositivo USB no WSL. No terminal do Ubuntu (WSL), verifique se o dispositivo USB está disponível:
dmesg | tail
Pronto, o dispositivo USB está pronto para ser acessado pelo Ubuntu.
Instalação do ESP-IDF no WSL
O processo de instalação do ESP-IDF no WSL segue o mesmo procedimento apresentado na documentação oficial da Espressif para instalação no Linux: Standard Toolchain Setup for Linux and macOS – ESP32 – — ESP-IDF Programming Guide v5.3 documentation
Abra o Ubuntu. É importante que antes de iniciar a instalação, você atualize os pacotes do sistema:
sudo apt update
sudo apt upgrade
Agora vamos instalar as dependências necessárias para o ESP-IDF:
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Em seguida, vamos clonar o repositório do ESP-IDF:
mkdir -p ~/esp
cd ~/esp
git clone -b v5.2.2 --recursive https://github.com/espressif/esp-idf.git
Após o download, execute o script de instalação das ferramentas usadas pelo ESP-IDF, como o compilador, depurador, pacotes Python, etc:
cd ~/esp/esp-idf
./install.sh
As ferramentas instaladas ainda não foram adicionadas à variável de ambiente PATH. Para tornar as ferramentas utilizáveis a partir da linha de comando, algumas variáveis de ambiente devem ser configuradas. O ESP-IDF fornece outro script que faz isso. No terminal onde você vai usar o ESP-IDF, execute:
source $HOME/esp/esp-idf/export.sh
Este comando irá configurar as variáveis de ambiente necessárias para que as ferramentas do ESP-IDF sejam utilizáveis a partir da linha de comando.
Pronto, seu ambiente está preparado para desenvolver com o ESP-IDF. Vamos desenvolver nosso “Hello, World!” por linha de comandos no IDF para validar nossa instalação e configurações.
Exemplo de aplicação com ESP-IDF no WSL
Vamos aproveitar o exemplo “Hello World” já disponível na pasta exemplos dentro do ESP-IDF. Vamos fazer uma cópia do exemplo:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
Agora, entre no diretório hello_world, defina o ESP32 como alvo (ou outro SoC que esteja usando):
cd ~/esp/hello_world
idf.py set-target esp32
Agora é só fazer o build da aplicação:
idf.py build
Para gravar os binários que você acabou de construir para o ESP32, execute o seguinte comando:
idf.py -p PORT flash
Substitua PORT pelo nome da porta USB correspondente à sua placa ESP32 (por exemplo, /dev/ttyUSB0). Se a PORT não for definida, o idf.py tentará se conectar automaticamente usando as portas USB disponíveis. O meu ficou assim:
Para verificar o funcionamento do “hello_world”, abra o monitor serial do IDF. Digite o seguinte comando (não se esqueça de substituir PORT pelo nome da sua porta serial):
idf.py -p PORT monitor
Este comando iniciará o monitor serial para que você possa ver a saída do seu programa “hello_world” na placa ESP32.
Será exibido o LOG da aplicação no console. Para sair do monitor IDF, use o atalho Ctrl+].
Maravilha! Se você conseguiu executar todos os passos até aqui, o seu WSL está pronto para ser usado como ambiente de desenvolvimento para o ESP-IDF.
Agora é com você.
Dica: Você também pode usar o VSCode para acessar o WSL e fazer o desenvolvimento usando os recursos da Extensão do IDF para VSCode.
Mas isso, assim como a instalação em outros ambientes e o uso do VSCode, eu mostro com mais detalhes na Academia ESP32 Profissional!
Venha se tornar um desenvolvedor profissional de ESP32 com a Academia ESP32 Profissional!
A Academia ESP32 Profissional oferece um curso completo e detalhado, cobrindo todos os aspectos do desenvolvimento com ESP32 usando o ESP-IDF. Não perca essa oportunidade de se especializar e dominar uma das plataformas mais usadas atualmente. Acesse Academia ESP32 Profissional e inicie sua jornada rumo ao domínio do ESP32!




