Sovol Zero#

Sovol Zero едет с форкнутым Klipper — хост klippy/ плюс MCU src/ — на вендорской all-in-one плате Zero: Linux-хост Allwinner H616 плюс мейнборд STM32H750, который заодно работает USB-CAN мостом, и отдельный CAN-тулхед STM32F103. Всё остальное в стеке — Moonraker, Mainsail, Katapult, gs_usb, crowsnest, KlipperScreen — уже сток upstream. Форкнут только Klipper, так что переезжать надо только его.

Этот раздел переводит машину полностью на upstream Klipper: хост плюс оба MCU на одном запиненном коммите, приложение и bootloader, без единого вендорского байта в прошивке. Единственный вендорский слой, который остаётся после — образ ОС, и его замена опциональна.

Машина, слой за слоем#

Прочитай четырёхслойную модель один раз ради логики; дальше используй это как библиотеку компонентов.

  • Железо — карта системы (хост + три CAN MCU), распиновка тулхеда и SWD-хедер, и факты железа платы: мёртвые порты, отсутствующие на поздних юнитах датчики, ограничения камеры.
  • Прошивка MCU — сборка обоих приложений и Katapult из одного запиненного коммита, разовая SWD-прошивка тулхеда, и путь мейнборда без SWD через USB-Katapult.
  • ОС — ванильный Armbian на стоковом eMMC, офлайн-пресид, единственное свойство device-tree, которое отличает эту плату от настоящего CB1, и восстановление.
  • Приклад — стек KIAUH, перевод конфига на mainline eddy/tap, плагины, калибровка, и проверенные допы.

Собери свой путь#

Runbook-и — это точки входа. Выбери тот, что подходит под твою ситуацию, и он проведёт тебя через слои выше в правильном порядке:

Ключевые факты#

  • Мейнборд (STM32H750) — собирай как STM32H743. Приложение лежит по 0x8020000, за внутренней флешью. Собранное как MACH_STM32H743, оно достаёт этот офсет из стокового таргета без патча, и H743 по умолчанию берёт валидированные 400 МГц — таргет H750 собирает тот же офсет, но по умолчанию 480 МГц, на которых эта плата не валидирована. Прошивай через USB-Katapult; хрестоматийный офсет 32 KiB кирпичит стоковый bootloader.
  • Тулхед (STM32F103) — Katapult по стандартному офсету 8 KiB, приложение Klipper по 0x8002000. Вендорский Katapult работает только по запросу и не восстанавливается по CAN, так что тулхеду нужна одна SWD-прошивка, чтобы поставить CAN-совместимый mainline Katapult; после этого он шьётся по CAN — без пробы, без вскрытия головы.
  • Katapult мейнборда, без SWD — замени его на mainline Katapult, собрав Katapult deployer и прошив его через стоковый bootloader по USB. Bootloader из неизвестного готового бинарника — ровно то, чего не хочется на единственном MCU, который непросто восстановить.
  • Eddy-проба (LDC1612) — на mainline используй software I2C; аппаратный I2C2 у F103 кидает START_NACK без вендорских обходов errata STM32F1. На master она делает tap-пробинг.

Статус#

Проверено от начала до конца на одном принтере: хост и оба MCU полностью на upstream Klipper, в прошивке не осталось вендорских байтов. Правки и дополнения — другие пробы, другие ревизии плат, путь нативной сборки H750 — приветствуются через PR.

Благодарности#

Самый полный ресурс по mainline именно для Zero — asnajder/zero-config; сверка с ним повлияла на несколько решений здесь. Родственный проект Rappetor/Sovol-SV08-Mainline (то же семейство H616 + CAN, другой MCU мейнборда) был ближайшим существующим референсом.

Дисклеймер#

Перепрошивка прошивки MCU может окирпичить железо. Мейнборд — это USB-CAN мост, неудачная прошивка кладёт всю CAN-шину. Пока Katapult жив, можно перешить по USB; только повреждённый bootloader вынуждает лезть SWD в закопанный мейнборд. Сначала сними свой SWD-дамп — это твой откат. Действуешь на свой риск.