Sensorless homing, а надо ли?
Имеем обычные механические концевики по всем осям, все работает без нареканий, нет никаких проблем. Есть возможность включить в принтере sensorless homing для осей X и Y (для Z использовать не надо, как я понял, точность не та). Нормально работает? Стоит заморачиваться? Или баловство все это?
Популярные вопросы
Не подскажете надо ли ставить отрезок тефлоновой трубки в термобарьер E3D V6 ?
Не подскажете надо ли ставить небольшой отрезок тефлоновой трубки сверху для термобарьер E3D V6 с директором ?
UNI Форум
Обнаружение пропуска шагов и калибровка без концевиков (Stall detection & Sensorless homing)
Открытая прошивка RepRapFirmware
5 сообщений • Страница 1 из 1
demonlibra Помогаю слегка Сообщения: 2552 Зарегистрирован: 18 янв 2020, 11:49 Откуда: Ростов-на-Дону Контактная информация:
Обнаружение пропуска шагов и калибровка без концевиков (Stall detection & Sensorless homing)
Сообщение demonlibra » 10 окт 2021, 18:35
Обнаружение пропуска шагов и калибровка без концевиков Этот документ относится к платам: Duet 2 WiFi / Ethernet, Duet 3 MB6HC и Duet 3 Mini 5+.
Версия прошивки: RepRapFirmware 1.2 и новее (только Duet 2), RepRapFirmware 3.1.1 и новее.
Обзор Драйверы Trinamic TMC2660 (Duet 2 WiFi / Ethernet), драйверы TMC5160 / 2160 (Duet 3 MB6HC) и драйверы TMC2209 (Duet 3 Mini 5+) поддерживают функцию stallGuard. Эта функция позволяет драйверу обнаруживать остановку двигателя. Обнаружение остановки может быть полезно для определения пропуска шагов, например по причине столкновения сопла с препятствием, а также для парковки осей без использования концевых выключателей.
Драйверы TMC2224 на Duet Maestro не поддерживают обнаружение пропуска шагов.
В прошивке (RRF 3.2), функция обнаружения пропуска шагов не работает с платами Duet 3 TOOL1LC и EB3HC и не может использоваться для парковки.
См. Раздел Ограничения конфигурации прошивки Duet 3.
- Порог обнаружения пропуска шагов необходимо настраивать под конкретный шаговый двигатель.
- Драйверы шагового двигателя обновляют состояние обнаружения пропуска шагов только каждые 1 или 4 полных шага, в зависимости от конфигурации.
Таким образом, фактическое положение при обнаружении шага будет соответствовать +/- половине полного шага или +/- 2 полных шага.
Это означает, что данный метод парковки намного менее точный, чем при использовании концевых выключателей. - Обнаружение пропуска шагов ненадежно при низких оборотах двигателя.
На низких скоростях возможны ложные срабатывания. Чтобы избежать этого, прошивка позволяет устанавливать минимальные скорости (в полных шагах двигателя в секунду), ниже которых обнаружение пропуска шагов будет игнорироваться. Эти значения, возможно, потребуется настроить в соответствии с вашими требованиями. Надежное обнаружение пропуска шагов легче настроить при более высоких скоростях двигателя. - Обнаружение пропуска шагов ненадежно при скоростях двигателя, которые слишком высоки, чтобы драйверы могли подавать напряжение, достаточное для поддержания тока двигателя.
Поэтому, если вы хотите использовать обнаружение пропуска шагов во время печати, вы должны ограничить скорость печати до значений, не требующих более высокого напряжения, чем обеспечивает ваш источник питания (максимум 25 В).
См. Раздел Выбор шаговых двигателей: как рассчитать необходимое напряжение источника питания. - Порог обнаружения пропуска шагов немного зависит от температуры двигателя, поэтому нельзя допускать значительных колебаний температуры двигателя.
- Обнаружение пропуска шагов работает путем обнаружения увеличения нагрузки двигателя.
Возможно, потребуется уменьшить ускорение и/или рывок, чтобы избежать ложного обнаружения пропуска шагов. - Очень вероятно, что обнаружение пропуска шагов работает лучше на слаботочных двигателях с большой индуктивностью, чем на сильноточных двигателях с малой индуктивностью, хотя мы не проверили это экспериментально.
К сожалению, двигатели с высокой индуктивностью страдают от снижения крутящего момента и повышенного шума на более низких скоростях, чем двигатели с низкой индуктивностью, поэтому их не рекомендуется использовать, если вы хотите получить перемещения с высокой скоростью.
- full_steps_per_rev — количество полных шагов на один оборот 200 (для двигателей 1.8) или 400 (для двигателей 0.9)
- Rated_current — ток (А)
- Rated_holding_torque — удерживающий момент (Нм).
Старайтесь поддерживать скорость выше 40 мм/с.
- Pnnn:nnn. Номер драйвера для настройки
- Оси X, Y, Z, U, V, W, A, B, C для настройки (альтернатива использованию параметра P)
- Snnn Порог обнаружения пропуска шагов (от -64 до +63, значения ниже -10 не рекомендуются).
Более высокие значения уменьшают чувствительность, более низкие значения повышают вероятность ложного обнаружения остановки. - Fn Режим фильтра
1 = с фильтром (одно показание на 4 полных шага)
0 = без фильтра (по умолчанию, 1 показание на полный шаг) - Hnnn (необязательно) Минимальные количество полных шагов двигателя в секунду, при котором работает обнаружение пропуска шагов.
По умолчанию 200 (попробуйте 400 для двигателей с 0,9 градуса). - Rn Действие при обнаружении пропуска шагов
0 = никаких действий (по умолчанию)
1 = вывести уведомление в консоль
2 = приостановить печать
3 = приостановить печать, выполнить /sys/rehome/.g и возобновить печать
- Выполните в консоли команду M569 P [номер драйвера], чтобы увидеть текущую скорость (мм/сек) переключения в режим spreadCycle.
- Уменьшение значения параметра V увеличивает порог скорости, с которой драйвер переключается со stealthChop на spreadCycle.
Убедитесь, что настройка обнаружения пропуска шагов происходит, когда драйвер находится в режиме stealthChop.
- Использование F1 должно снизить вероятность получения ложных срабатываний, а также позволяет выполнить настройку для более высокой скорости.
В худшем случае (Duet + Duex 5) состояние проверяется каждые 100 мкс.
Поэтому, если вы используете F0, время между полными шагами должно быть не менее 100 мкс, чтобы гарантировать обнаружение пропуска шагов.
При F1 время уменьшено до 25 мкс, но при этом возникает задержка обнаружения пропуска шагов.
Для парковки без концевиков (Sensorless Homing) рекомендуется использовать F0. - Установите самое низкое значение параметра S, при котором отсутствуют ложные обнаружения пропуска шагов.
Типичные значения для двигателей Nema 17 находятся в диапазоне от 1 до 3.
Ложные сообщения об остановке наиболее вероятны при быстром движении, поскольку ускорение увеличивает нагрузку на двигатель.
Ложные сообщения об остановке также более вероятны при горячем двигателе. - Если трудно подобрать значение S, которое надежно обнаруживает пропуск шагов без ложных срабатываний попробуйте следующее:
- Увеличьте минимальное количество полных шагов в секунду (параметр H) и используйте более высокие скорости перемещения.
- Уменьшите ускорение (M201) и/или рывок (M566).
- Если обнаружение пропуска шагов используется для парковки без концевиков, уменьшите ток двигателя на время парковки.
Смотрите команду M913: Set motor percentage of normal current.
- Используйте R0, если вы настраиваете обнаружение пропуска шагов для парковки без концевиков (Sensorless Homing).
- Используйте R1 при экспериментировании с другими параметрами, чтобы вы могли видеть, какой эффект они оказывают.
- Используйте R2 для автоматической остановки печати при обнаружении пропуска шагов.
- Используйте R3 чтобы выполнить парковку осей и продолжить печать автоматически.
У вас должен быть файл /sys/rehome.g с командами парковки.
На декартовом принтере или принтере CoreXY, как правило требуется парковка только для двигателей X и Y.

