Gravação do firmware¶
Este documento contém instruções para compilar e gravar o bootloader Katapult para o microcontrolador iHeater. O bootloader Katapult permite gravar o firmware Klipper via USB e também contém a documentação para instalar o firmware Klipper no controlador iHeater.
O que será necessário¶
- STM32F042F6P6
- Placa iHeater
- Cabo USB
- Sistema Linux (por exemplo, Raspberry Pi ou impressora)
Se não for possível compilar e gravar o firmware na impressora
Compilação do Katapult¶
- Clonar o repositório Katapult:
- Em
menuconfig, selecionar:
- Compilação:
O firmware será criado em out/katapult.bin.
Gravação do Katapult via DFU¶
Esta etapa é necessária apenas uma vez, para gravar o próprio Katapult.
Preparação:¶
Instalar o utilitário dfu-util, caso ainda não esteja instalado:
sudo apt install dfu-util
De acordo com a versão da placa:
Instalar o jumper em BOOT0 e reiniciar a alimentação da placa (ou pressionar o botão RESET). O microcontrolador será iniciado no modo DFU.
Pressionar o botão BOOT, reiniciar a alimentação da placa (ou pressionar o botão RESET) e soltar BOOT. O microcontrolador será iniciado no modo DFU.
Verificar a conexão:
lsusb
Resultado:
ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Gravação do Katapult:¶
Entrar no modo DFU.
Executar o comando:
Exemplo de gravação bem-sucedida:
Downloading to address = 0x08000000, size = 4968
Download [=========================] 100% 4968 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Sair do modo DFU.
Após reiniciar
Resultado:Se não houver permissões, podem ocorrer erros durante a gravação; para obter acesso, execute o comando:
se algo der errado
apague a memória do MCU e repita as etapas anteriores
Observações¶
- Katapult ocupa os primeiros 8 KB da Flash, portanto no Klipper é obrigatório indicar o deslocamento de 8 KiB.
- É possível usar o Reset duplo ou o botão no GPIO (PA4) para entrar em DFU.
- Se PA13/PA14 forem usados para SWD
- Depois de gravar o Katapult, não é mais necessário usar ST-Link - todo o trabalho posterior será feito via USB.
Instalação do firmware no iHeater¶
Compilação do firmware¶
No menu de configuração, selecionar¶
Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32)
Processor model (STM32F042)
Bootloader offset (8KiB bootloader)
Clock Reference (Internal clock)
Communication interface (USB (on PA9/PA10))
Desativar tudo que for desnecessário¶
[*] Support micro-controller based ADC (analog to digital)
[ ] Support communicating with external chips via SPI bus
[ ] Support communicating with external chips via I2C bus
[*] Support GPIO based button reading
[ ] Support Trinamic stepper motor driver UART communication
[ ] Support 'neopixel' type LED control
[ ] Support measuring fan tachometer GPIO pins
*** LCD chips ***
[ ] Support ST7920 LCD display
[ ] Support HD44780 LCD display
*** External ADC type chips ***
[ ] Support HX711 and HX717 ADC chips
Salvar e sair do menu.¶
Compilar o firmware¶
Resultado:
Creating hex file out/klipper.bin
Instalação do firmware na placa iHeater¶
Pode ser necessário instalar python3-serial
sudo apt install python3-serial
A seguir é considerada a opção de instalação com o bootloader Katapult instalado
-
Conectar o iHeater ao host no modo de programação (mantendo o botão Mode pressionado durante a conexão ou pressionando RESET duas vezes).
-
Executar a busca
O resultado deve ser parecido com:- Se necessário, instalar flashtool
-
Altere para o seu ID e digite:
python3 ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/usb-katapult_stm32f042x6_XXXXXXXXXXXXXXXXXXXXXXXX-XXXX -f ~/klipper/out/klipper.binResultado:
Flashing '/home/pi/klipper/out/klipper.bin'... [##################################################] Write complete: 20 pages Verifying (block count = 319)... [##################################################] Verification Complete: SHA = 8A3DDF39A0E70B684DC6BAF74EF8F089EBDD6C18 Flash Success -
Verificar:
Resultado:usb-Klipper_stm32f042x6_0C0018000D53304347373020-if00iHeater pronto para funcionar com Klipper
