# Micronucleus

## Gravação do bootloader Micronucleus

Micronucleus é um bootloader desenvolvido para os microcontroladores AVR ATtiny que possuem restrição de interface USB, baseado na ferramenta de programação multiplataforma, o libusb, e com uma grande ênfase na compactação do bootloader, sendo o menor bootloader para microcontroladores AVR ATtiny.

Micronucleus é amplamente usado em milhares de dispositivos de hardware de código aberto: [https://github.com/micronucleus/micronucleus/blob/master/Devices\_with\_Micronucleus.md](https://github.com/micronucleus/micronucleus/blob/master/Devices_with_Micronucleus.md)

Ele é a opção ideal para a Franzininho e estamos trabalhando para padronizar esse bootloader para o nosso projeto (em andamento).

A seguir vamos exibir como você pode gravar o ATtiny85 para usar o Micronucleus.

## Materiais Necessários

* Arduino UNO
* Fios (Jumpers)
* Protoboard

## Circuito

Você precisará fazer a seguinte ligação do ATtiny85 no Arduino UNO:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuw3d7h6rPALWOr1%2Fbootloadermicronucleus-01.png?generation=1530492335357499\&alt=media)

Figura 1 - Circuito para Gravação

## Preparando o Arduino como Programador USB

O primeiro passo é configurar a placa Arduino UNO como programador ISP. Para isso acesse Arquivo-> Exemplos->ArduinoISP->ArduinoISP

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwENU7AwzHb88GC%2Fbootloadermicronucleus-02.png?generation=1530492335521109\&alt=media)

Carregue o sketch na Arduino UNO:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwGhQ5tGeWC0tmU%2Fbootloadermicronucleus-03.png?generation=1530492335239598\&alt=media)

## Baixando o firmware do Micronucleus

Pronto, agora precisamos baixar o binário do microconucleus para gravação no ATtiny85. Você pode clonar ou baixar o repositório do [micronucleus no github](https://github.com/micronucleus/micronucleus). Ou baixar esse ZIP:

[https://github.com/micronucleus/micronucleus/archive/master.zip](https://github.com/micronucleus/micronucleus/archive/master.zip)

Salve no seu computador, descompacte e ache a pasta: micronucleus\firmware\releases. Vamos usar o seguinte arquivo: t85\_default.hex

## Gravando no Windows

Abra o prompt de comando e vá até o diretório onde está o Arduino:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwJ6nzLi1cMnvlU%2Fbootloadermicronucleus-04.png?generation=1530492335235221\&alt=media)

Agora vamos preparar o comando para gravar usando o avrdude:

**C:\arduino-1.8.2\hardware\tools\avr/bin/avrdude** -C **C:\arduino-1.8.2\hardware\tools\avr/etc/avrdude.conf** -v -pattiny85 -cstk500v1 -P**COM3** -b19200 -Uflash:w:**C:\Users\fabio\Downloads\Arduino\micronucleus\firmware\releases/t85\_default.hex**:i

Você precisa substituir as partes em negrito no comando acima, conforme os caminhos para os arquivos em seu computador.

Verifique em qual porta a placa está conectada e substitua no comando **PCOM3**.

Certifique-se que a placa está conectada corretamente ao PC, assim como a ATtiny85 no Arduino Uno.

Copie o código, cole no prompt e pressione enter. Será iniciada a gravação:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuweusdu5DocQr1r%2Fbootloadermicronucleus-05.png?generation=1530492335352208\&alt=media)

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwgZsssJOFXFUiS%2Fbootloadermicronucleus-06.png?generation=1530492335372921\&alt=media)

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwizR61ccnSGAde%2Fbootloadermicronucleus-07.png?generation=1530492335266458\&alt=media)

Após a gravação do microcontrolador, você poderá retirá-lo da matriz de contatos e colocá-lo na Franzininho, mas lembre-se de colocar na posição correta.

## Gravando no Linux

Abra o terminal:

Agora vamos preparar o comando para gravar usando o avrdude:

**/home/fabio/Downloads/arduino-1.8.5/hardware/tools/avr/bin/avrdude** -C **/home/fabio/Downloads/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf** -v -pattiny85 -cstk500v1 -P/dev/**ttyACM0** -b19200 -Uflash:w:**/home/fabio/Downloads/micronucleus-master/firmware/releases/t85\_default.hex**:i

Você precisa substituir as partes em negrito no comando acima, conforme os caminhos para os arquivos em seu computador.

Verifique em qual porta a placa está conectada e substitua no comando **ttyACM0**. No meu caso está na ttyACM0 mas no seu computador pode ser diferente.

Certifique-se que a placa está conectada corretamente ao PC, assim como a ATtiny85 no Arduino Uno.

Copie o código e cole no terminal e pressione enter:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwuJcnEzXoPCknv%2Fbootloadermicronucleus-08.png?generation=1530492335420450\&alt=media)

Será iniciada a gravação:

![](https://873566167-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGCuY4CUT5YAR0EROdz%2F-LGNRu1e9ze-DtmLrdRj%2F-LGNRuwwVY9LtV6OnNKJ%2Fbootloadermicronucleus-09.png?generation=1530492335501204\&alt=media)

Após a gravação do microcontrolador, você poderá retirá-lo da matriz de contatos e colocá-lo na Franzininho, mas lembre-se de colocar na posição correta.