Не бойся поломать. Бойся не починить ))
demonlibra Помогаю слегка Сообщения: 2552 Зарегистрирован: 18 янв 2020, 11:49 Откуда: Ростов-на-Дону Контактная информация:
Re: Обнаружение пропуска шагов
Сообщение demonlibra » 10 окт 2021, 20:37
личный опыт настройки
В случае платы DUET 3 MINI 5+ необходимо иметь прошивку не старше RepRapFirmware 3.3.
Прошивка RepRapFirmware 3.2 не обнаруживает пропуск шагов с драйверами TMC2209.Настоятельно рекомендую перед настройкой скинуть ремень.
Я после многократных попыток настройки снял мотор и подключил на столе. Для проведения экспериментов написал следующий сценарий: stalldetection_test.gcodeglobal counter=0 M569 P0 D3 V20 ; tpwmthrs 40 (117.2 mm/sec) M569 P1 D3 V20 ; tpwmthrs 40 (117.2 mm/sec) M906 X1000 Y1000 ; Current mA M913 X35 Y35 ; Current % M566 X1 Y1 ; Jerk mm/min M201 X300 Y300 ; Accelerations mm/sec^2 M220 S20 ; Set speed factor override percentage M915 X Y S0 F0 H475 R1 ;G28 G92 X0 Y0 G0 X20 Y20 while true if global.counter=10 echo "10 pass" set global.counter=0 G4 S3 G1 X145 F6000 G1 X10 F6000 M400 set global.counter=global.counter+1-
Исключение переключения в режим SpreadCycle повышением скорости переключения командой M569 Vn:
M569 P0 D3 V40 ; tpwmthrs 40 (117.2 mm/sec) M569 P1 D3 V40 ; tpwmthrs 40 (117.2 mm/sec)Т.е. переключение в режим SpreadCycle будет происходить при задании скорости перемещения более 117 мм/сек (G1 F7020).
Этого достаточно, так как все эксперименты будут проводиться со скоростями меньше 100 мм/сек.Параметр V необходимо подбирать под свою конфигурацию. Для вывода данных выполните в консоле команды:
M569 P0 M569 P1M913 X35 Y35 ; Процент тока, %
В режиме StealthChop при токе меньше 350 мА мотор начинал гудеть, меньше 300 мА — драйвер уходил в аварийное состояние.
Error: short-to-ground reported by driver(s) 0
Warning: high temperature reported by driver(s) 0M566 X1 Y1 ; Рывок, мм/мин M201 X300 Y300 ; Ускорения, мм/сек^2- Скорость рекомендую задавать в диапазоне 20 . 30 мм/сек.
Скорость легко можно менять ползунком в окне Status. - Рассчитайте теоретическое значение H — фильтр по количеству шагов мотора в секунду для функции определения пропуска шагов.
H ≈ / x x 0.95- Длина периметра шкива GT2-20 равна 40 мм.
- Количество шагов мотора на 1 оборот вала для двигателя 1.8⁰ — 200, для двигателя 0.9⁰ — 400.
- Коэффициент 0.95 определён экспериментально.
Скорость оси, мм/сек M915 Hn M915 Sn 10 мм/с H95 S52 15 мм/с H142 S26 20 мм/с H190 S7 30 мм/с H285 S-20 40 мм/с H380 S-38 50 мм/с H475 S-50 60 мм/с H570 S-58 
Выбрал скорость 20 мм/сек, при которой M915 S ближе к 0.
Провёл эксперименты с остановкой вала рукой и подобрал следующие параметры:M915 X Y S6 F0 H187 R1PURELOGIC PL42H48-D5
Скорость оси, мм/сек M915 Hn M915 Sn 20 мм/с H95 S43 30 мм/с H142 S16 35 мм/с H166 S6 40 мм/с H190 S-2 
Выбрал скорость 30 мм/сек.
Провёл эксперименты с остановкой вала рукой и подобрал следующие параметры:M915 X Y S18 F0 H141 R1
Не бойся поломать. Бойся не починить ))
demonlibra Помогаю слегка Сообщения: 2552 Зарегистрирован: 18 янв 2020, 11:49 Откуда: Ростов-на-Дону Контактная информация:
Re: Обнаружение пропуска шагов и Sensorless homing
Сообщение demonlibra » 10 окт 2021, 23:34
Sensorless homing Sensorless homing обеспечивает парковку осей без использования концевых выключателей, за счёт определения пропуска шагов при достижении крайнего положения. Настройка Sensorless homing требует проведения экспериментов для определения параметров.
Настройка Sensorless homing 1. Настройка
Первым шагом в настройке является изменение типа концевого выключателя на sensorless в файле config.g.
Чтобы изменить параметры концевого выключателя используется команду M574 в файле config.g.M574 X1 Y1 S3Команда выше устанавливает концевые выключатели в режим sensorless.
Следующее, что нужно сделать на этом шаге, задать параметры обнаружения пропуска шагов командой M915: Configure motor stall detection в config.g.
M915 X Y R0 F0Сохраните изменения. Не нажимайте «да» для перезагрузки, т.к. есть другие изменения, которые необходимо внести.
2. Структура файлов парковки
Следующим шагом является изменение файлов парковки осей X и Y («homex.g», «homey.g» и «homeall.g»)
Необходимо использовать команду M913 для изменения тока моторов.
M906 задаёт ток двигателей, а M913 — процентом от тока двигателя.
homex.gВаш homex.g должен выглядеть примерно так:
M400 M913 X70 Y70 ; drop motor current to 70% M400 G91; relative positioning G1 H2 Z10 F12000 ; lift Z relative to current position G1 H1 X-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F12000 ; go back a few mm G1 H1 X-320.5 F7000 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 M913 X100 Y100 ; return current to 100% M400Файл «homey.g» должен выглядеть аналогично, только с переменными Y вместо X.
В файле «homeall.g» обязательно включите M400 M913 M400 в начало и конец частей парковки X и Y «homeall.g».Как видно из кода в шаге 2, F-параметры команд G1 для X и Y, довольно высоки. Это связано с тем, что для Sensorless Homing необходимо развивать минимальную скорость. Задайте скорость выше 3600 мм/сек (60 мм/мин). Сохраните изменения.
4. Настройте M906 в config.g
Настройте ток двигателя в файле config.g командой M906.
Постарайтесь использовать как можно более низкий ток (желательно менее 500 мА, если возможно, на X и Y).
Например, на моих CR-10 и Ender-3 мои X и Y установлены на 400 мА в M906. Сохраните изменения.Сохраните изменения и перезапустите плату Duet.
5. Проверьте изменения параметров
При аварии при попытке выполнения парковки необходимо уменьшить скорость параметром F в командах G1 или уменьшить ток двигателя (M906 и M913).
Проводите тестирование для поиска адекватных параметров.
Не бойся поломать. Бойся не починить ))
demonlibra Помогаю слегка Сообщения: 2552 Зарегистрирован: 18 янв 2020, 11:49 Откуда: Ростов-на-Дону Контактная информация:
Re: Обнаружение пропуска шагов и Sensorless homing
Сообщение demonlibra » 11 окт 2021, 00:13
личный опыт с мотором Stepperonline 17HM19-2004S 2А 0.9⁰
У меня получилось парковать оси X и Y со следующими параметрами:
config.g; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y ; Configure motor stall detection M915 X Y R0 F0; homex.g ; called to home the X axis M400 ; Wait for current moves to finish M569 P0 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for X axis M569 P1 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for Y axis M913 X35 Y35 ; Decrease motors current to 35% from 1000 mA = 350 mA M566 X6 Y6 ; Decrease Jerk mm/min M201 X300 Y300 ; Decrease Accelerations mm/sec^2 G91 ; Relative positioning M915 X Y S6 F0 H187 R0 ; Configure motor stall detection G1 H1 X5 F1200 ; Move X axis from left stop G1 H1 X-154 F1200 ; Move X axis to left stop G1 X10 F1200 ; Move X axis from left stop M400 ; Wait for current moves to finish M569 P0 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M569 P1 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M913 X100 Y100 ; Return motors current to 100% M566 X900 Y900 ; Return Jerk 15 mm/min M201 X1000 Y1000 ; Return Accelerations 1000 mm/sec^2 G90 ; Absolute positioning M400 ; Wait for current moves to finish; homey.g ; called to home the Y axis M400 ; Wait for current moves to finish M569 P0 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for X axis M569 P1 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for Y axis M913 X35 Y35 ; Decrease motors current to 35% from 1000 mA = 350 mA M566 X6 Y6 ; Decrease Jerk mm/min M201 X300 Y300 ; Decrease Accelerations mm/sec^2 G91 ; Relative positioning M915 X Y S6 F0 H187 R0 ; Configure motor stall detection G1 H1 Y5 F1200 ; Move Y axis from left stop G1 H1 Y-159 F1200 ; Move Y axis to left stop G1 Y10 F1200 ; Move Y axis from left stop M400 ; Wait for current moves to finish M569 P0 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M569 P1 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M913 X100 Y100 ; Return motors current to 100% M566 X900 Y900 ; Return Jerk 15 mm/min M201 X1000 Y1000 ; Return Accelerations 1000 mm/sec^2 G90 ; Absolute positioning M400 ; Wait for current moves to finish; homeall.g ; called to home all axes ;HOMING Z M150 X2 R200 U0 B0 S3 ; Change LedLight of the screen to blue G91 ; relative positioning M913 Z60 ; set 60% motor current for safety before move G1 H2 Z-1 F300 ; lift Z relative to current position G1 H1 Z160 F600 ; move Z up until the endstop is triggered G1 H2 Z-3 F300 ; lift Z relative to current position G1 H1 Z3.5 F75 ; move Z up until the endstop is triggered M913 Z100 ; set 100% motor current for motor Z ;PREPARING HOMING X and Y M400 ; Wait for current moves to finish M569 P0 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for X axis M569 P1 D3 V40 ; Change from SpreadCycle to StealthChop at 117.2 mm/sec for Y axis M913 X35 Y35 ; Decrease motors current to 35% from 1000 mA = 350 mA M566 X6 Y6 ; Decrease Jerk mm/min M201 X300 Y300 ; Decrease Accelerations mm/sec^2 G91 ; Relative positioning ;HOMING X and Y M915 X Y S6 F0 H187 R0 ; Configure motor stall detection G1 H1 X5 F1200 ; Move X axis from left stop G1 H1 X-154 F1200 ; Move X axis to left stop G1 X10 F1200 ; Move X axis from left stop M400 G1 H1 Y5 F1200 ; Move Y axis from left stop G1 H1 Y-159 F1200 ; Move Y axis to left stop G1 Y10 F1200 ; Move Y axis from left stop M400 ; Wait for current moves to finish M569 P0 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M569 P1 D3 V1000 ; Change from SpreadCycle to StealthChop at 4.7 mm/sec for X axis M913 X100 Y100 ; Return motors current to 100% M566 X900 Y900 ; Return Jerk 15 mm/min M201 X1000 Y1000 ; Return Accelerations 1000 mm/sec^2 G90 ; Absolute positioning M400 ; Wait for current moves to finish ;HOMING X and Y manual without limit switches ;M150 X2 R0 U0 B200 S3 ; Change LedLight of the screen to blue ;M18 X Y ; Switch off motor X and Y ;M300 P500 ; Beep ;M291 P"Move head X0 Y0" R"HOMING X Y" S2 ; Show message on the screen ;M17 ; Switch on all motors ;G92 X0 Y0 ; Set current position X=0 Y=0Подбор скорости перемещения и параметров команды M915 были выполнены выше.
Файл homex.g исполняется при вводе в консоле G28 X
Файл homey.g исполняется при вводе в консоле G28 Y
Файл homeall.g исполняется при вводе в консоле G28
Не бойся поломать. Бойся не починить ))
Отключаем SENSORLESS HOMING (TMC2130) отдельно по осям (Marlin bugfix 1.1.X)
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
кинематика H-BOT на рельсах
При активации функции SENSORLESS HOMING с драйверами TMC2130, она по умолчанию активируется для всех драйвером разом. Раздельного включения по осям в открытую как бы нет.
Не смотря на то, что у меня стоит оптический концевик (низ стола, Z_MAX) и подключен именно он (а не провод ‘SENSOR LESS’ с драйвера), при поманде @GO HOME@ (ака G28) мотор стола работает в странном весьма режиме, пока не доберётся до концевика; после этого всё норм.
Словно делает один шаг и меряет ток. делает-меряет.. и т.д. И при этом всё это не в режиме stealthChop™ а в spreadCycle™, не смотря на низвую скорость и правильность настройки порога переключения гибридного режима перемещения.
Пока в голове созрело где и что искать, прошли почти сутки. В сети ответ найден не был, решил поискать сам, на что потребовалось минут 10)))
// Disable Z axis sensorless homing if a probe is used to home the Z axis
//а дальше коментим ту ось, что нужна. Мне нужна Z
#define X_SENSORLESS (AXIS_HAS_STALLGUARD(X) && defined(X_HOMING_SENSITIVITY))
#define Y_SENSORLESS (AXIS_HAS_STALLGUARD(Y) && defined(Y_HOMING_SENSITIVITY))
//#define Z_SENSORLESS (AXIS_HAS_STALLGUARD(Z) && defined(Z_HOMING_SENSITIVITY))
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
BTT SKR 2 Setup Guide

