Perdi umas horas com um caso com arduinos que merece ser relatada.
Copiar um projeto Arduino com código no github para um colega que não percebe da coisa - Tudo OK.
Decidi fazer a coisa pequena e bonita, porque me dá gosto. Implica passar de um arduino Uno (GIGANTE) no original para um pro-mini que tinha "em stock". Os que tenho são 3.3V 8Mhz, mas correm bem a 5V se alimentar depois do regulador, e os 8MHz o compilador resolve.
Fios ligados, tudo bonitinho, testes correm bem, vamos lá compilar o código do Github para meter no pro-mini.
Não cabe! Quê?!?! Deixa experimentar num Uno: tudo OK!. O Uno tem 32K vagos, o pro-mini "só" 30k!
Toca a investigar, é do bootloader. O Uno tem optiboot que ocupa 0,5kb, o pro-mini tem um qq que ocupa 2k.
Ok, toca a meter optiboot no pro-mini. O Arduino tem .hex de todos os bootloaders, deve ser fácil... oops, não tem optiboot para o pro-mini, nem parecido para 8MHz. Não faz mal, tem o código, makefiles e batch, é só correr... ooops, não encontra o "make"?!?! Ok, a última versão do Arduino que tinha o "make" era o 1.0.6, de 2015... saca-se o necessário, e compila-se... ooops, o bootloader ficou com mais de 512bytes?!? pois, não basta o make, tem de ser a toolchain completa que mudaram as otimizações.
Ok, bootloader na mão, como meto isto no pro-micro? Tenho um USB ASP antigo, siga para bingo. NOPE. Instala drivers. NOPE. Se lixe , uso o UNO como ISP ("Arduino as ISP"). Bootloader no pro-micro. Festa!!!
Vamos meter o código: ainda não cabe??? Pois, tenho de mudar o boards.txt. Já cabe!!! Carrega lá o código. NOPE. GRRRRRR
Não consigo falar com o pro-micro para o programar. Pois, que fez o makefile do optiboot esqueceu-se que a 8MHz não se consegue falar a 115200, tem de ser 57600. Novo .hex, nova programação de bootloader, corrigir boards.txt e meter o projeto...
FUNCIONA!
Arduino torna tudo tão fácil....
(perdi umas 6 horas com isto, e poupei os detalhes de ligar e desligar fios 30 vezes, e pesquisas e tentativas-erro para dar com o que se estava a passar)