quarta-feira, 11 de março de 2015

Atualização do bootloader da Pro Micro

 A placa de desenvolvimento Pro Micro (compatível Arduino Leonardo)  é pequena, tem conector micro USB, tem baixo consumo de energia, em suma: ideal para de eletrônica vestível e de internet das coisas. 




Ela pode vir de fábrica com um bootloader desatualizado, que tem como característica demorar 8 segundos para executar o seu sketch depois de energizar a placa e depois do reset.

Dependendo do tipo de projeto isto é um problema, felizmente a nova versão do bootloader da Arduino Leonardo (que pode ser usado na Pro Micro) tem um comportamento um pouco diferente, mas que resolve este problema, quando você energiza a placa ela carrega seu sketch quase que imediatamente, e somente espera 8 segundos depois do reset. Mais informações aqui.

Para atualizar o bootloader em uma Arduino UNO ou Leonardo é fácil pois já existe um conector ICSP:




Neste link mais detalhes: atualização do bootloader


Mas para atualizar o bootloader da Pro Micro é necessário preparar um cabo que acesse os seguintes pinos:



Pinout da Pro Micro:


Eu resolvi soldar um cabo para que não ocorresse mal contato, mas de maneira superficial para facilitar a posterior retirada. A outra ponta deste cabo é um conector fêmea, para encaixar na no conector ICSP da USBtinyISP.




Com uma placa como a USBtinyISP (que você pode montar com as instruções deste link) é possível carregar o novo bootloader.

A posição do conector ICSP na USBtinyISP é indicada na figura abaixo:





Já com o cabo conectado é indicado o Vcc e o sinal MISO (pino1)



Agora basta abrir a IDE da Arduino (eu fiz este procedimento com a versão 1.6.0 e 1.6.1). Quando fiz no Linux (com root) funcionou perfeitamente.

Executando a IDE:

[user@localhost arduino-1.6.1]$ su root

[root@localhost arduino-1.6.1]# ./arduino 

Em Ferramentas, selecione a placa Arduino Leonardo:



Em Ferramentas, selecione o programador USBtinyISP:

Em Ferramentas, selecione Gravar Bootloader:



 irá demorar um pouco... mais ou menos um minuto para atualizar.

Gravação com sucesso:



IMPORTANTE: Tentei várias vezes este processo no Windows e sempre dava erro ao gravar o bootloader:

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7080
         0x00 != 0x30
avrdude: verification error; content mismatch


avrdude done.  Thank you.

Ainda não descobri a causa deste erro.