terça-feira, setembro 24, 2024

Arduino Nano ESP32: Mini-Review e como Resolver o "No capable DFU device available"

Seguindo nesta minha fase de brincar com plaquinhas com ESP32, a placa da vez é a Arduino Nano ESP32. Ela é uma placa recente (lançada em 2023) e é a primeira placa da Arduino onde o ESP32 é o microcontrolador principal (tem outras onde ele é usado apenas para comunicação wireless).


Características

O formato físico e pinagem seguem o padrão das placas Nano.

Como outras placa Nano "modernas", a Nano ESP32 usa um módulo da UBlox, no caso um NORA-W106-10B que contém um ESP32-S3 e 8M de PSRAM. A  Flash é externa ,de 16M.

A placa tem o botão de Reset, mas não tem botão de Boot (o equivalente é colocar em curto os pinos B1 e GND, o que pode ser feito com uma pinça de ponta fina).

Temos dois LEDs, um RGB "não endereçável", que usa três I/Os, e um LED normal.

O conector USB é USB-C, ligado à USB Nativa do ESP32-S3.

"No capable DFU device available"

Como parte da minha rotina para placas novas, eu quis rodar um software meu. No caso adaptar um software que eu tinha feito para controlar remotamente uma fita LED com um ESP32-C3. O software tinha sido feito com a IDE Arduino.

Existem duas opções de suporte ao Nano ESP32 na IDE Arduino: o pacote da Arduino e o da Espressif; O pacote Arduino é um fork de uma versão antiga da Espressif. Em princípio as alterações da Arduino estão na versão atual da Espressif (e eu já tinha ela instalada), então a minha opção foi simples (e errada).

Antes de contar a minha história, vamos ver como fazer direito. O ponto principal é que a Arduino optou por fazer a carga do software através do recurso DFU. Para funcionar, o micro precisa reconhecer um device DFU na USB. Para isso:

  • Instale o pacote "Arduino ESP32 Boards" pela IDE, antes de conectar a placa. No Windows isto instalará o driver para o device DFU.
  • Conecte a placa e confira no Device Manager que o device DFU foi reconhecido (se não foi, leia as instruções adiante).
  • Nas configurações no menu Tools:
    • selecione a  placa "Arduino ESP32 Boards" / "Arduino Nano ESP32".
    • selecione a porta serial. Cuidado que aparece também o dispositivo DFU.
    • no "USB Mode" deve estar selecionado "Normal mode (TinyUSB)"
    • ative também a opção esptool no Programmer

E se não apareceu o device DFU? Este dispositivo é criado pelo bootloader do Arduino. Se você gravou um software gerado com o pacote da Espressif ou apagou a Flash (por exemplo, instalou o MicroPython) é preciso re-gravar o bootloader na raça, o que é descrito aqui. Um ponto importante, que não está nestas instruções, é seleciona o "USB Mode" com "Normal mode (TinyUSB)". Pode ser necessário fechar e re-abrir a IDE para que ela reconheça o device DFU.

Porque dá problema com softwares gerados pelo pacote da Espressif? Boa pergunta, no momento eles estão investigando. Talvez seja algo só sob Windows. O mais esquisito é que ele se manifesta depois que você desconecta e reconecta a placa.

No meu caso, eu não tinha instalado o pacote da Arduino, então não tinha o driver. Depois eu mudei o USB Mode e aí para frente a coisa foi ficando cada vez mais confusa. Tem vários relatos na internet, mas nenhum deles fala neste problema no pacote da Espressif.

Preço

Em uma avaliação que eu achei, falavam que esta é placa mais barata da Arduino com conectividade WiFi. O preço de lista lá fora é 22 euros! Aqui no Brasil, no momento a Maker Hero (distribuidora oficial) está vendendo por algo em torno de R$220.

Veredito

A Arduino Nano ESP32 é bem poderosa (ESP32-S3, 16M de Flash, 8M de PSRAM), mas pobre nos adicionais (nem o botão de BOOT colocaram). Dá para achar alternativas chinesas com especificações semelhantes pela metade do preço. Ou seja, você vai pagar bastante pela qualidade, garantia de origem dos componentes e pelo logo da Arduino.

Os meus problemas na carga de software também reduziram o meu entusiasmo por esta placa.

Se você for fã da Ardino, estiver precisando de uma placa com ESP32-S3, bastante memória e boa qualidade e preço não for problema, esta placa é para você!

Disclaimer: Eu ganhei esta placa em troca de um artigo para a Maker Hero.

Nenhum comentário: