Como gravar Bootloader do Arduino UNO – Atmega328
Se você deseja desenvolver seu próprio Arduino UNO, precisa substituir o chip Atmega328 da sua placa ou possui um UNO que esteja com o Bootloarder ruim, então este tutorial é para você.
Este tutorial ensinará o que é um Bootloader, porque você precisa instalá-lo ou reinstalá-lo e como fazer usando uma placa Arduino UNO.
BOOTLOADER
Quem já usou as placas Arduino sabe como é simples programá-las por meio do Arduino IDE utilizando a comunicação serial. Basta conectar a placa à porta USB do computador e clicar na opção “Upload” para iniciar a transferência do sketch para a memória flash do computador.
Esta facilidade acontece graças a um código especial, chamado Bootloader, que é executado sempre que a placa é inicializada. O Bootloader é muito semelhante ao BIOS que é executado em seu computador e basicamente executa duas tarefas:
- Verifica se o computador está tentando programar o microcontrolador. Se sim, ele aceita o código e o armazena em um local específico na memória do microcontrolador de forma que o próprio bootloader não seja sobrescrito;
- Instruir o chip a executar o código já armazenado na memória.
Existem muitas maneiras de gravar o Bootloader no Arduino UNO. Uma delas é via ISP (In System Programmer) utilizando outra placa Arduino que possua o Bootloader gravado. Esta maneira será detalhada a seguir.
MATERIAIS NECESSÁRIOS
ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES
Monte atentamente o circuito da Figura 1 utilizando os jumpers macho-macho e as 2 placas UNO. Note que apenas o Arduino com que se encontra com o Bootloader gravado deve estar conectado ao cabo USB.
![A imagem mostra de maneira ilustrativa o esquematico de ligação entre os 2 Arduinos, para que se tenha a gravação do bootloader.](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-1-Circuito-para-gravar-bootloader-no-Arduino-Uno.png?resize=1024%2C576&ssl=1)
- Abrir a Arduino IDE e abrir o código de gravação
Para gravar o Bootloader para o Arduino UNO, vamos utilizar um código exemplo já disponível no próprio Arduino IDE. Este código pode ser acessado através do seguinte caminho: Arquivo > Exemplos > 11.ArduinoISP > ArduinoISP), conforme a Figura 2.
![A imagem mostra uma captura de tela na arduino IDE, especificando o local onde o exemplo que será utilizado se encontra.](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-2-Caminho-de-acesso-ao-codigo-exemplo-ArduinoISP.png?resize=559%2C367&ssl=1)
2. Definir a placa que será usada
Logo após abrir, devemos selecionar a placa que iremos utilizar. Em nosso caso, iremos selecionar a placa Arduino UNO no menu Ferramentas > Placas, conforma a Figura 3.
![A imagem mostra uma captura de tela da Arduino IDE, especificando o caminho para trocar a placa para "Arduino Uno"](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-3-Selecao-da-placa-Arduino-Uno.png?resize=567%2C335&ssl=1)
3. Transferir o código para a placa conectada
Com a placa já definida, transfira o código para a placa Arduino UNO com Bootloader, conforme a Figura 4.
![A imagem mostra uma captura de tela onde o código é compilado e enviado para o Arduino UNO](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-4-Upload-do-codigo-para-o-Arduino-UNO.png?resize=567%2C449&ssl=1)
4. Alterar o programador para o modo ISP
Para que o Arduino UNO consiga gravar o Bootloader no Arduino de destino, precisamos alterar o modo Programador para “Arduino as ISP”. Para tal, acesse o menu Ferramentas > Programador, conforme Figura 5.
![A imagem mostra uma captura de tela da arduino ide, com o caminho para altera o programador para "Arduino as ISP" e gravar o bootloader](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-5-Programador-modo-Arduino-ISP.png?resize=567%2C447&ssl=1)
5. Realizar a gravação do Bootloader
Por fim, com tudo configurado, basta acessar no menu Ferramentas a opção Gravar Bootloader, conforme a Figura 6.
![A imagem mostra uma captura de tela da Arduino IDE, sinalizando onde se deve clicar para que se tenha a gravação de bootloader](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-6-Opcao-Gravar-Bootloader.png?resize=567%2C311&ssl=1)
Após mandar o comando para gravar, basta aguardar para que toda a gravação seja concluída.
![A figura mostra uma captura de tela que sinalizar que a gravação de bootloader ocorreu com sucesso](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-7-Gravacao-do-Bootloader-concluida.png?resize=575%2C454&ssl=1)
Você precisará gravar o Bootloader apenas uma vez. Após a gravação, você pode remover os jumpers e programar sua placa normalmente.
Espero ter ajudado,
Obrigado a todos e em caso de dúvidas deixe seu comentário abaixo!
Att. Jonas Souza
REFERÊNCIAS
ARDUINO. Arduino as ISP and Arduino Bootloaders. Disponível em: <https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP>. Acesso em: 05 out. 2022.
Graduando em Engenharia Elétrica.