Quando se tem várias placas Arduino para carregar com o mesmo programa, pode ser interessante carregar diretamente o arquivo compilado HEX. Isto tem duas vantagens: poupa tempo de upload e permite que terceiros carreguem um programa sem utilizar a IDE do Arduino.
Não é algo que se precise fazer todos os dias, mas vou mostrar um método para gerar o arquivo HEX e carregá-lo para o microcontrolador Arduino. O método pode ser adaptado para outros microcontroladores, como o ESP8266 e ESP32, com outras ferramentas.
Gerar o arquivo HEX com a IDE do Arduino
No software Arduino, vá para o menu Arquivo e depois Preferências.
Selecione as caixas “resultados detalhados durante” para compilação e o upload (Verbose mode)

Selecione a entrada e o tipo de placa para a qual pretende carregar o programa.
Quando clicar em Compilar ou Upload, a IDE do Arduino criará um arquivo build na pasta AppData\Local\Temp\ onde está localizado o arquivo HEX. O nome do arquivo pode ser encontrado no painel da IDE no momento da compilação ou do upload.
Depois da compilação:

Depois de um upload:

Pode copiar o arquivo HEX então gerado para outro lugar do seu computador.
Carregar o arquivo HEX usando o prompt de comando do Windows
Depois de lançar o upload na IDE do Arduino, obtemos o comando de upload.

Pode copiar esta linha para o prompt de comando, para carregar o programa para o microcontrolador. Não se esqueça de modificá-la com o novo caminho do arquivo HEX e de acrescentar aspas em torno dos caminhos que contêm espaços.

Em seguida, aperte “Enter” para carregar o programa. (Dica: uma vez conhecido o comando, pode criar um arquivo bash para automatizar o processo).

Obs: Se quiser carregar arquivos HEX a partir de outro computador (notadamente se a IDE do Arduino não estiver instalada), não se esqueça de instalar os drivers necessários para o reconhecimento dos microcontroladores.
Upload do arquivo HEX com o XLoader
Faça o download do software XLoader.
Execute o arquivo executável XLoader.exe

Selecione a entrada do microcontrolador, que pode encontrar no gerenciador de dispositivos.

Selecione a baudrate correta. No nosso caso, 115200.
Depois, selecione o arquivo HEX no local onde o salvou.

Pode então clicar em “Upload” para carregar o arquivo.