A visual step by step wiring and setup guide for installing the BTT SKR 2 3D printer mainboard from Bigtree-tech into your 3D printer.

Importantly I would like to thank BIGTREE-TECH and you the readers of Make ‘N’ Print by creating this setup guide for the BTT SKR 2 3D Printer Mainboard.
As always thanks for reading and keep well.
BTT SKR 2 Setup Guide Category Links. Hardware Installation Power Supply Jumpers Power Connections Thermistors Stepper Driver Jumper Configuration Sensorless Homing Stepper Driver Placement Stepper Motor Wiring Limit Switches for Endstops Filament Runout Sensor BTT UPS 24V LCD Installation TFT Touch Screen Installation Fans BLTouch Installation USB Flash Drive Support Wi-Fi NeoPixel / RGB LED Hardware Installation
While most 3D printer mainboards are relatively easy to install, for newcomers, upgrading a 3D printer’s mainboard can be daunting. But, don’t worry, following along with this setup and installation guide for the BTT SKR 2 mainboard. Should make the setup and wiring of the SKR 2 from Bigtree-Tech relatively easy.
The odd bit of wiring

Although we intend to keep the guides as simple and easy to follow as possible, there is always the chance that the odd cable or connector needs rewiring. More often than not, this is a simple case of pushing the metal retaining pins down with a tool or pin and carefully pulling out the wire. Then with the wiring removed, lift the pushed down pin backup with a fingernail. Finally, reposition the wiring as required, and plug them back into the connector. Whether you need to rewire or not is dependent on each printer and its components.
Affilate links below: Terminal Pin Removal Tools 
Available from AliExpress $3.20 (11pcs) 
Available from Amazon USA $11.96 Power Supply Jumpers
IMPORTANTLY do NOT turn on the SKR 2 mainboard without double-checking the power jumper is in the correct position. Failure to do so may damage the mainboard and components of the 3D printer.
SKR 2 powered by USB

If powering the board via the USB port, then the power jumper needs to connect the middle header pin to the bottom pin labelled USB.
Importantly this is not a replacement method of powering the board. Instead, it is a means of testing the board and firmware settings before installing the mainboard. While powered via the USB port, TMC drivers will show a TMC Connection Error.
SKR 2 powered by PSU

When powering the BTT SKR 2 from the Power Supply Unit (PSU), the power jumper needs to connect the middle header pin to the top pin labelled VDD.
Power Connections

Before removing and installing a 3D printer mainboard, double-check that the mains to the Power Supply Unit are off.
As with any electrical wiring, ensure the sequence of wiring and the polarity are checked and double-checked. In particular, the wiring for the power supply, heated bed, stepper drivers and fans.
If you have never rewired a 3D printer’s mainboard before, let’s begin by clarifying the meaning of polarity. In short, ensure the Positive (+) red wire goes to Positive (+) connections and the Negative (-) black cables go to Negative (-) connections.
While installing the power cables is one of the easier steps in installing the BTT SKR 2 mainboard. But to ensure the electrical installation goes smoothly. Follow the next steps in this guide to verify the power connections are set up correctly for the BTT SKR 2.
DC IN

Without a doubt, the BTT SKR 2 mainboard needs power from the Power Supply Unit (PSU) to function. So let us start there. Firstly take a red Positive (V+) cable from the PSU and attach it to the right-hand side of the DCIN connector. Additionally, a black Negative (V-) wire connects from the PSU to the left-hand side of the DCIN terminal.
Heated Bed

Importantly the polarity of the heated bed terminal is different to that of the DCIN connection. Specifically, the red Positive (V+) from the Power Supply Unit (PSU) connects to the left-hand side and the black Negative (V-) to the right.
Some will argue polarity doesn’t matter on heated beds. Yet on many beds, it is critical. Especially those heated beds with LED’s attached on the underside, as these indicate the power is being received and flicker when controlled by PID tuning. Consequentially most heated beds have positive and negative traces and contacts marked on them.
Heating Element

For the most part, heating elements on 3D printers are not polarity sensitive and are insertable either way. But if the cables have markings on them, check the manufactures documentation for references to polarity.
Because the BTT SKR 2 can support multiple hotends, the first hotend inserts into HE0 and the second into HE1.
Thermistors

Similarly, thermistors are not polarity sensitive, but they must insert into their corresponding connections. For example, the heated bed thermistor plugs into TB, while the first hotend inserts into TH0 and the second hotend into TH1.
If there are long black Dupont connectors on the thermistor, these are still usable. However, I recommend changing the connector to a two-pin JST-XH, as they will hold better to the mainboard. Alternatively, you could use a hot glue gun to keep the connector firmly in its position.
Stepper Driver Jumper Configuration
Because the BTT SKR 2 mainboard supports many different stepper drivers, it needs to know which way to wire the connections. It does this with the use of jumpers on the header pins. These jumpers bridge the selected pins together, forming pathways allowing the stepper driver to communicate to the mainboard.
SPI Stepper Drivers

For those using SPI ready stepper drivers, four jumpers join the first column of header pins to the middle, starting from the first row to the last.
UART Ready TMC2208, TMC2225, TMC2209, TMC2226 Stepper Drivers

While UART ready stepper drivers only require a single jumper connector. Specifically, this connects the left column to the middle column of the header pins, but only on the second row.
A4988, 8825 stepper drivers

Finally, for stepper drivers such as the A4988 and 8825, four jumpers join the middle column of header pins to the last column, starting from the first row to the very top.
Sensorless Homing

Without a doubt cutting the DIAG pin from a stepper driver is a thing of the past with the BTT SKR 2 mainboard. Moreover, a small jumper placed onto the DIAG pin on the mainboard enables the sensorless homing feature. While removing the jumper disables it again.
Stepper Driver Placement

While the BTT SKR 2 supports various stepper drivers, it is paramount that they are the correct way around. Failure to do so can damage the stepper driver and the mainboard.
Although this sounds disconcerting, finding the correct orientation for the stepper driver is usually simple. Moreover, many stepper drivers have the EN or Enable pin designation labelled. Then you would match the EN on the stepper driver to the EN pin connection on a mainboard.
But the silkscreen on the front of the SKR 2 does not indicate the EN Pin. Nonetheless, the EN pin is the first pin on the far left-hand side of the stepper driver interface.
Stepper Motor Wiring

Because the SKR 2 mainboard naturally works with many different 3D printers, the orientation of the stepper motor wiring is crucial. As such, the stepper motor cables may require some rewiring.
But first, let’s explain a little more about how they work. Fundamentally Nema 17 stepper motors operate with two coils and are wired in pairs. Namely, the first pair, 1A and 1B, move the stepper motor in one direction, while 2A and 2B move in the opposing direction.
Sadly with so many stepper motors on the market and no set standard on their wiring, writing a guide becomes near impossible. Instead, use the diagram above to match the pairs (1A & 1B, 2A & 2B) of the stepper motor to the mainboard.
For more information on matching the stepper motors wiring to a 3D printer’s mainboard, have a read of the Stepper Motor Wiring guide. It shows three easy methods of finding the stepper motors paired connections and matching them to a 3D printer’s mainboard.
Limit Switches for Endstops

Whereas the wiring of the stepper motors is a little challenging, however, in contrast connecting and wiring the endstop is very easy. For example, the endstop for the X-axis plugs into the X-Stop connection on the BTT SKR 2.
However, the correct wiring orientation must match the SKR 2 mainboards, as shown below. If the limit switch or endstop does not use the voltage pin, leave off the voltage connection.
5V BLACK (GND) WHITE (Signal) Filament Runout Sensor

But for those using other filament sensors, the polarity and orientation of the wiring must match below.
5V BLACK (GND) WHITE (Signal) BTT UPS 24V

5V – Not Required GND – Not Required WHITE (Signal) LCD Installation
Without a doubt, wiring an LCD into the SKR V2 is another easy step in the BTT SKR 2 Setup Guide. Especially as the cables only attach one way into the EXP1 and EXP 2 connections on the SKR 2.

However, ensure that each cable connects to its counterpart. For example, the EXP1 on the LCD connects to the EXP1 connector on the mainboard.
TFT Touch Screen Installation

Although attaching a TFT display to the SKR 2 mainboard is an easy affair. However, the wiring orientation must match the TFT connector on the BTT SKR 2 mainboard.
Those using a TFT display from Bigtree-Tech have it a little easier when installing the display, as you insert the connector with all the wires in a single plug into the TFT screen. Then with the other end of the cable, attach it to the BTT SKR 2 mainboard. When inserting the cables ensure the one loose cable (RESET) sits to the far right. However, as the other wiring connector is rotatable, the 5V connection must be to the far left on the SKR 2.
Importantly follow the 5V cable from the SKR 2 to the TFT display to ensure correct orientation.
To further aid in visualising the SKR 2 TFT pinout and wiring orientation. I have used a custom cable in the imagery above to match the table below. For example, the far-right Yellow wire is the Reset, and the far-left Red wire is the 5V connection.
+5V GND TX RX RESET A point of note, not all TFT models have the pin layout in the same order, so care needs to be taken. This is why the TFT cable that BTT or BIQU supply has the reset cable loose, allowing the other pin’s orientation to be reversible by turning the connector 180 degrees.
TFT 35 E3

