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 com um ESP32 ou um gravador de BIOS CH340A.
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 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 no menu "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.