<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sovol на mainline Klipper</title><link>https://sovol.lexfrei.dev/ru/</link><description>Recent content on Sovol на mainline Klipper</description><generator>Hugo</generator><language>ru-ru</language><atom:link href="https://sovol.lexfrei.dev/ru/index.xml" rel="self" type="application/rss+xml"/><item><title>Архитектура</title><link>https://sovol.lexfrei.dev/ru/zero/hardware/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/hardware/architecture/</guid><description>&lt;h1 id="архитектура-системы"&gt;Архитектура системы&lt;a class="anchor" href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Справочное описание Sovol Zero как с завода, снятое с работающей машины — файловая система хоста, конфиг Klipper, рантайм MCU, git-remote-ы. Оно нужно под миграцию: точно знать, какое железо и софт в игре и какие куски вендор-специфичные, а какие сток.&lt;/p&gt;
&lt;p&gt;Sovol Zero — CoreXY-принтер, индустриализированная производная Voron 0, с областью печати 150×150×150 мм в закрытом корпусе. На нём крутится Klipper на Linux-хосте, который общается с несколькими STM32 MCU по CANbus. Внутренне Sovol зовёт его «SV08 mini» — вендорский пакет прошивки идёт как &lt;code&gt;SV08mini_Update_Package-*.deb&lt;/code&gt;, и CAN-голову он делит с SV08 Max — хотя продаётся только как Sovol Zero.&lt;/p&gt;</description></item><item><title>Поверх стоковой прошивки</title><link>https://sovol.lexfrei.dev/ru/zero/runbooks/over-stock/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/runbooks/over-stock/</guid><description>&lt;h1 id="runbook--миграция-на-месте-поверх-стоковой-прошивки"&gt;Runbook — миграция на месте поверх стоковой прошивки&lt;a class="anchor" href="#runbook--%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d0%bd%d0%b0-%d0%bc%d0%b5%d1%81%d1%82%d0%b5-%d0%bf%d0%be%d0%b2%d0%b5%d1%80%d1%85-%d1%81%d1%82%d0%be%d0%ba%d0%be%d0%b2%d0%be%d0%b9-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Принтер работает, и ты мигрируешь поверх него. Вендорская ОС остаётся, приклад и прошивка MCU переезжают на upstream, а ОС — опциональный последний шаг. Это путь инкрементального де-вендоринга.&lt;/p&gt;
&lt;p&gt;Каждый шаг ниже — ссылка в компонент, который делает работу; эта страница только про порядок.&lt;/p&gt;
&lt;h2 id="1-сначала-забэкапь-всё"&gt;1. Сначала забэкапь всё&lt;a class="anchor" href="#1-%d1%81%d0%bd%d0%b0%d1%87%d0%b0%d0%bb%d0%b0-%d0%b7%d0%b0%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8c-%d0%b2%d1%81%d1%91"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Rsync вендорского стека, SWD-дамп тулхеда и, желательно, полный образ eMMC. Бэкапы — это то, что делает любой последующий шаг обратимым. → &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/recovery/#back-up-first-the-checklist#back-up-first-the-checklist"&gt;Восстановление: сначала бэкап&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Простая установка</title><link>https://sovol.lexfrei.dev/ru/zero/os/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/quickstart/</guid><description>&lt;h1 id="простая-установка--для-большинства"&gt;Простая установка — для большинства&lt;a class="anchor" href="#%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%b0%d1%8f-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0--%d0%b4%d0%bb%d1%8f-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%bd%d1%81%d1%82%d0%b2%d0%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://sovol.lexfrei.dev/ru/zero/os/clean-slate/"&gt;Страница с чистого листа&lt;/a&gt; запекает всё в образ офлайн, руками. Тебе так не обязательно. Есть путь подружелюбнее: прошей базовый образ, дай ему подняться и ответь на короткий визард по SSH — тот же first-run опыт, что и на любой плате Armbian. Никакой правки ext4, никакого &lt;code&gt;debugfs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Две вещи делают это простым на Zero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;У платы есть слот microSD, и H616 грузит SD раньше eMMC.&lt;/strong&gt; Так что можно гонять всё с microSD — без ридера, без снятия модуля, без риска для стоковой eMMC. Оставь eMMC в покое как заводской бэкап, или &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/in-place/"&gt;перенеси систему на неё позже&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Первый вход по SSH запускает дружелюбный setup-визард Armbian&lt;/strong&gt; (&lt;code&gt;armbian-firstlogin&lt;/code&gt;): он заставляет сменить пароль root, создаёт твоего пользователя и спрашивает locale + timezone — прямо в SSH-сессии.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Используй образ &lt;strong&gt;&lt;a href="https://github.com/lexfrei/sovobian/releases"&gt;Sovobian&lt;/a&gt;&lt;/strong&gt; для всего этого — это upstream Armbian CB1 с уже запечённым оверлеем eMMC 40 МГц, и он несёт ядро 6.12.68, где встроенный Ethernet работает из коробки. Обычный образ BTT CB1 гонит eMMC на 3× валидированного клока (смотри &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/armbian/#what-almost-a-cb1-actually-means#what-almost-a-cb1-actually-means"&gt;разницу CB1&lt;/a&gt;) — не используй его.&lt;/p&gt;</description></item><item><title>Сборка прошивки</title><link>https://sovol.lexfrei.dev/ru/zero/firmware/build/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/firmware/build/</guid><description>&lt;h1 id="сборка-прошивки"&gt;Сборка прошивки&lt;a class="anchor" href="#%d1%81%d0%b1%d0%be%d1%80%d0%ba%d0%b0-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Прошивку MCU (Katapult + Klipper) можно собрать либо &lt;strong&gt;на самом хосте принтера&lt;/strong&gt;, либо &lt;strong&gt;на Mac / Linux-машине&lt;/strong&gt;, а потом скопировать &lt;code&gt;.bin&lt;/code&gt;. Оба дают идентичные образы — выбирай, что под рукой.&lt;/p&gt;
&lt;h2 id="тулчейн"&gt;Тулчейн&lt;a class="anchor" href="#%d1%82%d1%83%d0%bb%d1%87%d0%b5%d0%b9%d0%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="на-хосте-принтера-allwinner-h616-платы-sovol-zero-debian-aarch64"&gt;На хосте принтера (Allwinner H616 платы Sovol Zero, Debian aarch64)&lt;a class="anchor" href="#%d0%bd%d0%b0-%d1%85%d0%be%d1%81%d1%82%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b0-allwinner-h616-%d0%bf%d0%bb%d0%b0%d1%82%d1%8b-sovol-zero-debian-aarch64"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;arm-none-eabi-gcc&lt;/code&gt; уже установлен — это вендорская же цепочка сборки. Клонируй исходники и собирай на месте; никакой доп-настройки и ни одной из macOS-причуд ниже:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make CROSS_PREFIX&lt;span style="color:#f92672"&gt;=&lt;/span&gt;arm-none-eabi-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="на-macos"&gt;На macOS&lt;a class="anchor" href="#%d0%bd%d0%b0-macos"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install --cask gcc-arm-embedded&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Он ставится в &lt;code&gt;/Applications/ArmGNUToolchain/&amp;lt;version&amp;gt;/arm-none-eabi/bin/&lt;/code&gt; (например, &lt;code&gt;15.2.rel1&lt;/code&gt;) и &lt;strong&gt;не&lt;/strong&gt; добавляется в &lt;code&gt;PATH&lt;/code&gt;. Собирай с полным префиксом и &lt;strong&gt;переопредели &lt;code&gt;CPP&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>Стек KIAUH</title><link>https://sovol.lexfrei.dev/ru/zero/application/kiauh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/application/kiauh/</guid><description>&lt;h1 id="стек-прикладного-слоя-через-kiauh"&gt;Стек прикладного слоя через KIAUH&lt;a class="anchor" href="#%d1%81%d1%82%d0%b5%d0%ba-%d0%bf%d1%80%d0%b8%d0%ba%d0%bb%d0%b0%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%81%d0%bb%d0%be%d1%8f-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-kiauh"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Всё выше Klipper — Moonraker, Mainsail, Crowsnest — уже сток upstream, так что самая быстрая чистая установка — это &lt;a href="https://github.com/dw-0/kiauh"&gt;dw-0/kiauh&lt;/a&gt;. Склонируй его и ставь по порядку: &lt;strong&gt;Klipper, Moonraker, Mainsail, Mainsail-Config, Crowsnest.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Наведи хост Klipper на тот же чекаут &lt;code&gt;master&lt;/code&gt;, из которого собраны твои MCU, с venv из его &lt;code&gt;requirements.txt&lt;/code&gt;, и выстави &lt;code&gt;[update_manager klipper] channel: dev&lt;/code&gt; в &lt;code&gt;moonraker.conf&lt;/code&gt;, чтобы он трекал &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="два-постустановочных-фикса"&gt;Два постустановочных фикса&lt;a class="anchor" href="#%d0%b4%d0%b2%d0%b0-%d0%bf%d0%be%d1%81%d1%82%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%be%d1%87%d0%bd%d1%8b%d1%85-%d1%84%d0%b8%d0%ba%d1%81%d0%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Оба из опыта на этой плате:&lt;/p&gt;</description></item><item><title>Ванильный Armbian</title><link>https://sovol.lexfrei.dev/ru/zero/os/armbian/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/armbian/</guid><description>&lt;h1 id="ванильный-armbian-на-плате-sovol-zero"&gt;Ванильный Armbian на плате Sovol Zero&lt;a class="anchor" href="#%d0%b2%d0%b0%d0%bd%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-armbian-%d0%bd%d0%b0-%d0%bf%d0%bb%d0%b0%d1%82%d0%b5-sovol-zero"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Миграция Klipper оставляет стоковый образ ОС от Sovol нетронутым — Klipper живёт в &lt;code&gt;/home/sovol&lt;/code&gt;, так что замена слоя Klipper никогда не переписывает rootfs или загрузчик. Для полностью вендор-фри машины последний слой — это ОС на eMMC. Это более трудный, деструктивный шаг (он переписывает всё загрузочное устройство).&lt;/p&gt;
&lt;p&gt;Это проверенный от начала до конца рецепт &lt;strong&gt;ванильного Armbian на стоковом 8 ГБ eMMC-модуле&lt;/strong&gt; — без кастомной сборки ОС, без замены модуля. Оригинальный разбор Armbian-на-Zero — &lt;a href="https://github.com/asnajder/zero-config"&gt;asnajder/zero-config&lt;/a&gt;, на нём это и строится; где они расходятся (в первую очередь на 8 ГБ модуле), разница объяснена ниже.&lt;/p&gt;</description></item><item><title>Есть eMMC-ридер</title><link>https://sovol.lexfrei.dev/ru/zero/runbooks/emmc-reader/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/runbooks/emmc-reader/</guid><description>&lt;h1 id="runbook--сборка-с-чистого-листа-с-emmc-ридером"&gt;Runbook — сборка с чистого листа с eMMC-ридером&lt;a class="anchor" href="#runbook--%d1%81%d0%b1%d0%be%d1%80%d0%ba%d0%b0-%d1%81-%d1%87%d0%b8%d1%81%d1%82%d0%be%d0%b3%d0%be-%d0%bb%d0%b8%d1%81%d1%82%d0%b0-%d1%81-emmc-%d1%80%d0%b8%d0%b4%d0%b5%d1%80%d0%be%d0%bc"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Путь, которым реально идёт восстановление или свежая сборка: сначала ОС, приклад сверху, MCU обычно последними — и часто их вообще не трогают, потому что &lt;a href="https://sovol.lexfrei.dev/ru/concepts/"&gt;слой 2 пережил то, что убило слой 3&lt;/a&gt;. Это порядок, проверенный от начала до конца на референсной машине.&lt;/p&gt;
&lt;h2 id="1-проинвентаризируй-бэкапы"&gt;1. Проинвентаризируй бэкапы&lt;a class="anchor" href="#1-%d0%bf%d1%80%d0%be%d0%b8%d0%bd%d0%b2%d0%b5%d0%bd%d1%82%d0%b0%d1%80%d0%b8%d0%b7%d0%b8%d1%80%d1%83%d0%b9-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Минимум: набор конфигов (git-репозиторий или любая копия) и состояние MCU. Уже-mainline MCU тут не нужны; вендорские MCU требуют шагов прошивки ниже. Полный образ eMMC превращает это в восстановление вместо пересборки. → &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/recovery/"&gt;Восстановление&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Конфиг Klipper</title><link>https://sovol.lexfrei.dev/ru/zero/application/klipper-config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/application/klipper-config/</guid><description>&lt;h1 id="перевод-конфига-на-mainline"&gt;Перевод конфига на mainline&lt;a class="anchor" href="#%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d0%be%d0%b4-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d0%b0-%d0%bd%d0%b0-mainline"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Вендорский &lt;code&gt;printer.cfg&lt;/code&gt; как есть на upstream Klipper не заводится — несколько секций завязаны на поведение, которое есть только в вендорской прошивке. Переведи их с вендорского конфига; остальное переносится как есть.&lt;/p&gt;
&lt;h2 id="eddy-на-software-i2c"&gt;Eddy на software I2C&lt;a class="anchor" href="#eddy-%d0%bd%d0%b0-software-i2c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вендор гонял LDC1612 по аппаратному &lt;code&gt;i2c2&lt;/code&gt;, но только потому, что его F103-прошивка тащит обходы errata аппаратного I2C у STM32F1, которых на mainline нет; на mainline аппаратный &lt;code&gt;i2c2&lt;/code&gt; кидает &lt;code&gt;START_NACK&lt;/code&gt; → shutdown. Используй bitbang:&lt;/p&gt;</description></item><item><title>Прошивка по SWD</title><link>https://sovol.lexfrei.dev/ru/zero/firmware/flashing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/firmware/flashing/</guid><description>&lt;h1 id="прошивка-по-swd-через-flipper-zero-dap-link"&gt;Прошивка по SWD через Flipper Zero (DAP Link)&lt;a class="anchor" href="#%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b0-%d0%bf%d0%be-swd-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-flipper-zero-dap-link"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Katapult тулхеда работает только по запросу и не восстанавливается по CAN, если приложение сломалось, так что SWD-пробник — это страховка. Подойдёт любой CMSIS-DAP-пробник — клон ST-Link V2 или Flipper Zero с приложением &lt;strong&gt;DAP Link&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;&lt;strong&gt;Проверенный охват.&lt;/strong&gt; Всё здесь тестировалось только на &lt;strong&gt;тулхеде F103&lt;/strong&gt; и только с &lt;strong&gt;Flipper Zero&lt;/strong&gt; (приложение DAP Link). ST-Link должен вести себя так же (это стандартный SWD), а раздел про H750 ниже — рассуждение, а не проверка. Правки и дополнения приветствуются — открой PR.&lt;/p&gt;</description></item><item><title>Распиновка тулхеда и SWD</title><link>https://sovol.lexfrei.dev/ru/zero/hardware/toolhead/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/hardware/toolhead/</guid><description>&lt;h1 id="распиновка-тулхеда-и-swd-хедер"&gt;Распиновка тулхеда и SWD-хедер&lt;a class="anchor" href="#%d1%80%d0%b0%d1%81%d0%bf%d0%b8%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d1%82%d1%83%d0%bb%d1%85%d0%b5%d0%b4%d0%b0-%d0%b8-swd-%d1%85%d0%b5%d0%b4%d0%b5%d1%80"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Переписано с официального pin-definition от Sovol (&lt;code&gt;Motherboard/Extra_Pin_definition.pdf&lt;/code&gt; в &lt;a href="https://github.com/Sovol3d/SOVOL-ZERO"&gt;Sovol3d/SOVOL-ZERO&lt;/a&gt;) — смотри тот PDF ради полной картинки платы с подписями. MCU тулхеда — это STM32F103 (&lt;code&gt;extruder_mcu&lt;/code&gt;), шелкография платы &lt;code&gt;MINI-ZJB-V1.0&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="коннекторы"&gt;Коннекторы&lt;a class="anchor" href="#%d0%ba%d0%be%d0%bd%d0%bd%d0%b5%d0%ba%d1%82%d0%be%d1%80%d1%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Коннектор&lt;/th&gt;
					&lt;th&gt;Пины (как на шелкографии)&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Вентилятор охлаждения&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;24V&lt;/code&gt; · PWM &lt;code&gt;PA6&lt;/code&gt; · FG &lt;code&gt;PA1&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Вентилятор (верхний)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;24V&lt;/code&gt; · PWM &lt;code&gt;PA7&lt;/code&gt; · FG &lt;code&gt;PA2&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Вентилятор модели&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;24V&lt;/code&gt; · PWM &lt;code&gt;PB0&lt;/code&gt; · FG &lt;code&gt;PA3&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Термистор сопла&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PA5&lt;/code&gt; · &lt;code&gt;GND&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Нагревательный блок&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;GND&lt;/code&gt; · &lt;code&gt;24V&lt;/code&gt; · &lt;code&gt;PB1&lt;/code&gt; · &lt;code&gt;GND&lt;/code&gt; · &lt;code&gt;PA4&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Нагреватель&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;24V&lt;/code&gt; · MC_HEATER &lt;code&gt;PB7&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Питание 24 В&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;GND&lt;/code&gt; · &lt;code&gt;24V&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Мотор экструдера&lt;/td&gt;
					&lt;td&gt;DIR &lt;code&gt;PA9&lt;/code&gt; · STEP &lt;code&gt;PA8&lt;/code&gt; · EN &lt;code&gt;PA11&lt;/code&gt; · UART &lt;code&gt;PA12&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Концевик оси X&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PA10&lt;/code&gt; · &lt;code&gt;GND&lt;/code&gt; · &lt;code&gt;5V&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Концевик / датчик&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;5V&lt;/code&gt; · &lt;code&gt;GND&lt;/code&gt; · &lt;code&gt;PC15&lt;/code&gt; · &lt;code&gt;PC14&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Датчик eddy current&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;5V3&lt;/code&gt; · &lt;code&gt;GND&lt;/code&gt; · &lt;strong&gt;&lt;code&gt;PB10&lt;/code&gt; (SCL)&lt;/strong&gt; · &lt;strong&gt;&lt;code&gt;PB11&lt;/code&gt; (SDA)&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Связь с мейнбордом (CAN)&lt;/td&gt;
					&lt;td&gt;CANL · &lt;code&gt;GND&lt;/code&gt; · CANH (CAN_R &lt;code&gt;PB8&lt;/code&gt; · CAN_T &lt;code&gt;PB9&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SWD-хедер&lt;/strong&gt; (шелк &lt;code&gt;5V3 IO CK G&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;5V3&lt;/code&gt; = 3.3 В · &lt;code&gt;IO&lt;/code&gt; = SWDIO (&lt;code&gt;PA13&lt;/code&gt;) · &lt;code&gt;CK&lt;/code&gt; = SWCLK (&lt;code&gt;PA14&lt;/code&gt;) · &lt;code&gt;G&lt;/code&gt; = GND&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Коннектор eddy-датчика выводит &lt;code&gt;PB10&lt;/code&gt;/&lt;code&gt;PB11&lt;/code&gt;. На mainline Klipper гоняй LDC1612 через &lt;strong&gt;software I2C&lt;/strong&gt; на этих пинах, а не через аппаратный &lt;code&gt;i2c2&lt;/code&gt; — см. &lt;a href="https://sovol.lexfrei.dev/ru/zero/application/klipper-config/"&gt;страницу конфига Klipper&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Восстановление</title><link>https://sovol.lexfrei.dev/ru/zero/runbooks/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/runbooks/recovery/</guid><description>&lt;h1 id="runbook--восстановление-машины-которая-не-поднимается"&gt;Runbook — восстановление машины, которая не поднимается&lt;a class="anchor" href="#runbook--%d0%b2%d0%be%d1%81%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bc%d0%b0%d1%88%d0%b8%d0%bd%d1%8b-%d0%ba%d0%be%d1%82%d0%be%d1%80%d0%b0%d1%8f-%d0%bd%d0%b5-%d0%bf%d0%be%d0%b4%d0%bd%d0%b8%d0%bc%d0%b0%d0%b5%d1%82%d1%81%d1%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Маршрутизируй по тому, что реально отвалилось. Поскольку &lt;a href="https://sovol.lexfrei.dev/ru/concepts/"&gt;слой 2 переживает слой 3&lt;/a&gt;, большинство восстановлений уже́, чем кажется — мёртвая ОС не трогает MCU, а неудачная прошивка приложения не трогает ОС.&lt;/p&gt;
&lt;p&gt;Чеклист бэкапов и подробные откаты живут на &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/recovery/"&gt;странице восстановления&lt;/a&gt;; здесь — маршрутизация.&lt;/p&gt;
&lt;h2 id="ос-не-грузится"&gt;ОС не грузится&lt;a class="anchor" href="#%d0%be%d1%81-%d0%bd%d0%b5-%d0%b3%d1%80%d1%83%d0%b7%d0%b8%d1%82%d1%81%d1%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;MCU в порядке. Пересобери только ОС, потом переподключись.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Есть полный образ eMMC → восстанови его: один &lt;code&gt;dd&lt;/code&gt; обратно, и ты там же, где был.&lt;/li&gt;
&lt;li&gt;Образа нет → пересобери с чистого листа: &lt;a href="https://sovol.lexfrei.dev/ru/zero/runbooks/emmc-reader/"&gt;с eMMC-ридером&lt;/a&gt;, или &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/in-place/"&gt;на месте&lt;/a&gt;, если ридера нет.&lt;/li&gt;
&lt;li&gt;Затем восстанови конфиг и подтверди klippy &lt;code&gt;ready&lt;/code&gt; с обоими CAN-UUID — это и доказывает, что MCU выжили.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если умерла сразу после апгрейда ядра / &lt;code&gt;apt&lt;/code&gt; — это &lt;a href="https://sovol.lexfrei.dev/ru/zero/troubleshooting/#armbian-kernel-branches-and-onboard-ethernet#armbian-kernel-branches-and-onboard-ethernet"&gt;регрессия onboard-ethernet&lt;/a&gt;, а не мёртвое железо.&lt;/p&gt;</description></item><item><title>Миграция MCU</title><link>https://sovol.lexfrei.dev/ru/zero/firmware/mcu-migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/firmware/mcu-migration/</guid><description>&lt;h1 id="миграция-mcu--оба-mcu-на-mainline"&gt;Миграция MCU — оба MCU на mainline&lt;a class="anchor" href="#%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-mcu--%d0%be%d0%b1%d0%b0-mcu-%d0%bd%d0%b0-mainline"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Чистый способ полностью перевести оба MCU на upstream Klipper — приложение &lt;em&gt;и&lt;/em&gt; загрузчик, ни одного вендорского байта в прошивке. Собери всё из &lt;strong&gt;одного и того же коммита Klipper &lt;code&gt;master&lt;/code&gt;&lt;/strong&gt; (см. &lt;a href="https://sovol.lexfrei.dev/ru/concepts/"&gt;почему master&lt;/a&gt;). Порядок такой: собрать все четыре образа, прошить тулхед один раз по SWD, потом мейнборд через USB-Katapult.&lt;/p&gt;
&lt;h2 id="что-нужно"&gt;Что нужно&lt;a class="anchor" href="#%d1%87%d1%82%d0%be-%d0%bd%d1%83%d0%b6%d0%bd%d0%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SWD-программатор&lt;/strong&gt; — ST-Link V2 (клон за ~$3) или Flipper Zero с приложением DAP Link. Нужен один раз, чтобы забутстрапить тулхед: вендорский Katapult работает только по запросу и не восстанавливается по CAN, так что ты первый раз прошиваешь CAN-совместимый mainline Katapult на тулхед по SWD и больше голову не вскрываешь.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ARM-тулчейн&lt;/strong&gt; — &lt;code&gt;arm-none-eabi-gcc&lt;/code&gt; (уже на хосте принтера) или &lt;code&gt;brew install --cask gcc-arm-embedded&lt;/code&gt; на macOS. См. &lt;a href="https://sovol.lexfrei.dev/ru/zero/firmware/build/"&gt;Сборку прошивки&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openocd&lt;/code&gt; ≥ 0.11 для прошивки по SWD.&lt;/li&gt;
&lt;li&gt;SSH-доступ к принтеру.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="сначала-забэкапь"&gt;Сначала забэкапь&lt;a class="anchor" href="#%d1%81%d0%bd%d0%b0%d1%87%d0%b0%d0%bb%d0%b0-%d0%b7%d0%b0%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем что-то стирать, сними откат — особенно SWD-дамп тулхеда. Полный чеклист бэкапов (вендорский стек, SWD-дамп, образ eMMC) — на &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/recovery/"&gt;странице восстановления&lt;/a&gt;. Тот, что важнее всего здесь:&lt;/p&gt;</description></item><item><title>Плагины</title><link>https://sovol.lexfrei.dev/ru/zero/application/plugins/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/application/plugins/</guid><description>&lt;h1 id="плагины-и-допы-venv"&gt;Плагины и допы venv&lt;a class="anchor" href="#%d0%bf%d0%bb%d0%b0%d0%b3%d0%b8%d0%bd%d1%8b-%d0%b8-%d0%b4%d0%be%d0%bf%d1%8b-venv"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Дополнения, которые эта машина реально гоняет поверх стокового стека KIAUH.&lt;/p&gt;
&lt;h2 id="scipy--нужен-eddy-пробе"&gt;scipy — нужен eddy-пробе&lt;a class="anchor" href="#scipy--%d0%bd%d1%83%d0%b6%d0%b5%d0%bd-eddy-%d0%bf%d1%80%d0%be%d0%b1%d0%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поставь &lt;code&gt;scipy&lt;/code&gt; в venv Klipper:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;~/klippy-env/bin/pip install scipy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Без него калибровка eddy-пробы падает. Если PyPI виснет при скачивании с платы, подсунь колёса вручную — смотри &lt;a href="https://sovol.lexfrei.dev/ru/zero/troubleshooting/"&gt;troubleshooting&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="sovol_codes--коды-экрана-крутилки"&gt;sovol_codes — коды экрана-крутилки&lt;a class="anchor" href="#sovol_codes--%d0%ba%d0%be%d0%b4%d1%8b-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%ba%d1%80%d1%83%d1%82%d0%b8%d0%bb%d0%ba%d0%b8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вендорская прошивка показывает числовые коды на экране-крутилке (&lt;code&gt;101&lt;/code&gt;/&lt;code&gt;103&lt;/code&gt;, диапазон shutdown &lt;code&gt;60+&lt;/code&gt;); mainline показывает человекочитаемые сообщения. Чтобы сохранить коды на upstream Klipper, поставь опциональный плагин &lt;code&gt;sovol_codes.py&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>С чистого листа (eMMC-ридер)</title><link>https://sovol.lexfrei.dev/ru/zero/os/clean-slate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/clean-slate/</guid><description>&lt;h1 id="установка-с-чистого-листа-с-emmc-ридером"&gt;Установка с чистого листа с eMMC-ридером&lt;a class="anchor" href="#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d1%81-%d1%87%d0%b8%d1%81%d1%82%d0%be%d0%b3%d0%be-%d0%bb%d0%b8%d1%81%d1%82%d0%b0-%d1%81-emmc-%d1%80%d0%b8%d0%b4%d0%b5%d1%80%d0%be%d0%bc"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Самый чистый путь ОС: снять eMMC-модуль, прошить его офлайн в USB-ридере, запечь всё, что нужно первой загрузке, и включить настроенную машину. Это ровно та последовательность, которой (пере)собирали референсную машину — дважды — так что каждый шаг пережил контакт с реальностью.&lt;/p&gt;
&lt;p&gt;Что нужно: eMMC-модуль в USB-ридере, Linux-машина или VM для офлайн-правок (macOS не может писать ext4 — см. заметку про офлайн-правки ниже), и MCU уже на mainline Katapult + Klipper (см. &lt;a href="https://sovol.lexfrei.dev/ru/zero/firmware/mcu-migration/"&gt;Миграцию MCU&lt;/a&gt;). Если MCU были на mainline раньше, они на нём и остаются — &lt;a href="https://sovol.lexfrei.dev/ru/concepts/"&gt;слой 2 переживает слой 3&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Калибровка</title><link>https://sovol.lexfrei.dev/ru/zero/application/calibration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/application/calibration/</guid><description>&lt;h1 id="откалибруй-и-проверь"&gt;Откалибруй и проверь&lt;a class="anchor" href="#%d0%be%d1%82%d0%ba%d0%b0%d0%bb%d0%b8%d0%b1%d1%80%d1%83%d0%b9-%d0%b8-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8c"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Оба MCU на mainline, конфиг переведён, плагины на месте — теперь откалибруй eddy-пробу и движение, а потом докажи это пластиком.&lt;/p&gt;
&lt;h2 id="eddy-и-tap"&gt;Eddy и tap&lt;a class="anchor" href="#eddy-%d0%b8-tap"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Гоняй по порядку, &lt;code&gt;SAVE_CONFIG&lt;/code&gt; после каждого:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;LDC_CALIBRATE_DRIVE_CURRENT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROBE_EDDY_CURRENT_CALIBRATE&lt;/code&gt; — строит таблицу частота→высота&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROBE_EDDY_CURRENT_TAP_CALIBRATE&lt;/code&gt; — задаёт &lt;code&gt;tap_threshold&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="натяжение-ремня"&gt;Натяжение ремня&lt;a class="anchor" href="#%d0%bd%d0%b0%d1%82%d1%8f%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b5%d0%bc%d0%bd%d1%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Цель — ~110 Гц при щипке XY-ремней на их 150-мм пролёте. (Z-ремень с завода ~137 Гц, но это пролёт 21.5 см — другая длина, так что два числа не сравнивай.) Туже — только вылизывает графики шейпера на бумаге и добавляет ringing. Клипперовский тест &lt;em&gt;схожести&lt;/em&gt; ремней тут ненадёжен — акселерометр на голове шумит на standstill от гудения тока удержания, так что показания скачут от прогона к прогону. Проверяй натяжение на слух или тюнером в телефоне (Android годится; шумодав iPhone портит показание).&lt;/p&gt;</description></item><item><title>На месте, без eMMC-ридера</title><link>https://sovol.lexfrei.dev/ru/zero/os/in-place/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/in-place/</guid><description>&lt;h1 id="переустановка-ос-без-emmc-ридера"&gt;Переустановка ОС без eMMC-ридера&lt;a class="anchor" href="#%d0%bf%d0%b5%d1%80%d0%b5%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%be%d1%81-%d0%b1%d0%b5%d0%b7-emmc-%d1%80%d0%b8%d0%b4%d0%b5%d1%80%d0%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Нет ридера, и не хочешь снимать модуль? Можно положить свежую ОС на eMMC прямо с работающей платы. Фокус в слоте microSD: H616 грузит SD раньше eMMC, так что ты загружаешь свежий образ с карты и оттуда клонируешь его на eMMC.&lt;/p&gt;
&lt;p&gt;Обходного пути по USB нет — плата не выводит порт USB-C / OTG, так что обычный маршрут &lt;code&gt;sunxi-fel&lt;/code&gt; + U-Boot &lt;code&gt;ums&lt;/code&gt;, чтобы достать eMMC по USB, отпадает (смотри &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/armbian/#the-board-the-emmc-and-why-fel-is-off-the-table#the-board-the-emmc-and-why-fel-is-off-the-table"&gt;почему FEL отпадает&lt;/a&gt;). Загрузка с SD и клонирование — единственный путь без ридера.&lt;/p&gt;</description></item><item><title>Допы</title><link>https://sovol.lexfrei.dev/ru/zero/application/extras/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/application/extras/</guid><description>&lt;h1 id="допы--опциональное-железо-и-практики"&gt;Допы — опциональное железо и практики&lt;a class="anchor" href="#%d0%b4%d0%be%d0%bf%d1%8b--%d0%be%d0%bf%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%b6%d0%b5%d0%bb%d0%b5%d0%b7%d0%be-%d0%b8-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d0%b8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Дополнения, которые не входят в ядро миграции, но заслужили своё место на реальной машине.&lt;/p&gt;
&lt;h2 id="usb-wifi-dongle-when-the-onboard-radio-dies"&gt;USB WiFi-донгл (когда встроенный радиомодуль умирает)&lt;a class="anchor" href="#usb-wifi-dongle-when-the-onboard-radio-dies"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Встроенный RTL8189FTV — известная единая точка отказа: на этом юните он умер по вине БП (&lt;code&gt;mmc: error -110 whilst initialising SDIO card&lt;/code&gt; на каждой загрузке, в том числе на стоковой прошивке, через ~21 попытку на двух стеках ядра; программное оживление — передёргивание питания чипа через его GPIO, более длинный &lt;code&gt;post-power-on-delay-ms&lt;/code&gt;, более низкая частота SDIO — ничего не меняет). Если видишь эту сигнатуру, прекращай дебажить и втыкай донгл в один из портов USB-A на плате.&lt;/p&gt;</description></item><item><title>Обновляемый Armbian</title><link>https://sovol.lexfrei.dev/ru/zero/os/updatable/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/updatable/</guid><description>&lt;h1 id="как-держать-armbian-обновляемым"&gt;Как держать Armbian обновляемым&lt;a class="anchor" href="#%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b5%d1%80%d0%b6%d0%b0%d1%82%d1%8c-armbian-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d1%8b%d0%bc"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Опасение, что апгрейд &lt;code&gt;apt&lt;/code&gt; «потеряет dts» и сломает eMMC, в основном беспочвенно, а реальное ограничение уже, чем кажется. Эта страница разделяет два этих вопроса.&lt;/p&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;Экспериментально в одном месте.&lt;/strong&gt; Всё про то, &lt;em&gt;почему&lt;/em&gt; ядро на hold, подтверждено и задокументировано. Путь &lt;em&gt;с&lt;/em&gt; hold (переход на более новое ядро с сохранением встроенного Ethernet) пока не проверен на Zero — он помечен ниже. Сделай &lt;a href="https://sovol.lexfrei.dev/ru/zero/os/recovery/#back-up-first-the-checklist#back-up-first-the-checklist"&gt;полный бэкап&lt;/a&gt; перед тем, как это тестировать.&lt;/p&gt;</description></item><item><title>Troubleshooting</title><link>https://sovol.lexfrei.dev/ru/zero/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/troubleshooting/</guid><description>&lt;h1 id="troubleshooting-и-тюнинг"&gt;Troubleshooting и тюнинг&lt;a class="anchor" href="#troubleshooting-%d0%b8-%d1%82%d1%8e%d0%bd%d0%b8%d0%bd%d0%b3"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;То, что кусает при работе Sovol Zero на mainline Klipper, и как это разгрести. Только факты и фиксы — полные процедуры живут на страницах слоёв.&lt;/p&gt;
&lt;h2 id="прошивка-и-can"&gt;Прошивка и CAN&lt;a class="anchor" href="#%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b0-%d0%b8-can"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="canbus_query--flashtoolpy--q-показывает-0-нод"&gt;canbus_query / flashtool.py -q показывает 0 нод&lt;a class="anchor" href="#canbus_query--flashtoolpy--q-%d0%bf%d0%be%d0%ba%d0%b0%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d1%82-0-%d0%bd%d0%be%d0%b4"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Если Klipper &lt;strong&gt;остановлен&lt;/strong&gt;, запрос, возвращающий &lt;code&gt;Total 0 uuids&lt;/code&gt;, — это нормально: эти инструменты перечисляют только неинициализированные / bootloader-ноды, а сконфигурированная в Klipper app-нода не отвечает. Читай это как «всё крутит своё приложение», а не «шина мертва». Запусти Klipper (или переведи ноду в её bootloader), чтобы увидеть её в запросе.&lt;/p&gt;</description></item><item><title>Восстановление</title><link>https://sovol.lexfrei.dev/ru/zero/os/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/os/recovery/</guid><description>&lt;h1 id="восстановление-и-бэкапы"&gt;Восстановление и бэкапы&lt;a class="anchor" href="#%d0%b2%d0%be%d1%81%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Что делает каждый шаг в каждом пути обратимым и как вернуть машину, которая не грузится. Восстановление — это в основном история про бэкапы: сними правильные снапшоты, прежде чем что-то трогать, и мёртвый слой станет восстановлением вместо пересборки.&lt;/p&gt;
&lt;h2 id="back-up-first-the-checklist"&gt;Сначала бэкап — чеклист&lt;a class="anchor" href="#back-up-first-the-checklist"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Сними это, прежде чем что-то стирать. Именно они делают каждый последующий шаг обратимым.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Вендорский стек&lt;/strong&gt; (на уровне файлов, возобновляемый rsync — не сырой &lt;code&gt;dd&lt;/code&gt; по WiFi): вендорский &lt;code&gt;~/klipper&lt;/code&gt; как git bundle, &lt;code&gt;~/printer_data/config&lt;/code&gt;, &lt;code&gt;~/printer_data/build/*.bin&lt;/code&gt;, и сборочные конфиги под каждый чип &lt;code&gt;~/klipper/.config*&lt;/code&gt; (полезные затравки, даже несмотря на устаревшие flash-офсеты).&lt;/p&gt;</description></item><item><title>Ресурсы</title><link>https://sovol.lexfrei.dev/ru/zero/resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/ru/zero/resources/</guid><description>&lt;h1 id="плагин-и-патчи"&gt;Плагин и патчи&lt;a class="anchor" href="#%d0%bf%d0%bb%d0%b0%d0%b3%d0%b8%d0%bd-%d0%b8-%d0%bf%d0%b0%d1%82%d1%87%d0%b8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Два артефакта живут в репозитории как исходники под версионным контролем и задокументированы здесь. Они остаются кодом — сайт их описывает, репозиторий их хранит.&lt;/p&gt;
&lt;h2 id="sovol_codes--плагин-кодов-экрана-крутилки"&gt;&lt;code&gt;sovol_codes&lt;/code&gt; — плагин кодов экрана-крутилки&lt;a class="anchor" href="#sovol_codes--%d0%bf%d0%bb%d0%b0%d0%b3%d0%b8%d0%bd-%d0%ba%d0%be%d0%b4%d0%be%d0%b2-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%ba%d1%80%d1%83%d1%82%d0%b8%d0%bb%d0%ba%d0%b8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вендорский форк Klipper показывает числовые коды на экране-крутилке (&lt;code&gt;101&lt;/code&gt;, &lt;code&gt;103&lt;/code&gt;, диапазон shutdown &lt;code&gt;60+&lt;/code&gt;), &lt;strong&gt;редактируя upstream-файлы ядра на месте&lt;/strong&gt; — &lt;code&gt;klippy/extras/homing.py&lt;/code&gt;, &lt;code&gt;klippy/klippy.py&lt;/code&gt;, &lt;code&gt;klippy/kinematics/corexy.py&lt;/code&gt;. Это связывает продуктовый UI с ядром Klipper, и поэтому принтер застрял на сквошнутом вендорском снапшоте вместо трекинга upstream.&lt;/p&gt;</description></item></channel></rss>