Прошивка¶
Этот документ описывает сборку и прошивку загрузчика Katapult для микроконтроллера iHeater. Katapult позволяет обновлять прошивку Klipper по USB, а также используется при установке прошивки Klipper на контроллер iHeater.
Требования¶
- STM32F042F6P6
- Плата iHeater
- Программатор ST-Link V2 для первичной прошивки или USB-кабель
- Linux-система, например Raspberry Pi или принтер
Если не получается собрать и прошить прошивку прямо на принтере
Сборка Katapult¶
- Склонируйте репозиторий Katapult:
-
В
menuconfigвыберите: -
MCU Architecture: STM32
- Processor model: STM32F042
- Clock Reference: Internal
- Communication interface: USB (on PA9/PA10)
- Application start offset: 8KiB offset
- Support bootloader entry on rapid double click of reset button
- Enable bootloader entry on button (or gpio) state
- (!PA4) Button GPIO Pin
- Enable Status LED
- (PA5) Status LED GPIO Pin
- Соберите прошивку:
Файл прошивки будет создан по пути out/katapult.bin.
Прошивка Katapult через DFU¶
Этот шаг нужен только один раз, чтобы записать загрузчик Katapult.
Подготовка¶
Установите dfu-util, если он ещё не установлен:
Установите перемычку BOOT0 и перезагрузите плату по питанию или нажмите RESET. Микроконтроллер перейдёт в режим DFU.
Проверьте подключение:
Должно появиться устройство:
Прошивка Katapult¶
Выполните:
Пример успешного вывода:
Downloading to address = 0x08000000, size = 4968
Download [=========================] 100% 4968 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Снимите перемычку, зажмите кнопку MODE, нажмите и отпустите RESET или переподключите USB.
После перезагрузки выполните:
Должно появиться устройство:
Если возникнут ошибки прав доступа:
Примечания¶
- Katapult занимает первые 8 КБ Flash, поэтому в Klipper нужно обязательно указать смещение 8KiB.
- Войти в DFU можно двойным нажатием RESET или кнопкой GPIO (PA4).
- PA13/PA14 используются для SWD.
- После прошивки Katapult программатор ST-Link больше не нужен; последующие обновления можно выполнять по USB.
Установка прошивки на iHeater¶
Сборка прошивки¶
В меню конфигурации выберите:¶
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))
Отключите все неиспользуемые опции:¶
[*] 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
Сохраните настройки и выйдите из меню.¶
Соберите прошивку¶
В результате должен появиться файл:
Установка прошивки на плату iHeater¶
При необходимости установите python3-serial
Следующие шаги предполагают, что загрузчик Katapult уже установлен.
-
Подключите iHeater к хосту в режиме прошивки: удерживайте MODE при подключении USB или дважды нажмите RESET.
-
Найдите устройство:
Должно появиться что-то вроде:
- При необходимости установите
flashtool:
- Замените ID устройства на свой и выполните:
python3 ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/usb-katapult_stm32f042x6_XXXXXXXXXXXXXXXXXXXXXXXX-XXXX -f ~/klipper/out/klipper.bin
Ожидаемый вывод:
Flashing '/home/pi/klipper/out/klipper.bin'...
[##################################################]
Write complete: 20 pages
Verifying (block count = 319)...
[##################################################]
Verification Complete: SHA = 8A3DDF39A0E70B684DC6BAF74EF8F089EBDD6C18
Flash Success
- Проверьте:
Вывод должен быть примерно таким:
iHeater готов к работе с Klipper
