Обновление EBB36/42 по CAN
При каждом обновлении Klipper необходимо обновлять прошивку в MCU, можно это делать так как делали тут, но это слишком много движений. Подготовим наш MCU EBB для прошивки через CAN.
Загружаем CanBoot и собираем прошивку для загрузчика:
git clone https://github.com/Arksine/CanBoot
cd CanBoot
make menuconfig
Выбираем свой микроконтроллер Microcontroller Architecture (STM32G0B1)
make, Clock Reference (8 MHz crystal), Communication interface (CAN bus (on PB0/PB1), если подключение по USB - USB (on PA11/PA12)), CAN bus speed (250000). Это параметры для моей версии платы, если у Вас другая, то подставляем свои (есть в мануале на плату). Жмем Q и Y.
Вводим:
make
Получаем прошивку для загрузчика /home/pi/CanBoot/out/canboot.bin. Скачиваем на свой ПК с помощью FileZilla.
Прошиваем микроконтроллер с помощью STM32CubeProgrammer, подробно есть в этой публикации, но предварительно стираем всю память
Собираем прошивку, так как собирали тут, указав загрузчик «8KiB»
cd ~/klipper
make clean
make menuconfig
Узнаем UUID у загрузчика:
cd
cd CanBoot
python3 scripts/flash_can.py -i can0 -q
Загружаем прошивку через can, подставив свой UUID:
python3 scripts/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u 7925657ba371
Перезагружаем klipper. Теперь не нужно каждое обновление доставать провод, переводить плату в режим прошивки и запускать STM32CubeProgrammer. Обновляемся двумя командами.
Загрузчик CanBoot в настоящее время поддерживает загрузку прошивок в микроконтроллеры lpc176x, stm32 и rp2040 через UART и USB. Но для перевода в режим прошивки lpc176x необходимо на плате замкнуть контакты. В общем смысл теряется, все равно нужно лезть к плате MCU, мне проще карту достать. Есть другой способ прошивки не доставая карты SD.
Обновление MCU SKR 1.4 (lpc176x) не доставая SD карты
Необходимый скрипт устанавливается с klipper, нужно только научиться им пользоваться.
Посмотрим список поддерживаемых плат:
./scripts/flash-sdcard.sh -l
Собираем прошивку.
sudo service klipper stop
cd ~/klipper
make clean
make menuconfig
make
Можно посмотреть версию прошивки в разделе "Система" Fluidd. В данный момент прошивка MCU EBB новее
Далее смотрим в printer.cfg раздел [mcu] строчку serial:, копируем что-то похожее на: /dev/ttyAMA0 (при подключении UART) или serial: /dev/serial/by-id/usb-Klipper_lpc1769_0230001125813AAFFCCC6B5CC22000F5-if00 (при подключении USB)
Запускаем скрипт, поставив свои значения:
./scripts/flash-sdcard.sh /dev/ttyAMA0 btt-skr-turbo-v1.4
или
./scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0230001125813AAFFCCC6B5CC22000F5-if00 btt-skr-turbo-v1.4
sudo service klipper start
Смотрим версию прошивки в разделе "Система" Fluidd. Прошивка обновилась
Приведенные выше команды предполагают, что ваш MCU подключается со скоростью передачи по умолчанию 250000 бод, а прошивка расположена по адресу ~/klipper/out/klipper.bin. Скрипт flash-sdcard.sh подставляет опции для этих значений по умолчанию. Все параметры можно просмотреть на экране справки:
./scripts/flash-sdcard.sh -h
Если ваша плата прошита прошивкой, которая подключается с пользовательской скоростью передачи данных, ее нужно указать, указав -b опцию:
./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3
- Этот метод работает только для обновления прошивки. Первоначальная прошивка выполняется с помощью SD карты или в соответствии с инструкциями к вашей плате MCU.
- Можно загрузить прошивку, которая изменяет скорость передачи данных или интерфейс подключения (например, с USB на UART), но повторно klipper не установит соединение с MCU до внесения изменений в printer.cfg и соответствующего подключения.
Спасибо, что дочитали до конца.
Также что б ни чего не пропустить подписывайтесь на этот канал, на мое сообщество ВК и канал Telegram
https://vk.com/cncand3d
https://t.me/cncand3d