Clearly, a popular choice for many is the TFT 35 E3 from BIGTREE-TECH. Consequentially the examples above and below show the pin layout for the TFT 35 E3. Specifically, the Reset pin is on the far left, and the 5V is nearest to the edge of the TFT board.
RESET RX TX GND +5V FANS
Again wiring the fan is simple, but the polarity is essential, as too is the correct voltage of the fan. For instance, if using a 12 Volt PSU to power the SKR V2, you will need 12V fans. Similarly, if using a 24 Volt power supply, you will need 24V fans.
But pay attention to the polarity. Specifically, the Positive (+) red cable is on the left, and the black Negative (-) is on the right.
RED (V+) BLACK (V- / GND) Filament Part Cooling Fans

By default, the part cooling fans on the SKR V2 mainboard are FAN0 for the first hotend, which is closest to the front of the board. FAN1 is for a second hotend part cooling fan and sits above FAN0. While FAN2, located above FAN1, is designated as a part cooling fan. However, FAN1 and FAN2 can be re-assigned within the Marlin firmware for other uses.
But FAN3 located between the E0 and E1 stepper cable connections is not a controllable PWM fan output and is perhaps best used for keeping the mainboard cool. Similarly, FAN4 situated next to the X-Axis stepper motor connection, is not a controllable PWM fan output.
RED (V+) BLACK (V- / GND) BLTouch Installation
Because there are many clones of the BLTouch, their wiring could be different to a genuine Antclabs BLTouch probe. However, there tend to be two main patterns to the wiring schemes. Firstly there is the Antclabs colour scheme, followed by an alternative colour coding of the wiring used by most clones. Because of this, I have listed these two main variants below.
Antclabs BLTouch wiring

GROUND VOLTAGE SIGNAL Ground Signal Alternative BlTouch Colour Code Wiring

GROUND VOLTAGE SIGNAL Ground Signal A point of note, I have listed both the original and alternative wiring colour codings above from left to right. Furthermore, the far left GND (Brown or Blue) is closer to the RGB NeoPixel connection, and the White probe SIGNAL is closest to the I2C header pins.
BlTouch Alternative Wiring

But if you experience issues with the probe not deploying within Marlin. Then there is an alternative method to try. Namely, the GND (Black) and Signal (White) wires from the Probe connector moved to the Z- connection on the SKR 2 mainboard. Although, this will require some rewiring and tweaking of the firmware. It does tend to fix many issues.
Importantly the wiring orientation follows the same pattern as the endstop connections. Specifically, the GND black wire connects to the middle pin and the SIGNAL white wires to the bottom pin.
NOT REQUIRED BLACK (GND) WHITE (Signal) USB Flash Drive

Because the USB U-Disk function uses the same SPI interface as the Wi-Fi module, there are a few considerations before enabling this. For example, the Wi-Fi feature runs in UART mode with the U-Disk option enabled. But, this only works in Marlin firmware and not RepRapFirmware.
Enabling the USB U-Disk option requires placing jumpers on both columns at the bottom and middle header pins.
Wi-Fi
If using the BTT SKR V2 mainboard with RepRapFirmware and wish to use the Wi-Fi connection. Then the U-Disk mode needs disabling by placing jumpers on the middle and top header pins.
NeoPixel / RGB LED

When using NeoPixel or WS2812 RGB LEDs, the wiring orientation is with the black (-/GND) wire to the left, the green (Signal) in the middle and the red (5V) to the right.
Ground (Black) Signal (Green) 5V (Red) BTT SKR V2 Setup Installation Complete
Congratulations on completing the BTT SKR V2 Setup Guide and successfully installing the BTT SKR V2 into your 3D printer.
Affilate links below: BTT SKR V2 
Available from AliExpress from $54.59 Available from BIQU Directly from $47.88 Firmware Installation
To accompany the BTT SKR 2 Setup Guide, we have created the Consolidated Marlin Guide to aid in setting up the firmware for the SKR V2 with Marlin firmware. Furthermore, the guide features selectable options to tailor the Consolidated Marlin Guide to your needs.