Poodle Toy
A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.
Programando
A programação do Poodle Toy é realizada por meio do bootloader Mcuboot, que deve ser previamente gravado na memória da placa.
Método Manual
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de DIR
mkdir arduino-puppy
cd arduino-puppy
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr
cd ArduinoCore-zephyr
extra/boostrap.sh
extra/build.sh poodle-toy-v1
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com sudo apt install arduino.
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core
cd ~/Arduino
mkdir -p hardware/arduino-git
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas->Placa->Arduino Zephyr Boards (BETA)(in sketchbook)->Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch->Exportar Binário Compilado.
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.
mcumgr upload --conntype=serial --connstring="/dev/ttyUSB0,baud=115200" ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.