Olá a todos!
Bom tenho um Arduino há menos de uma semana e infelizmente já tive de reprogramar o bootloader!
Estava eu muito bem a testar algumas coisas e a ver as capacidades do Arduino, ja que o TigPT tanto insistia para que eu o experimentasse

(eu costumo trabalhar com PICs). Continuando... Experimentei fazer umas coisas com i2c e criei um array de dimensões razoáves (~<4kbytes). Ao mandar isto para o Arduino reparei que estava a demorar demais a enviar o código. Ao fim de 1 minuto e tal a enviar lá se deu por concluído, mas... Agora o Arduino estava todo maluco! Quando fazia reset, o Led PIN nao parava de piscar e a um ritmo estonteante, sempre que tentava descarregar algum código para lá o programa dizia que lia 0x24 e esperava 0x51 e assim nem programar conseguia!
Nos tempos em que queimava PICs "como quem troca de cuecas"

, percebi logo que o bootloader tinha ido de c****** ops xuxu, mas porque? Acontece que o programa Arduino tem um bug e não lida bem com arrays muito grandes (ate já o TigPT pode constatar comigo, ontem com dois arrays de uns 400 bytes cada, estes ficavam sobrepostos durante a compilação). Esta situação é agrava quando se usa i2c no mesmo código.
O programa ao compilar o meu código gerou um ficheiro hex com quase 1 MB, conseguem imaginar isso? Ao descarregar isto tudo para o Arduino o bootloader desapareceu e assim Arduino, "Adios Adieux Aufidersein Goodbye, lala".

Como gosto de fazer tudo à manapula e nem o programador de PICs comprei, decidi começar a ver esquemas de programadores de AVR para poder flashar o bootloader do Diecimila (=Duemilanove). Encontrei este site
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html que até já tinha sido referido aqui e pensei, "oh ouro sobre azul" e fiz logo o que eles mostravam.
Senti alguma dificuldade em soldar 4 os pinos X3 pois um dos buracos ainda não era buraco

! Ultrapassado este problema foi so ligar os fios. Recomendo que usem uma daquelas pontas de ligar USBs à motherboard que vagueiam lá por casa, liguem os fios aos pinos X3 seguindo o esquema da na imagem em anexo.
De seguida é so executar os passos que o tipo diz la no site e já está, Arduino está de volta! Foi bastante simples!
Durante o processo ele pede para se alterar um ficheiro e adicionar umas coisas etc, para isso deixo um RAR já com tudo e com um .bat e assim é só executar o bat e "dar" ok, contudo sigam o tutorial da página
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html para garantirem que está tudo ok. Se não se sentirem a vontade com o bat copiem os comandos da página
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html.
Alterando apenas o ficheiro .conf e algumas ligações é possivel programar qualquer AVR e Também é possível flashar qualquer bootloader!

Cumprimentos,
Tr3s
Nota: isto só funciona em Windows! Para usar em outras plataformas instalem uma máquina virtual com windows.
Nota: Ah se quiserem um programador de PIC por porta COM usando apenas 3 resistências é só pedir!