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-и — это точки входа. Выбери тот, что подходит под твою ситуацию, и он проведёт тебя через слои выше в правильном порядке:
- Поверх стоковой прошивки — принтер работает, и ты мигрируешь на месте.
- Есть eMMC-ридер — сборка с чистого листа с пустого eMMC.
- Восстановление — машина не грузится, или надо откатить неудачную прошивку.
Ключевые факты#
- Мейнборд (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-дамп — это твой откат. Действуешь на свой риск.