Tmc connection error ender 3

Установка SKR 1.3 + TMC2208 UART Содержание Введение Данная статья описывает опыт установки на принтер Creality3D Ender-3 и Ender-3 Pro материнской платы BIG TREE TECH (BIQU) SKR v1.3 с драйверами Trinamic TMC2208 в режиме управления по UART с последующей настройкой и прошивкой Marlin 2.x bugfix. Для чего это нужно? Плата BIG TREE TECH (BIQU) […]

Содержание

  1. Установка SKR 1.3 + TMC2208 UART
  2. Содержание
  3. Введение
  4. Для чего это нужно?
  5. Что нам понадобится
  6. Электроника
  7. Важно: считаем ток ШД!
  8. Подготовка драйверов
  9. Модификация разъемов концевиков
  10. Извлечение штатной платы
  11. Установка Джамперов в режим UART
  12. Подключение SKR 1.3
  13. Прошивка
  14. Дисклеймер
  15. TMC Connection Error on SKR V1.4 Turbo with TMC2208 drivers #440
  16. Comments
  17. TMC Connection Error on SKR V1.4 Turbo with TMC2208 drivers #440
  18. Comments

Установка SKR 1.3 + TMC2208 UART

Содержание

Введение

Данная статья описывает опыт установки на принтер Creality3D Ender-3 и Ender-3 Pro материнской платы BIG TREE TECH (BIQU) SKR v1.3 с драйверами Trinamic TMC2208 в режиме управления по UART с последующей настройкой и прошивкой Marlin 2.x bugfix.

Для чего это нужно?

Плата BIG TREE TECH (BIQU) SKR v1.3 оснащена 32-битным микропроцессором LPC1768 на ядре ARM Cortex-M3. Данный микропроцессор обладает на порядок более внушительными вычислительными возможностями, чем ATmega1284P, установленный на штатной плате Creality 1.1.x, которой оснащаются принтеры серии Ender. Это дает возможность одновременно задействовать нагружающие микропроцессор и занимающие много памяти функции, такие как использование Linear Advance, автоуровня типа BLTouch/3DTouch, плавных ускорений S Curve Acceleration и др. Кроме того, в целом повышается быстродействие системы и максимально достижимая скорость печати.

Помимо этого, плата BIG TREE TECH (BIQU) SKR v1.3 имеет еще несколько важных преимуществ:

  1. Колодки для драйверов в форм-факторе Polulu (SilentStepStick) — возможность установить любые поддерживаемые прошивкой драйвера без необходимости перепайки и колхозинка штатной платы
  2. Возможность установки до 5 драйверов и 2 нагревателей хотенда — можно установить дополнительный экструдер, toolchange-систему, MMU-ситему, использовать выход на второй нагреватель как дополнительный управляемый PWM-выход (подсветка/охлаждение)
  3. Наличие предохранителей на плате — меньше вероятность спалить мосфет стола или хотенда при случайном замыкании
  4. Возможность подключить цветной (сенсорный) дисплей, наличие дополнительных AUX портов
  5. Разводка под управление драйверами по UART и SPI «из коробки»

Для управления шаговыми двигателями (ШД) было решено использовать драйвера Trinamic TMC2208. Это относительно новые драйвера, пришедшие на смену хорошо зарекомендовавшему себя поколению TMC21XX. К их преимуществам можно отнести:

  1. Технология StealthChop2 – тишина работы моторов
  2. Технология SpreadCycle – оригинальный алгоритм direct current управления от Trinamic, позволяет точно управлять током в обмотках ШД для увеличения точности позиционирования и момента на высоких скоростях
  3. Возможность работы в режиме нативного дробления до 1/256 шага или с меньшим дроблением, но с интерполяцией до 1/256.
  4. Возможность управления по UART

На последнем пункте остановимся подробнее. В данной статье рассматривается именно способ установки драйверов c управлением по UART. Это позволяет из прошивки конфигурировать ток, дробление шага, интерполяцию, режим чоппера и другие параметры работы драйвера. Кроме того, в прошивке Marlin (и, возможно, в других) реализован так называемый гибридный режим, суть которого в автоматическом переключении драйвера из тихого режима StealthChop2 в более «мощный» SpreadCycle при достижении определенной скорости (hybrid mode threshold). Это позволяет «поддать жару», когда это нужно, наслаждаясь тишиной в остальное время. Помимо этого, используя управление по UART, можно настроить фазы чоппера SpeadCycle для достижения меньшего уровня шума в этом режиме (я пока этого не делал и это тема для отдельной статьи).

Что нам понадобится

  1. Принтер Creality3DEnder-3/Ender-3 Pro (Ваш К.О.)
  2. Плата BIG TREE TECH (BIQU) SKR v1.3
  3. Драйвера Trinamic TMC2208v2.1 или v3.0
  4. Паяльник
  5. Набор шестигранных ключей
  6. Надстройка PlatformIO для IDE VS Code
  7. Прошивка Marlin версии bugfix-2.0.x (самая свежая)
  8. Вольтметр
  9. Мелкая отвертка под плоский шлиц (лучше диэлектрическая)

Электроника

Важно: считаем ток ШД!

Насколько я успел заметить, на принтеры Creality3D устанавливается широкий спектр ШД, отличающихся своими характеристиками, в первую очередь – максимальным током обмоток. Некоторые моторы практически невозможно «нагуглить» по маркировке и узнать требуемый им ток. Поэтому для того, чтобы действовать наверняка, я советую перед заменой платы выяснить, какой ток установлен для Ваших конкретных ШД.

На дефолтной плате Creality 1.1.x установлено четыре драйвера A4988, распаянных непосредственно на плате. Рядом с каждым драйвером установлен потенциометр (turnpot), который задает опорное напряжение Vref.

Внимание! Настройка (и измерение) Vref должна производиться с отключенными проводами ШД, но подключенным основным питанием платы.

  • Отключите от платы провода ШД.
  • Включите питание.
  • Аккуратно измерьте напряжение между центром «крутилки» потенциометра и землей (за землю можно взять черный провод, приходящий в винтовую колодку на плате с блока питания) для каждого из драйверов, запишите.

Теперь посчитаем ток, который нужно установить для наших конкретных ШД на новых драйверах.
Дело в том, что Vref для драйвера A4988 задает максимальный ток Imax, в то время как для TMC2208 мы задаем среднеквадратичное значение тока Irms

Приступим к расчетам:

Это и есть нужное нам значение тока новых драйверов. При управлении по UART данного расчета достаточно. Тем, кто не хочет управлять по UART, то есть устанавливает драйвера в standalone-режиме, необходимо посчитать Vref для TMC2208 по следующей формуле:

Указанная выше формула справедлива только для наиболее распространенных вариантов исполнения драйверов TMC2208 с референсным резистором Rsense = 0.11 Ом.

Подготовка драйверов

Для того, чтобы использовать UART-режим для управления драйверами, необходимо АККУРАТНО запаять на них перемычку J2 (см. фото).
Здесь и далее показаны драйвера от BIGTREETECH версии 2.1, но для драйверов от других производителей, например Fysetc, действия будут аналогичными.
Для драйверов версии 3.0 инструкции аналогичны.

Модификация разъемов концевиков

Для подключения родных двухконтактных разъемов концевиков в трехконтактные разъемы на плате SKR нужно модифицировать провода одним из способов (чтобы провода подключались к двум нижним пинам разъема, см. рисунок):

  1. «Переобуваем» провод в трехпиновый корпус – самый лучший вариант, если есть такие корпуса
  2. Подрезаем один из двух ключевых выступов корпуса разъема на проводе так, чтобы он правильно вошел в разъем на плате (в два нижних пина на соответствующем разъеме)

Извлечение штатной платы

Перед отсоединением разъемов от платы, не забудьте пометить удобным способом провода, на которых нет заводских меток.

  • Отключаем питание принтера
  • Снимаем крышку с корпуса электроники
  • Отключаем вентилятор охлаждения от платы
  • Аккуратно удаляем термоклей со всех разъемов
  • Отключаем все провода от платы
  • Откручиваем плату от корпуса электроники
  • Откручиваем корпус электроники от рамы принтера (один из винтов находится снизу, под принтером).

Установка Джамперов в режим UART

  • Убираем с платы все джамперы
  • Устанавливаем пять джамперов возле площадок драйверов (включает управление по UART)
  • Устанавливаем один джампер в центре платы на два левых контакта (INT +5V отвечает за режим питания контроллера – от внешнего БП). Правая пара контактов отвечает за питание по USB.

Подключение SKR 1.3

  • Устанавливаем драйвера: черные ножки в черные разъемы, цветные ножки (они могут быть синими или красными) в красные разъемы. Если дрова поставить вверх ногами – дровам кирдык.
  • Хотя сама плата запускается от 5 V по USB, драйвера не будут работать без подключенного основного питания 24 V, и на дисплее будет отображаться TMC connection error.
  • Теперь подключаем все провода в соответствующие разъемы платы (внимание на полярность!), для этого может потребоваться немного распотрошить жгут проводов.
  • Вентилятор обдува детали подключаем в разъем FAN,
  • Вентилятор охлаждения электроники – в разъем 12/24 V (в самом углу платы, возле разъема ШД оси X)
  • Вентилятор охлаждения радиатора печатной головы – в разъем нагревателя второго хотенда HT1 (винтовая колодка) если у нас только 1 хотенд, иначе параллельно вентилятору охлаждения электроники.
  • Экран подключаем в разъем EXP1,
  • Провода концевиков – в трехпиновые разъемы Xmin, Ymin, Zmin на плате,
  • Остальное подключается очевидным образом

Прошивка

Дисклеймер

Данный раздел предполагает, что Вы знаете, как конфигурировать прошивку Marlin.
Здесь будут описаны только специфические настройки для платы SKR 1.3 и драйверов TMC2208 с управлением по UART, а также несколько других полезных твиков.
Если Вы не знаете как конфигурируется прошивка, как устанавливаются размеры области печати, шаги по осям, ускорения и прочие основные параметры принтера – для начала обязательно изучите эту информацию, например по видео Дмитрия Соркина, и только после этого продолжайте.

В качестве отправной точки крайне советую использовать конфигурационные файлы для Ender-3 из папки с примерами, это избавит от необходимости конфигурирования концевиков, направлений моторов, зоны печати и прочих важных вещей – там это уже сделано. Здесь эти настройки рассматриваться не будут.

Источник

TMC Connection Error on SKR V1.4 Turbo with TMC2208 drivers #440

I have been trying to get my Ender 3 v1 running with the BTT SKR v1.4 Turbo board and BTT TMC2208 v3.0 drivers in UART mode. No matter what I try I keep getting TMC CONNECTION ERROR. I have also connected over USB to my computer and enabled the TMC_DEBUG to get some extra information through Pronterface, but when running a M122 I get all false/error on each of the four axes.

I followed the directions explicitly when making firmware changes required for both the mainboard and drivers. Thinking it’s possible I did something wrong I have referenced several tutorials and I can still not figure out what the problem is as it appears I’m doing everything correctly. I have tried using the Marlin-2.0.x branch for SKR V1.4 turbo that BTT provides on this github as well as the main bugfix branch off the Marlin github i.e. bugfix-2.0.x to no avail.

I have set up the jumper caps as specified in the SKR v1.4 turbo documentation for the UART configuration, and the three configuration solder pads should be of no issue for the BTT TMC2208 v3.0 as they are supposed to be shipped with the UART enabled configuration. I’ve inspected each driver and they appear to have a 0 Ohm resistor shorting the appropriate two config pads for UART as specified in the documentation, which is what I expected.

I am pretty new to working with 3D printers so maybe this is normal or to be expected, but the motors still work. I can send commands on Pronterface and move them to a specified position, autohome works, I can control the axes from the LCD, but I still have the TMC CONNECTION ERROR. I can go into the advanced settings menu on the LCD, click TMC Drivers, and see that every driver is enabled with Stealth Chop and each drivers current is set.

At this point I’m at a loss as to what is my issue. Maybe I am doing something wrong in the firmware, or maybe my mainboard is damaged. Maybe there is actually nothing wrong but for some reason I’m getting thrown an error? I don’t know, so I will link my config.h below and hope I can get some help here. Thanks!

The text was updated successfully, but these errors were encountered:

Источник

TMC Connection Error on SKR V1.4 Turbo with TMC2208 drivers #440

I have been trying to get my Ender 3 v1 running with the BTT SKR v1.4 Turbo board and BTT TMC2208 v3.0 drivers in UART mode. No matter what I try I keep getting TMC CONNECTION ERROR. I have also connected over USB to my computer and enabled the TMC_DEBUG to get some extra information through Pronterface, but when running a M122 I get all false/error on each of the four axes.

I followed the directions explicitly when making firmware changes required for both the mainboard and drivers. Thinking it’s possible I did something wrong I have referenced several tutorials and I can still not figure out what the problem is as it appears I’m doing everything correctly. I have tried using the Marlin-2.0.x branch for SKR V1.4 turbo that BTT provides on this github as well as the main bugfix branch off the Marlin github i.e. bugfix-2.0.x to no avail.

I have set up the jumper caps as specified in the SKR v1.4 turbo documentation for the UART configuration, and the three configuration solder pads should be of no issue for the BTT TMC2208 v3.0 as they are supposed to be shipped with the UART enabled configuration. I’ve inspected each driver and they appear to have a 0 Ohm resistor shorting the appropriate two config pads for UART as specified in the documentation, which is what I expected.

I am pretty new to working with 3D printers so maybe this is normal or to be expected, but the motors still work. I can send commands on Pronterface and move them to a specified position, autohome works, I can control the axes from the LCD, but I still have the TMC CONNECTION ERROR. I can go into the advanced settings menu on the LCD, click TMC Drivers, and see that every driver is enabled with Stealth Chop and each drivers current is set.

At this point I’m at a loss as to what is my issue. Maybe I am doing something wrong in the firmware, or maybe my mainboard is damaged. Maybe there is actually nothing wrong but for some reason I’m getting thrown an error? I don’t know, so I will link my config.h below and hope I can get some help here. Thanks!

The text was updated successfully, but these errors were encountered:

Источник

В общем не пойму что привело к такой ситуации, но на экране появилась надпись TMC CONNECTION ERROR. Каретка оси X перестала реагировать на команды перемещения через меню принтера, остальные оси и экструдер работают. Через команду M122 получил сообщение: Testing X connection… Error: All LOW

Похоже что сгорел чип TMC2209, не хотел бы получить подтверждение этого, и соответственно что делать, покупать новую плату, попробовать заменить чип? Что посоветуете?

p.s. Платой пользуюсь порядка 1 месяца и за это время сообщение TMC CONNECTION ERROR появлялось несколько раз, но выключение и повторное включение принтера помогало избавиться от этой ошибки.

Ответы на вопросы

Популярные вопросы

Держатель катушки филамента.

vadimxg

Идет загрузка
Загрузка

20.01.2023

1233

Ребята, привет!

Какая самая удобная на ваш взгляд модель держателя катушки филамента? Можете ссылку на самую удобную модель показать?…

Почему не шьётся плата.

Подскажите пожалуйста почему не шьётся плата Creality 4.2.7.

Собрал прошивку в VS Code скидываю на флешку реакции ноль….

Чем 3D принтер отличается от 3D плоттера?

mlizart

Идет загрузка
Загрузка

07.12.2016

23915

Коллеги, помогите!

На занятиях по моделированию один школьник спросил — Чем 3D принтер отличается от 3D плоттера и что лучше для нови…

Читайте в блогах

@damacguy

I’ve been trying to get a BLTouch setup with my Ender 3 and E3 Mini 1.2 board. But the firmware won’t load and i get a TMC Connection Error.

What does this actual error mean?

I’ve tried compiling the latest firmware from this repo. I’ve also tried using the firmware.bin that’s also already posted here. I’ve even tried using the firmware that came on the SD card that CAME with my board and was working before this. All give the same error. I’m disconnected the BLTouch from my board as well putting me back before I tried anything and neither my compiled firmware, or any of the existing firmware.bin files or even my original firmware that came with my board will work.

I’d give building with the virgin Marlin bugfix firmware, but I’m not really clear on everything that needs to be changed. And I’m not even sure about the changes and build I made with the BTT firmware. But even their stock, pre-built, firmware isn’t working.

So basically I’m totally hosed and about to toss my board in the trash and go back to the original Creality board that came with my Ender 3.

Suggestions?

@baub26

Hello,
Have you an USB cable plug into the printer with an octopi running ?

@damacguy

Nothing connected to the printer — no octopi or any5hing else over usb.

@wisesokol

I use the BOARD for 2 weeks. Today, a TMC error appeared when you turned it on. After the reboot, everything worked. Marlin 2.0 Official. USB not connected. Bltouch

@esk8skunk

has anyone found a solution to this yet?
i just keep finding dead ends.
i get my ender to start up and say ready to print then back to tmc error.
is this just DOA? ive tried reloading the latest firmware multiple times.
Im really out of my comfort zone trying to solve this. any help or info would be appreciated

@artmuse

I use the BOARD for 2 weeks. Today, a TMC error appeared when you turned it on.
Same Problem. Does anyone solve it?

@Nikcos

send m122 via USB cable and pronterface and see the TMC status

@JWolfJr

I also started having the same issue after shutting down my printer for a day. Started up and only my x axis wasn’t moving, all others could be moved under control movement. With my octroprint and the BTT TFT35 I have hooked up. Then I started getting the TMC connection error. I ran M122, and got back a error: all LOW on the x axis, other three were good. I bought a new board, only thing I could think of after reading dozens of posts about this board. I really like the performance of it, so decided to give it another shot. Might be my fault though, I went with Teaching Techs cases for the back. The air flow design seemed not the best for the MB and a lot of the wiring was running over that heat sink for the x axis. This time around I’ll be putting a second noctua fan in blowing straight over the MB and do a better job with cable management. Please let me know what you found!

@TravisPeterson21

I had the exact same issue earlier this week. Had Amazon send me a new board, got I plugged in last night, and everything was working great. Turn it on this morning, TMC Connection Error. Have tried the firmware that came with the machine, the latest firmwares from here and uninstalling BLTouch, still have the same error. Too much fussing around for me, I’m going to get my refund from Amazon and move onto something else.

@JWolfJr

I just got my second one, ran a test print. So far so good. I made sure the wiring was clean and nothing coming close to the heat sinks also added a fan blowing straight onto them. I’m with you, if I get this problem again, I’m done. Keeping my fingers crossed!

@timothylrobb

I came across the same issue. It worked for about a month. Then TMC Connection Error with X Axis no longer working. I validated that the motor works by swapping its connection with the Y motor. I do have a BLTouch and I often have this connected to an Raspberry Pi 2B+ with OctoPi running. I think the board went bad. I built a new firmware, but the error still occurs. Even with the latest Marlin. At the moment I don’t think this can be fixed without replacing the board. Very disappointing.

@Thinkersbluff

I also had the XM drive fail after 3-4 weeks.
I noticed that the XM drive is the farthest from the cooling fan and all 3 motors were running hot. The motors also became quite loud. I have since replaced the board, installed a larger cooling fan, lowered the drive currents to 530 and configured Marlin to monitor the drivers.

I hope these measures collectively prevent the new board from going the same way as the last…

@JWolfJr

I also had this issue, after about a month of use, turned on one day and the x axis wasn’t working. Also getting the TMC error. I replaced the board and put this time with better cable management and placed a cooling fan directly over the driver heat sinks. I am using the Teaching Tech rear mounted cases with a raspi 3b+, a noctua fan over the pi and now another over the MB heat sinks. So far so good, been about a month since. I haven’t touched the current levels yet, how did you configure the firmware warnings?

@Thinkersbluff

I also had this issue, after about a month of use, turned on one day and the x axis wasn’t working. Also getting the TMC error. I replaced the board and put this time with better cable management and placed a cooling fan directly over the driver heat sinks. I am using the Teaching Tech rear mounted cases with a raspi 3b+, a noctua fan over the pi and now another over the MB heat sinks. So far so good, been about a month since. I haven’t touched the current levels yet, how did you configure the firmware warnings?

In configuration_adv.h, I found these settings, and uncommented «#define MONITOR_DRIVER_STATUS» :

  • Monitor Trinamic drivers for error conditions,
  • like overtemperature and short to ground.
  • In the case of overtemperature Marlin can decrease the driver current until error condition clears.
  • Other detected conditions can be used to stop the current print.
  • Relevant g-codes:
  • M906 — Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
  • M911 — Report stepper driver overtemperature pre-warn condition.
  • M912 — Clear stepper driver overtemperature pre-warn condition flag.
  • M122 — Report driver parameters (Requires TMC_DEBUG)
    */
    #define MONITOR_DRIVER_STATUS

#if ENABLED(MONITOR_DRIVER_STATUS)
#define CURRENT_STEP_DOWN 50 // [mA]
#define REPORT_CURRENT_CHANGE
#define STOP_ON_ERROR
#endif

I took my cue from the default setting » #define CURRENT_STEP_DOWN 50 // [mA]» to reduce the max current setting from 580 to 530 for the X, Y, Z and drivers. Since I use Mesh Bed Leveling, the Z motor used to get quite hot, until the Fade Height was reached. Now it just gets warm-ish. The X and Y motors are cooler than Z. I converted my system to Direct Drive and the retract is just 1.5mm at 25mm/s. The 650mA drive to the extruder motor seems not to be a problem. The EM driver is also directly under the fan, so probably keeping quite cool.
The TMC2209 drivers also come with a feature called StepCool, which can dynamically reduce the driver current to the minimum needed to overcome the mechanical load (using StallGuard to monitor the drive) but Marlin does not seem to support that yet.

I should also mention that I am still using the stock electronics box, but I replaced the lid with one that holds the larger fan. I also had to add an LM2596 buck converter to drive the fan at 12VDC, so it actually added to my cable management issues. While I was test-fitting things, I noticed that the Y tag on the YM cable had been pushed down onto the YM driver heatsink and seemed to be pulling that heatsink off the chip. rerouting that cable to approach the connector from overtop of the other wires, rather than underneath them seems to have fixed that, but it is very tight in there.

@JWolfJr

Thank you for all the info, this is very helpful. On the conversation about recompiling firmware, do you or anyone else change these lines in the platform.ini file, to match the current libraries?
LiquidCrystal
TMCStepper@>=0.6.2,<1.0.0
I noticed this in the new Marlin non bugfix state. Once I had my firmware compiled and working correctly, I haven’t messed with it too much. Just don’t want to bring up new bugs to have to deal with. If I’m guessing correctly the @>= points to the newest library installed by platform???

@JWolfJr

I already have MONITOR_DRIVER_STATUS enabled, just checked! Yeah, I made sure none of the wiring passes over the board. First board, against my gut feeling, the wires for the drivers were passing over and along the heat sinks. I knew better, and paid the price. With the my wiring and cooling setup now there shouldn’t be any problems, if there is, it has to be in the board!

@moonev

Two boards through Amazon failed. First one burned up the Y motor and caused endless layer shifts. Second board has a TMC error and the X axis is non responsive. Resetting firmware does not clear the TMC error and it persists upon start up.

@mashurex

I’ve had two boards fail with a TMC Connection Error on the X-axis now (Ender 3). Both times the motor driver on the motherboard died. I have much better than stock airflow and cooling in my case over stock. I turned on monitoring and reduced the current the second time around. Still fried the X-axis. I’m starting to think that this board should be avoided.

@TrashcanOfLove

What TMC stepper library is currently in use? 0.6.0 has issues but 0.6.1 fixes them. Looks like the most updated version was published only a few days after 0.6.1 came out.

@TrashcanOfLove

Recompiled with new library, no fix. Interested in this fix by sjasonsmith: teemuatlut/TMCStepper#93 but I don’t have the skills to apply it to the TMC2209s on the SKR mini E3 v1.2

@FloodMonkey

Arrgghhh! I have been printing a lot of long prints recently on my Ender 3 with BTT-SKR Mini E3 v1.2 and BLTouch and the stock BTT-SKR / BLTouch firmware with no issues at all. Then this morning I switch on the printer and get the «TMC Connection Error» message. Pronterface connected and the M122 command gives an «X axis: all Low» all other are Ok. I’ve swapped out the X stepper with the y one and still get the error message and the failed x stepper appears to be working fine with the y axis.
I’m not overly literate with programming these things so a lot of what I’m reading is going over my head.
My printer tends to be stand alone with no connections to a Pi or PC.
As the printer had been working well for the last couple of months is this likely to be a motherboard failure rather than firmware issue?

@Thinkersbluff

Sounds familiar. X driver tends to be farthest from the cooling fan in the electronics box. Would not be surprised if the driver has failed.

Get Outlook for iOS<https://aka.ms/o0ukef>

________________________________
From: FloodMonkey <notifications@github.com>
Sent: Wednesday, April 15, 2020 5:02:05 AM
To: bigtreetech/BIGTREETECH-SKR-mini-E3 <BIGTREETECH-SKR-mini-E3@noreply.github.com>
Cc: Thinkersbluff <badback42@outlook.com>; Comment <comment@noreply.github.com>
Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155)

Arrgghhh! I have been printing a lot of long prints recently on my Ender 3 with BTT-SKR Mini E3 v1.2 and BLTouch and the stock BTT-SKR / BLTouch firmware with no issues at all. Then this morning I switch on the printer and get the «TMC Connection Error» message. Pronterface connected and the M122 command gives an «X axis: all Low» all other are Ok. I’ve swapped out the X stepper with the y one and still get the error message and the failed x stepper appears to be working fine with the y axis.
I’m not overly literate with programming these things so a lot of what I’m reading is going over my head.
My printer tends to be stand alone with no connections to a Pi or PC.
As the printer had been working well for the last couple of months is this likely to be a motherboard failure rather than firmware issue?


You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#155 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIW3WXWIU45TIX6JQKHNWP3RMVZY3ANCNFSM4J6JPEPA>.

@rbcross62

I have been using my SKR Mini E3 V1.2 since October and it has worked well. Until yesterday. It was printing and was moving along the X-axis when it just stopped with a TMC CONNECTION ERROR. I did some tests like everyone else here and have determined that the 2209 for the X-axis has failed. I am working with BTT technical support and have sent various screenshots to them in regards to some of the things that they have had me check. The M122 command shows that there is no response from the X-axis driver so I am assuming that the board is bad at this point in time. Should I have chosen the SKR E3 DIP v1.1 with the plug-in DIP modules instead of the Mini E3 1.2? If so, it would make sense that I could replace a bad driver and not the entire board. I haven’t heard of any issues with the DIP version of that board, anyone else? At this point in time, I would recommend staying away from this board and getting the V1.15 Creality board if you want to run silent. A friend of mine has 3 of these and they have been running longer than mine without any issues. Thanks for listening!

@kPATm

Recompiled with new library, no fix. Interested in this fix by sjasonsmith: teemuatlut/TMCStepper#93 but I don’t have the skills to apply it to the TMC2209s on the SKR mini E3 v1.2

Did you ever get anywhere with this TrashcanOfLove?

@TrashcanOfLove

@jackharvest

TMC error as well. Printed perfectly for 10s of hours, and then, in the middle of my print, the stepper motor quit turning. After testing things, the motors were fine… it was the board. :( Tried everything above. No love. Going for a refund, and will begin looking for a higher quality alternative.

@Alexkey2200

Hello everyone, I wanted to tell you that for 8 months I have the SKR mini E3 1.2 working without problems with the SD card. However, a few days ago I started to place Octoprint via USB, and it was when suddenly one morning my SKR rebooted and the damn «TMC connection error» sign appeared. Indeed, the affected axis is the «X», so I got up the courage and with a USB mocroscope and an air welder I desolder the drivers for the «X» axis and the «Y» axis to exchange them and see what happens. Then I tried the board again and the «TMC connection error» sign kept coming up but this time the «X» axis was working and the «Y» axis did not. So I confirm that the problem was indeed in the «X» axis TMC2209 driver. Finally connect the skr to the usb with octoprint and through gcode make movements of the «X» axis, notice that the temperature of the driver was triggered above normal immediately, which from the printer menu did not, in my understanding This may be due to a bug when connecting the SKR to USB that causes an overtemperature in the drivers and as the «X» axis is the one that is furthest from the ventilation it is the one that suffered the most. These days I will be buying a TMC2209 driver and I will replace it, hopefully I can get this board running again. And I hope the people of BEGEETRETECH solve this.

@Thinkersbluff

I hope you have covered the 5volt pin or cut the wire from the 5volt pin on the USB cable before plugging into the USB port on the board. It is a well-documented problem with that board.

Get Outlook for iOS<https://aka.ms/o0ukef>

________________________________
From: Alexkey2200 <notifications@github.com>
Sent: Monday, December 7, 2020 6:31:55 PM
To: bigtreetech/BIGTREETECH-SKR-mini-E3 <BIGTREETECH-SKR-mini-E3@noreply.github.com>
Cc: Thinkersbluff <badback42@outlook.com>; Comment <comment@noreply.github.com>
Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155)

Hello everyone, I wanted to tell you that for 8 months I have the SKR mini E3 1.2 working without problems with the SD card. However, a few days ago I started to place Octoprint via USB, and it was when suddenly one morning my SKR rebooted and the damn «TMC connection error» sign appeared. Indeed, the affected axis is the «X», so I got up the courage and with a USB mocroscope and an air welder I desolder the drivers for the «X» axis and the «Y» axis to exchange them and see what happens. Then I tried the board again and the «TMC connection error» sign kept coming up but this time the «X» axis was working and the «Y» axis did not. So I confirm that the problem was indeed in the «X» axis TMC2209 driver. Finally connect the skr to the usb with octoprint and through gcode make movements of the «X» axis, notice that the temperature of the driver was triggered above normal immediately, which from the printer menu did not, in my understanding This may be due to a bug when connecting the SKR to USB that causes an overtemperature in the drivers and as the «X» axis is the one that is furthest from the ventilation it is the one that suffered the most. These days I will be buying a TMC2209 driver and I will replace it, hopefully I can get this board running again. And I hope the people of BEGEETRETECH solve this.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#155 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIW3WXWDZ2ZXXDL7RPSITJ3STVQWXANCNFSM4J6JPEPA>.

@Alexkey2200

I hope you have covered the 5volt pin or cut the wire from the 5volt pin on the USB cable before plugging into the USB port on the board. It is a well-documented problem with that board. Get Outlook for iOShttps://aka.ms/o0ukef

________________________________ From: Alexkey2200 notifications@github.com Sent: Monday, December 7, 2020 6:31:55 PM To: bigtreetech/BIGTREETECH-SKR-mini-E3 BIGTREETECH-SKR-mini-E3@noreply.github.com Cc: Thinkersbluff badback42@outlook.com; Comment comment@noreply.github.com Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155) Hello everyone, I wanted to tell you that for 8 months I have the SKR mini E3 1.2 working without problems with the SD card. However, a few days ago I started to place Octoprint via USB, and it was when suddenly one morning my SKR rebooted and the damn «TMC connection error» sign appeared. Indeed, the affected axis is the «X», so I got up the courage and with a USB mocroscope and an air welder I desolder the drivers for the «X» axis and the «Y» axis to exchange them and see what happens. Then I tried the board again and the «TMC connection error» sign kept coming up but this time the «X» axis was working and the «Y» axis did not. So I confirm that the problem was indeed in the «X» axis TMC2209 driver. Finally connect the skr to the usb with octoprint and through gcode make movements of the «X» axis, notice that the temperature of the driver was triggered above normal immediately, which from the printer menu did not, in my understanding This may be due to a bug when connecting the SKR to USB that causes an overtemperature in the drivers and as the «X» axis is the one that is furthest from the ventilation it is the one that suffered the most. These days I will be buying a TMC2209 driver and I will replace it, hopefully I can get this board running again. And I hope the people of BEGEETRETECH solve this. — You are receiving this because you commented. Reply to this email directly, view it on GitHub<#155 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIW3WXWDZ2ZXXDL7RPSITJ3STVQWXANCNFSM4J6JPEPA.
,

yes, of course I had the USB cable with the 5v cut off. I had it like this from the original board of the ender 3 that if you had the 5v it caused constant reboots.

@Thinkersbluff

Oh, good, although it is disappointing that you still had a driver failure, since I am using the same board.

I did two other things I hoped would protect the X motor driver on my 2nd E3 mini:

1. I reduced the max motor current settings to 580ma in Marlin
2. I replaced the motherboard cooling fan with a 50mmx50mm NoiseBlocker fan.

So far, touch wood, my mini is still working, at least 24×6 hrs a week, for over 12 months now.

Congratulations on being able to replace your own driver. I hope it works for you.

Get Outlook for iOS<https://aka.ms/o0ukef>

________________________________
From: Alexkey2200 <notifications@github.com>
Sent: Monday, December 7, 2020 8:10:40 PM
To: bigtreetech/BIGTREETECH-SKR-mini-E3 <BIGTREETECH-SKR-mini-E3@noreply.github.com>
Cc: Thinkersbluff <badback42@outlook.com>; Comment <comment@noreply.github.com>
Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155)

I hope you have covered the 5volt pin or cut the wire from the 5volt pin on the USB cable before plugging into the USB port on the board. It is a well-documented problem with that board. Get Outlook for iOShttps://aka.ms/o0ukef

________________________________ From: Alexkey2200 notifications@github.com<mailto:notifications@github.com> Sent: Monday, December 7, 2020 6:31:55 PM To: bigtreetech/BIGTREETECH-SKR-mini-E3 BIGTREETECH-SKR-mini-E3@noreply.github.com<mailto:BIGTREETECH-SKR-mini-E3@noreply.github.com> Cc: Thinkersbluff badback42@outlook.com<mailto:badback42@outlook.com>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155<#155>) Hello everyone, I wanted to tell you that for 8 months I have the SKR mini E3 1.2 working without problems with the SD card. However, a few days ago I started to place Octoprint via USB, and it was when suddenly one morning my SKR rebooted and the damn «TMC connection error» sign appeared. Indeed, the affected axis is the «X», so I got up the courage and with a USB mocroscope and an air welder I desolder the drivers for the «X» axis and the «Y» axis to exchange them and see what happens. Then I tried the board again and the «TMC connection error» sign kept coming up but this time the «X» axis was working and the «Y» axis did not. So I confirm that the problem was indeed in the «X» axis TMC2209 driver. Finally connect the skr to the usb with octoprint and through gcode make movements of the «X» axis, notice that the temperature of the driver was triggered above normal immediately, which from the printer menu did not, in my understanding This may be due to a bug when connecting the SKR to USB that causes an overtemperature in the drivers and as the «X» axis is the one that is furthest from the ventilation it is the one that suffered the most. These days I will be buying a TMC2209 driver and I will replace it, hopefully I can get this board running again. And I hope the people of BEGEETRETECH solve this. — You are receiving this because you commented. Reply to this email directly, view it on GitHub<#155 (comment)<#155 (comment)>>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIW3WXWDZ2ZXXDL7RPSITJ3STVQWXANCNFSM4J6JPEPA.
,

yes, of course I had the USB cable with the 5v cut off. I had it like this from the original board of the ender 3 that if you had the 5v it caused constant reboots.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#155 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIW3WXSNCF4EJ5IIECNF453STV4JBANCNFSM4J6JPEPA>.

@Alexkey2200

Oh, good, although it is disappointing that you still had a driver failure, since I am using the same board. I did two other things I hoped would protect the X motor driver on my 2nd E3 mini: 1. I reduced the max motor current settings to 580ma in Marlin 2. I replaced the motherboard cooling fan with a 50mmx50mm NoiseBlocker fan. So far, touch wood, my mini is still working, at least 24×6 hrs a week, for over 12 months now. Congratulations on being able to replace your own driver. I hope it works for you. Get Outlook for iOShttps://aka.ms/o0ukef

________________________________ From: Alexkey2200 notifications@github.com Sent: Monday, December 7, 2020 8:10:40 PM To: bigtreetech/BIGTREETECH-SKR-mini-E3 BIGTREETECH-SKR-mini-E3@noreply.github.com Cc: Thinkersbluff badback42@outlook.com; Comment comment@noreply.github.com Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155) I hope you have covered the 5volt pin or cut the wire from the 5volt pin on the USB cable before plugging into the USB port on the board. It is a well-documented problem with that board. Get Outlook for iOShttps://aka.ms/o0ukef …
________________________________ From: Alexkey2200 notifications@github.commailto:notifications@github.com Sent: Monday, December 7, 2020 6:31:55 PM To: bigtreetech/BIGTREETECH-SKR-mini-E3 BIGTREETECH-SKR-mini-E3@noreply.github.commailto:BIGTREETECH-SKR-mini-E3@noreply.github.com Cc: Thinkersbluff badback42@outlook.commailto:badback42@outlook.com; Comment comment@noreply.github.commailto:comment@noreply.github.com Subject: Re: [bigtreetech/BIGTREETECH-SKR-mini-E3] [BUG] TMC Connection Error (#155<#155>) Hello everyone, I wanted to tell you that for 8 months I have the SKR mini E3 1.2 working without problems with the SD card. However, a few days ago I started to place Octoprint via USB, and it was when suddenly one morning my SKR rebooted and the damn «TMC connection error» sign appeared. Indeed, the affected axis is the «X», so I got up the courage and with a USB mocroscope and an air welder I desolder the drivers for the «X» axis and the «Y» axis to exchange them and see what happens. Then I tried the board again and the «TMC connection error» sign kept coming up but this time the «X» axis was working and the «Y» axis did not. So I confirm that the problem was indeed in the «X» axis TMC2209 driver. Finally connect the skr to the usb with octoprint and through gcode make movements of the «X» axis, notice that the temperature of the driver was triggered above normal immediately, which from the printer menu did not, in my understanding This may be due to a bug when connecting the SKR to USB that causes an overtemperature in the drivers and as the «X» axis is the one that is furthest from the ventilation it is the one that suffered the most. These days I will be buying a TMC2209 driver and I will replace it, hopefully I can get this board running again. And I hope the people of BEGEETRETECH solve this. — You are receiving this because you commented. Reply to this email directly, view it on GitHub<#155 (comment)<#155 (comment)>>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIW3WXWDZ2ZXXDL7RPSITJ3STVQWXANCNFSM4J6JPEPA. , yes, of course I had the USB cable with the 5v cut off. I had it like this from the original board of the ender 3 that if you had the 5v it caused constant reboots. — You are receiving this because you commented. Reply to this email directly, view it on GitHub<#155 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIW3WXSNCF4EJ5IIECNF453STV4JBANCNFSM4J6JPEPA.

Amazing, I find your prevention methods very successful in your SKR mini. In my case I had the currents of the Axes «X, Y, Z» in 560mA. But I did have the same stock cooler as the ender 3, in addition to having the entire printer in a semi-closed box (I didn’t dare to close it completely due to the electronics ventilation issue). In addition, the ender I have is the one with the ventilation under the chassis. I think that all these factors played a significant role.

I also think it convenient to discard the electrical in my case, since in my house in the general electrical panel I have an over and low voltage protector, in addition the printer is connected to a 3KVA Eaton full online UPS, so it is electrically 100% sheltered.

@mashurex

I went through two different boards with an X-axis failure. My printer does not have heavy demands, it rarely has seen prints longer than a few hours and speeds are kept safe (20-60mm/s). I’ve always had my Octoprint hooked up via a USB power blocker so as not to get a voltage input leak, made sure everything is grounded correctly, I have a high quality power supply, and all connections are secure.

The second time I drastically increased the cooling and airflow in a completely modified motherboard enclosure and I enabled the Marlin settings for monitoring the drivers, lowered the voltage, and included larger heat sinks. Hit with an IR thermometer they were at least 10C cooler than stock.

None of that helped, my second board only lasted about a month longer than the first- and it never saw a printer longer than 90m.

I gave up on the board after this- but I gave BTT another chance. I went with their standard SKR DIP (v1.4 I think) board with swappable 2209 drivers (in case any burned up I wouldn’t have to swap the whole board). It’s been going strong for nearly a year now and I’ve not had one single issue.

I think the E3 mini just has too many design flaws, probably due to size and space constraints and the drivers running hotter than other versions. Giving BTT the benefit of the doubt, they were constrained by the original design of the Creality board to a certain degree, so there may only be so much they can (or are) willing to do.

My recommendation is that when (not if) your E3 mini board burns out a driver- go get the standard SKR DIP board. You’re going to have to relocate things and move a lot of wires (probably) but it is a fantastically better board all the way around.

You’ll already be familiar with the firmware process and wiring, so it won’t be nearly as daunting as you think. Plus you’ll get a bunch of extras you could use in the future. The last benefit is that when new drivers become available you will be able to upgrade your board as/when they get supported in firmware vs. having to buy an entirely new board.

@rcxrbt

for me, seems to happened after updare from stock firmware to 2.0.7.2 and powering the SKR Mini E3 1.2 (new board from box!)

@rinasek

It worked for 3 hours and then just died mid print.

@JWolfJr

I had the same issue after installing my original skr 1.2 e3 into Teaching Techs rear mounted case. I admittedly had wired it a mess, and only cooling fan was on the raspberry pi side. Only after a month of printing, turned on the printer and got the TMC Error. Replaced the board and cleanly wired it, no wiring near the stepper heat sinks. Wired a noctua fan blowing straight down over the heat sinks. So far after a year of printing, many prints taking we’ll over 12 hours, no issues. Hope this helps.

@gottria

Found this thread just now due to the same error. Running the SKR 1.2 Mini E# board for well over a year in the teaching tech rear mounted setup with a Raspberry Pi on Octoprint. The last week I have been running it harder than I have in the past and after an update on the Octoprint for the Power toggle plugin I get the TMC Connection error. After checking things out if I leave the USB unplugged and then reboot I get the error, unplug the USB reboot all is good and then I can plug in the USB and prints good. USB does have the 5v pin taped.

@UnterStrom

Used the skr mini v1.2 with my old Ender 2 with Marlin and octoprint for about 3 years, no heavy printing. The USB cable to my RP had a taped 5v pin, so no current from the RP to the board. Installed BLtouch and tried Klipper worked without a Problem, but didn’t use it too long. Changed my hotend and forgot to change the Z-Distance crashed in my buildtak. After an emergency stop I used probe calibration and immediately I got the TMC failure. Didn’t use the Fan in the casing, so thought maybe the driver got hot because of the movement in my buildtak (got pretty bad grooves). Used my spare Skr mini v1.2 with cooling fan in my case connected (pointed directly on the X stepper driver). Tried to use probe calibration again and after some MCU connection failures my X stepper driver died again (TMC failure). In my cfg file (used with both skr’s) I had the stepper drivers limited to max current 580. So I guess my NEMA on the X-axis fried my second driver? Just as a warning for others, that maybe something else can also kill the driver 🥲

Содержание

  • 1 Введение
  • 2 Для чего это нужно?
  • 3 Что нам понадобится
  • 4 Электроника
    • 4.1 Важно: считаем ток ШД!
    • 4.2 Подготовка драйверов
    • 4.3 Модификация разъемов концевиков
    • 4.4 Извлечение штатной платы
    • 4.5 Установка Джамперов в режим UART
    • 4.6 Подключение SKR 1.3
  • 5 Прошивка
    • 5.1 Дисклеймер
    • 5.2 Установка PlatformIO IDE
    • 5.3 Конфигурация
      • 5.3.1 platformio.ini
      • 5.3.2 configuration.h
      • 5.3.3 configuration_adv.h
      • 5.3.4 Компиляция и прошивка платы
  • 6 Что дальше?
    • 6.1 Меню TMC drivers
    • 6.2 Команды G-code
  • 7 Цитирование

Введение

Данная статья описывает опыт установки на принтер Creality3D Ender-3 и Ender-3 Pro материнской платы BIG TREE TECH (BIQU) SKR v1.3 с драйверами Trinamic TMC2208 в режиме управления по UART с последующей настройкой и прошивкой Marlin 2.x bugfix.

Для чего это нужно?

Плата BIG TREE TECH (BIQU) SKR v1.3 оснащена 32-битным микропроцессором LPC1768 на ядре ARM Cortex-M3. Данный микропроцессор обладает на порядок более внушительными вычислительными возможностями, чем ATmega1284P, установленный на штатной плате Creality 1.1.x, которой оснащаются принтеры серии Ender.
Это дает возможность одновременно задействовать нагружающие микропроцессор и занимающие много памяти функции, такие как использование Linear Advance, автоуровня типа BLTouch/3DTouch, плавных ускорений S Curve Acceleration и др. Кроме того, в целом повышается быстродействие системы и максимально достижимая скорость печати.

Помимо этого, плата BIG TREE TECH (BIQU) SKR v1.3 имеет еще несколько важных преимуществ:

  1. Колодки для драйверов в форм-факторе Polulu (SilentStepStick) — возможность установить любые поддерживаемые прошивкой драйвера без необходимости перепайки и колхозинка штатной платы
  2. Возможность установки до 5 драйверов и 2 нагревателей хотенда — можно установить дополнительный экструдер, toolchange-систему, MMU-ситему, использовать выход на второй нагреватель как дополнительный управляемый PWM-выход (подсветка/охлаждение)
  3. Наличие предохранителей на плате — меньше вероятность спалить мосфет стола или хотенда при случайном замыкании
  4. Возможность подключить цветной (сенсорный) дисплей, наличие дополнительных AUX портов
  5. Разводка под управление драйверами по UART и SPI «из коробки»

Для управления шаговыми двигателями (ШД) было решено использовать драйвера Trinamic TMC2208. Это относительно новые драйвера, пришедшие на смену хорошо зарекомендовавшему себя поколению TMC21XX. К их преимуществам можно отнести:

  1. Технология StealthChop2 – тишина работы моторов
  2. Технология SpreadCycle – оригинальный алгоритм direct current управления от Trinamic, позволяет точно управлять током в обмотках ШД для увеличения точности позиционирования и момента на высоких скоростях
  3. Возможность работы в режиме нативного дробления до 1/256 шага или с меньшим дроблением, но с интерполяцией до 1/256.
  4. Возможность управления по UART

На последнем пункте остановимся подробнее. В данной статье рассматривается именно способ установки драйверов c управлением по UART. Это позволяет из прошивки конфигурировать ток, дробление шага, интерполяцию, режим чоппера и другие параметры работы драйвера. Кроме того, в прошивке Marlin (и, возможно, в других) реализован так называемый гибридный режим, суть которого в автоматическом переключении драйвера из тихого режима StealthChop2 в более «мощный» SpreadCycle при достижении определенной скорости (hybrid mode threshold). Это позволяет «поддать жару», когда это нужно, наслаждаясь тишиной в остальное время. Помимо этого, используя управление по UART, можно настроить фазы чоппера SpeadCycle для достижения меньшего уровня шума в этом режиме (я пока этого не делал и это тема для отдельной статьи).

Что нам понадобится

  1. Принтер Creality3D Ender-3/Ender-3 Pro (Ваш К.О.)
  2. Плата BIG TREE TECH (BIQU) SKR v1.3
  3. Драйвера Trinamic TMC2208 v2.1 или v3.0
  4. Паяльник
  5. Набор шестигранных ключей
  6. Надстройка PlatformIO для IDE VS Code
  7. Прошивка Marlin версии bugfix-2.0.x (самая свежая)
  8. Вольтметр
  9. Мелкая отвертка под плоский шлиц (лучше диэлектрическая)

ПАААААЕХАЛИ!

Электроника

Расположение потенциометров Vref на стандартной плате

Важно: считаем ток ШД!

Насколько я успел заметить, на принтеры Creality3D устанавливается широкий спектр ШД, отличающихся своими характеристиками, в первую очередь – максимальным током обмоток. Некоторые моторы практически невозможно «нагуглить» по маркировке и узнать требуемый им ток. Поэтому для того, чтобы действовать наверняка, я советую перед заменой платы выяснить, какой ток установлен для Ваших конкретных ШД.

На дефолтной плате Creality 1.1.x установлено четыре драйвера A4988, распаянных непосредственно на плате. Рядом с каждым драйвером установлен потенциометр (turnpot), который задает опорное напряжение Vref.

Внимание! Настройка (и измерение) Vref должна производиться с отключенными проводами ШД, но подключенным основным питанием платы.

  • Отключите от платы провода ШД.
  • Включите питание.
  • Аккуратно измерьте напряжение между центром «крутилки» потенциометра и землей (за землю можно взять черный провод, приходящий в винтовую колодку на плате с блока питания) для каждого из драйверов, запишите.

Теперь посчитаем ток, который нужно установить для наших конкретных ШД на новых драйверах.
Дело в том, что Vref для драйвера A4988 задает максимальный ток Imax, в то время как для TMC2208 мы задаем среднеквадратичное значение тока Irms ~ Imax/1.414

Приступим к расчетам:

Irms(TMC2208) = Imax(A4988)/1.414 = Vref(A4988)/1.1312

Это и есть нужное нам значение тока новых драйверов. При управлении по UART данного расчета достаточно. Тем, кто не хочет управлять по UART, то есть устанавливает драйвера в standalone-режиме, необходимо посчитать Vref для TMC2208 по следующей формуле:

Vref(TMC2208) = (Irms(TMC2208)*2.5) / 1.77

Указанная выше формула справедлива только для наиболее распространенных вариантов исполнения драйверов TMC2208 с референсным резистором Rsense = 0.11 Ом.

Подготовка драйверов

Перымычка J2, которую нужно запаять на драйвере для управления по UART. Также не лишним будет проверить номинал резисторов R6 и R7

Для того, чтобы использовать UART-режим для управления драйверами, необходимо АККУРАТНО запаять на них перемычку J2 (см. фото).
Здесь и далее показаны драйвера от BIGTREETECH версии 2.1, но для драйверов от других производителей, например Fysetc, действия будут аналогичными.
Для драйверов версии 3.0 инструкции аналогичны.

Модификация разъемов концевиков

Переделка дефолтных двухконтактных разъемов концевиков в трехконтактные под SKR

Для подключения родных двухконтактных разъемов концевиков в трехконтактные разъемы на плате SKR нужно модифицировать провода одним из способов (чтобы провода подключались к двум нижним пинам разъема, см. рисунок):

  1. «Переобуваем» провод в трехпиновый корпус – самый лучший вариант, если есть такие корпуса
  2. Подрезаем один из двух ключевых выступов корпуса разъема на проводе так, чтобы он правильно вошел в разъем на плате (в два нижних пина на соответствующем разъеме)

Извлечение штатной платы

Перед отсоединением разъемов от платы, не забудьте пометить удобным способом провода, на которых нет заводских меток.

  • Отключаем питание принтера
  • Снимаем крышку с корпуса электроники
  • Отключаем вентилятор охлаждения от платы
  • Аккуратно удаляем термоклей со всех разъемов
  • Отключаем все провода от платы
  • Откручиваем плату от корпуса электроники
  • Откручиваем корпус электроники от рамы принтера (один из винтов находится снизу, под принтером).

Установка Джамперов в режим UART

Ставим джамперы согласно целеуказателям

  • Убираем с платы все джамперы
  • Устанавливаем пять джамперов возле площадок драйверов (включает управление по UART)
  • Устанавливаем один джампер в центре платы на два левых контакта (INT +5V отвечает за режим питания контроллера – от внешнего БП). Правая пара контактов отвечает за питание по USB.

Подключение SKR 1.3

Схема подключения проводов и установки джамперов на плате SKR 1.3. В дефолтной конфигурации Ender-3 с одним экструдером. Щелкните, чтобы посмотреть в полном размере.

  • Устанавливаем драйвера: черные ножки в черные разъемы, цветные ножки (они могут быть синими или красными) в красные разъемы. Если дрова поставить вверх ногами – дровам кирдык.
  • Хотя сама плата запускается от 5 V по USB, драйвера не будут работать без подключенного основного питания 24 V, и на дисплее будет отображаться TMC connection error.
  • Теперь подключаем все провода в соответствующие разъемы платы (внимание на полярность!), для этого может потребоваться немного распотрошить жгут проводов.
  • Вентилятор обдува детали подключаем в разъем FAN,
  • Вентилятор охлаждения электроники – в разъем 12/24 V (в самом углу платы, возле разъема ШД оси X)
  • Вентилятор охлаждения радиатора печатной головы – в разъем нагревателя второго хотенда HT1 (винтовая колодка) если у нас только 1 хотенд, иначе параллельно вентилятору охлаждения электроники.
  • Экран подключаем в разъем EXP1,
  • Провода концевиков – в трехпиновые разъемы Xmin, Ymin, Zmin на плате,
  • Остальное подключается очевидным образом

Прошивка

Дисклеймер

Данный раздел предполагает, что Вы знаете, как конфигурировать прошивку Marlin.
Здесь будут описаны только специфические настройки для платы SKR 1.3 и драйверов TMC2208 с управлением по UART, а также несколько других полезных твиков.
Если Вы не знаете как конфигурируется прошивка, как устанавливаются размеры области печати, шаги по осям, ускорения и прочие основные параметры принтера – для начала обязательно изучите эту информацию, например по видео Дмитрия Соркина, и только после этого продолжайте.

В качестве отправной точки крайне советую использовать конфигурационные файлы для Ender-3 из папки с примерами, это избавит от необходимости конфигурирования концевиков, направлений моторов, зоны печати и прочих важных вещей – там это уже сделано. Здесь эти настройки рассматриваться не будут.

Установка PlatformIO IDE

Установка PlatformIO в VS Code

Открыть проект Marlin в PlatformIO

  • Качаем последнюю версию Marlin bugfix-2.0.x.
  • Качаем VS Code.
  • Запускаем VS Code
    • Заходим в Extensions
    • Вводим в строку поиска platformio
    • Жмем зеленую кнопку Install возле расширения PlatformIO IDE
    • Ждем завершения установки расширения
  • Перезапускаем VS Code
  • На появившейся странице PIO Home жмем кнопку Open Project
  • Заходим в папку с прошивкой (в ней должен быть файл platformio.ini)
  • Жмем Open

Конфигурация

Нам нужно будет внести изменения в 3 файла: platformio.ini, configuration.h и configuration_adv.h.

Начнем по порядку. Настоятельно советую пользоваться поиском Ctrl+F для быстрого перехода к нужным настройкам.

platformio.ini

Указываем в разделе [platformio] микроконтроллер, для которого будем компилировать прошивку.

default_envs = LPC1768

configuration.h

Настраиваем последовательные порты:

#define SERIAL_PORT -1
#define SERIAL_PORT_2 0

Ускоряем немного обмен данными через последовательный порт

#define BAUDRATE 250000

Указываем, какая у нас материнская плата

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3
#endif

Убеждаемся, что включена защита от перегрева

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed
#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber

Указываем, какие у нас установлены драйвера ШД

#define X_DRIVER_TYPE  TMC2208
#define Y_DRIVER_TYPE  TMC2208
#define Z_DRIVER_TYPE  TMC2208
#define E0_DRIVER_TYPE TMC2208

Если устанавливаем драйвера без управления по UART, то вместо TMC2208 пишем TMC2208_STANDALONE

Можем включить более плавные ускорения, при желании

#define S_CURVE_ACCELERATION

Проверяем направление мотора экструдера. Если редукторный фидер, пишем false, если безредукторный, то true

#define INVERT_E0_DIR true

Можем настроить пункт меню для калибровки стола – Level corners, печатная коловка будет поочередно перемещаться в каждый из 4 углов (в положение над регулировочным винтом) и в центр стола (здесь параметры для калибровки по эталону 0.1 мм, толщину эталона можно задать параметром LEVEL_CORNERS_HEIGHT)

#define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS)
  #define LEVEL_CORNERS_INSET 35    // (mm) An inset for corner leveling
  #define LEVEL_CORNERS_Z_HOP  5  // (mm) Move nozzle up before moving between corners
  #define LEVEL_CORNERS_HEIGHT 0.1  // (mm) Z height of nozzle at leveling points
  #define LEVEL_CENTER_TOO        // Move to the center after the last corner
#endif

Настраиваем более адекватные скорости хоуминга

#define HOMING_FEEDRATE_XY (30*60)
#define HOMING_FEEDRATE_Z  (4*60) // Если используется датчик автоуровня типа BLTouch/3DTouch, можно увеличить значение до (10*60) для ускорения автокалибровки

Выбираем язык меню

#define LCD_LANGUAGE en

Проверяем поддержку карты памяти

#define SDSUPPORT

Включаем «пищалку», чтобы она могла нас уведомлять о важных вещах типа перегрева, но выключаем звук в меню

#define SPEAKER
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 0
#define LCD_FEEDBACK_FREQUENCY_HZ 0

Включаем дефолтный дисплей Ender-3

#define CR10_STOCKDISPLAY

Убираем «свист» вентиляторов от ШИМ

#define FAN_SOFT_PWM
#define SOFT_PWM_SCALE 0

configuration_adv.h

Включаем отображение значений АЦП вместе со значениями температуры по команде M105 (если потом хотим калибровать термистор, о чем позже будет статья)

#define SHOW_TEMP_ADC_VALUES

Если вентилятор обдува модели плохо стартует на низких оборотах, помогаем ему «пинком»

#define FAN_KICKSTART_TIME 200

Если подключили вентилятор обдува радиатора печатной головы вместо нагревателя второго хотенда, настраиваем тут пин и температуру включения

#define E0_AUTO_FAN_PIN FAN1_PIN // Cold-end fan to E1 heater
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255   // 255 == full speed

Задаем более «нежные» делители скоростей для хоуминга, чтоб меньше разбивались концевики

#define HOMING_BUMP_DIVISOR { 4, 4, 4 }  // Re-Bump Speed Divisor (Divides the Homing Feedrate)

Задаем время после последнего движения (в секундах), через которое отключается удержание ШД

#define DEFAULT_STEPPER_DEACTIVE_TIME 300

Задаем более адекватные скорости для движения осей из меню принтера

#define MANUAL_FEEDRATE {100*60, 100*60, 10*60, 50*60}

Улучшаем печать по USB

#define DEFAULT_MINSEGMENTTIME        50000

#if ENABLED(SDSUPPORT)
  #define BLOCK_BUFFER_SIZE 32 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif

#define MAX_CMD_SIZE 96
#define BUFSIZE 32

#define TX_BUFFER_SIZE 32

Опционально включаем звуковое оповещение при изменении Feedrate на главном экране энкодером (помогает избежать случайного изменения)

#define BEEP_ON_FEEDRATE_CHANGE
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
  #define FEEDRATE_CHANGE_BEEP_DURATION   10
  #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
#endif

Включаем прокрутку длинных статусных сообщений на экране

#define STATUS_MESSAGE_SCROLLING

Увеличиваем задержку (в миллисекундах) перед автоматическим выходом из меню на главный экран (беситбеситбеситбесит)

#define LCD_TIMEOUT_TO_STATUS 60000

«Чиним» прогресс-бар при печати через USB

#define LCD_SET_PROGRESS_MANUALLY

Опционально включаем подтверждение при выборе файла с флешки для печати

#define SD_MENU_CONFIRM_START

Включаем поддержку отправки длинных имен файлов с флешки на хост по USB

#define LONG_FILENAME_HOST_SUPPORT

Включаем прокрутку длинных имен файлов на флешке в меню

#define SCROLL_LONG_FILENAMES

Настраиваем SD карту

#if HAS_SDCARD_CONNECTION
/**
* Set this option to one of the following (or the board's defaults apply):
*
*           LCD - Use the SD drive in the external LCD controller.
*       ONBOARD - Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
*  CUSTOM_CABLE - Use a custom cable to access the SD (as defined in a pins file).
*
* :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ]
*/
  #define SDCARD_CONNECTION ONBOARD
#endif

Включаем babystepping — возможность вручную задавать точно оффсет оси Z во время печати из меню принтера, например, если мы видим, что с первым слоем что-то не так

#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
  //#define BABYSTEP_WITHOUT_HOMING
  //#define BABYSTEP_XY                     // Also enable X/Y Babystepping. Not supported on DELTA!
  #define BABYSTEP_INVERT_Z false           // Change if Z babysteps should go the other way
  #define BABYSTEP_MULTIPLICATOR  2         // Babysteps are very small. Increase for faster motion. 

  #define DOUBLECLICK_FOR_Z_BABYSTEPPING    // Double-click on the Status Screen for Z Babystepping.
  #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
    #define DOUBLECLICK_MAX_INTERVAL 1250   // Maximum interval between clicks, in milliseconds.
                                            // Note: Extra time may be added to mitigate controller latency.
    //#define BABYSTEP_ALWAYS_AVAILABLE     // Allow babystepping at all times (not just during movement).
    #define MOVE_Z_WHEN_IDLE              // Jump to the move Z menu on doubleclick when printer is idle.
    #if ENABLED(MOVE_Z_WHEN_IDLE)
      #define MOVE_Z_IDLE_MULTIPLICATOR 1   // Multiply 1mm by this factor for the move step size.
    #endif
  #endif

При желании включаем LA

#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
  //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants
  #define LIN_ADVANCE_K 0.0    // Unit: mm compression per 1mm/s extruder speed
  //#define LA_DEBUG            // If enabled, this will generate debug information output over USB.
#endif

Уменьшаем размер минимальной отрабатываемой группы шагов

#define MIN_STEPS_PER_SEGMENT 1

Если выше включили Linear Advance, необходимо также изменить значение MINIMUM_STEPPER_PULSE для работоспособности экструдера (актуально на 10.09.19)

#define MINIMUM_STEPPER_PULSE 2 // если не работает 2, ставим 4

Включаем Emergency Parser, чтобы иметь возможность остановить принтер мгновенно, а не ждать, пока выполнятся все команды из буфера

#define EMERGENCY_PARSER

Наконец, переходим к собственно настройке драйверов!

Настраиваем токи и дробление шага. Здесь каждый пусть решает сам, какое дробление использовать, включать ли интерполяцию — спорить можно бесконечно.

#if HAS_TRINAMIC

  #define HOLD_MULTIPLIER    0.6  // Множитель тока в режиме удержания ШД
  #define INTERPOLATE       true  // Включает или выключает интерполяцию по ВСЕМ осям

  #if AXIS_IS_TMC(X)
    #define X_CURRENT     450  // сюда пишем наш ток Irms, который мы посчитали ранее
    #define X_MICROSTEPS    16  // количество микрошагов, поддерживается нативно до 256, не забываем изменить число шагов на мм
    #define X_RSENSE     0.11 // Если на Ваших драйверах резистор Rsense отличается от стандартного R110, сюда вписываем номинал
  #endif

  #if AXIS_IS_TMC(Y)
    #define Y_CURRENT     500
    #define Y_MICROSTEPS    16
    #define Y_RSENSE     0.11
  #endif

  #if AXIS_IS_TMC(Z)
    #define Z_CURRENT     550
    #define Z_MICROSTEPS    16
    #define Z_RSENSE     0.11
  #endif

  #if AXIS_IS_TMC(E0)
    #define E0_CURRENT    700
    #define E0_MICROSTEPS   16
    #define E0_RSENSE    0.11
  #endif

Включаем тихий режим StealthChop (на оси экструдера, особенно с редукторным фидером, стабильнее работает SpreadCycle, по моим ощущениям)

  #define STEALTHCHOP_XY
  #define STEALTHCHOP_Z
  //#define STEALTHCHOP_E

Задаем режим работы чоппера SpreadCycle

  #define CHOPPER_TIMING CHOPPER_DEFAULT_24V

Включаем защиту драйверов от перегрева

  #define MONITOR_DRIVER_STATUS

  #if ENABLED(MONITOR_DRIVER_STATUS)
    #define CURRENT_STEP_DOWN     50  // [mA]
    #define REPORT_CURRENT_CHANGE
    #define STOP_ON_ERROR
  #endif

Включаем гибридный режим — при превышении указанной здесь скорости алгоритм будет переключаться со StealthChop на SpreadCycle

  #define HYBRID_THRESHOLD

  #define X_HYBRID_THRESHOLD     120  // [mm/s]
  #define Y_HYBRID_THRESHOLD     120
  #define Z_HYBRID_THRESHOLD      10
  #define E0_HYBRID_THRESHOLD     15

Очень важно! Включаем отладочный режими

  #define TMC_DEBUG

В данной секции можно задать отдельно любые параметры для каждого из драйверов, например выборочно выключить интерполяцию на Z и E, если выше она включена для всех осей, но перед тем, как что-то здесь писать, советую разобраться с функциями библиотеки TMCStepper. В противном случае оставляйте эту секцию пустой, чтобы ничего не сломать.

  #define TMC_ADV() { 
    stepperE0.intpol(0); 
    stepperZ.intpol(0); 
   }

Включаем автоотправку температуры по USB

#define AUTO_REPORT_TEMPERATURES

Включаем расширенный отчет о возможностях прошивки для USB хоста

#define EXTENDED_CAPABILITIES_REPORT

Выключаем экструзию по объему

#define NO_VOLUMETRICS

Компиляция и прошивка платы

Хоба! Поздравляем — Вы восхитительны!

После того, как прошивка сконфигурирована, сохраняем изменения. Жмем Ctrl+Alt+B — запустится процесс компиляции прошивки. Если ошибок нет, после его завершения в терминале VS Code напротив LPC1768 будет зеленая надпись SUCCESS. В папке Marlin-bugfix-2.0.x.pioenvsLPC1768 появится файл firmware.bin — это и есть скомпилированная прошивка. Копируем этот файл на SD-карту и вставляем в плату, после чего перезапускаем плату — загрузчик установит прошивку и вы увидите стартовый экран Marlin (не беспокойтесь, после перезагрузки файл прошивки на флешке будет переименован, его не нужно удалять вручную, плата не будет перепрошиваться при каждой перезагрузке, пока Вы не кинете новый файл прошивки на флешку).
Не забываем после перепрошивки инициализировать EEPROM.

Что дальше?

Что же (а главное — как) мы можем настроить благодаря подключению по UART?

Меню TMC drivers

В меню Configuration -> Advanced configuration появилось новое подменю — TMC drivers, содержащее 3 пункта:

  1. Driver current — настройка тока Irms для каждого драйвера
  2. Hybrid threshold — настройка порога гибридного режима, то есть скорости движения оси, после которой драйвер будет переключаться из режима StealthChop в SpreadCycle. Если хотите выключить гибридный режим для какой-то из осей и использовать только StealthChop, поставьте здесь очень большое значение (на 22 мая 2019 существует баг — при загрузке настроек из EEPROM все значения отображаются равными 0. При этом на самом деле загружаются правильные значения, их даже можно поменять в этом меню и сохранить в EEPROM, и все работает, но в самом меню отображается 0)
  3. Microstepping mode — ручное переключение между StealthChop и SpreadCycle для каждой оси. Если стоит «on», то используется StealthChop и гибридный режим, если «off» — то всегда включен только SpreadCycle

Команды G-code

Ниже приводятся команды G-code для работы с драйверами TMC2208

M122 — вывод отладочной информации о состоянии драйверов — установленный ток, дробление шага и интерполяция, состояние регистров, состояние защиты от перегрева и прочие полезности

M569 — ручное переключение между StealthChop и SpreadCycle для кождой оси

M906 — задание тока Irms для каждого драйвера

M911 — информация о сотоянии защиты от перегрева

M912 — сброс состояния защиты от перегрева

M913 — настройка порога гибридного режима, то есть скорости движения оси, после которой драйвер будет переключаться из режима StealthChop в SpreadCycle

Цитирование

Вы можете цитировать материал из данной статьи в произвольном объеме при условии обязательного указания ссылки на первоисточник. В ином случае цитирование не допускается.

Автор — @ArtificalSUN

Я сталкиваюсь с теми же ошибками, пробовал с TMC2208 и TMC2209 на SKR1.1
На Scope я вижу, что данные отправляются драйверам, но на ЖК-дисплее отображается ошибка подключения.

Установил Клиппер на эту же плату, 2 x TMC2209 + 1X TMC2208 на одном проводе работают без проблем. Так что это ошибка в Марлине.

Для afaik SKR Mini baords и btt плат с stm32 mcus требуется версия BTT TMCStepper.
Что именно изменилось, я не знаю, но я знаю, что он работает на моем SKR Mini e3 DIP, когда обычный нет … https://github.com/bigtreetech/TMCStepper/
также для компиляции с этой библиотекой вам нужно использовать -DHAVE_SW_SERIAL для создания флагов.

Хммм … У меня аналогичная проблема с RAMPS / Re-ARM, но поскольку это первый раз, когда я использую драйверы TMC, я не знаю, ошибка это или что-то я делаю не так.
Я использую один контакт для RX и TX, который должен работать …

Моя проблема, похоже, связана с использованием 1-Wire. У меня это вообще не сработало — мне пришлось использовать Y-образный вывод и два отдельных контакта на плате, чтобы соединение было успешным.

+1

Если я заменю TMCSteppers на продукт BigTreeTech, я получаю сообщение об ошибке, и сборка не выполняется:

collect2: error: ld returned 1 exit status
*** [.pio/build/BIGTREE SKR MINI/firmware.elf] Error 1

+1

Если я заменю TMCSteppers на продукт BigTreeTech, я получаю сообщение об ошибке, и сборка не выполняется:

collect2: error: ld returned 1 exit status
*** [.pio/build/BIGTREE SKR MINI/firmware.elf] Error 1

вы также добавляли -DHAVE_SW_SERIAL для создания флагов? это кажется обязательным, если у вас есть bigtreetechs tmcstepper lib

Нет, с флагом все заработало, спасибо :)

Библиотека TMCStepper от BTT реализует методы последовательной библиотеки программного обеспечения. Это необходимо для связи с драйверами TMC uart на их платах.
HAL STM32F1 в прошивке Marlin реализует фиктивные методы для этой библиотеки.

  • Использование оригинальной прошивки Marlin без замены библиотеки TMCSTEPPER приведет к ошибке подключения из-за фиктивных последовательных методов программного обеспечения.
  • Использование библиотеки BTT TMCStepper в оригинальной прошивке Marlin приводит к ошибкам сборки из-за переопределения методов библиотеки Software Serial

Добавление -DHAVE_SW_SERIAL для флагов сборки, как указывалось ранее в этом выпуске, игнорирует последовательную библиотеку программного обеспечения Dummy от Marlin, поэтому сборка работает и ошибка подключения TMC исчезает.

Должен ли Марлин реализовать настоящую программную последовательную библиотеку для STM32F1?

PS: мой тестовый пример запускает SKR E3 DIP с tmc2208s

Я проделал те же шаги.
Получите те же ошибки

SKR1.3 + 2209

Та же ошибка на ЖК-дисплее SKR 1.3 говорит об ошибке подключения tmc
Если я использую M122, он читает драйверы 2208, но получает X 0x00: 00: 00: 00 Плохой ответ!
Тестирование соединения X … Ошибка: все НИЗКОЕ

в моем тестовом стенде есть только 1 драйвер 2208

и не могу толкнуть мою ось X с ЖК-дисплея.

Последний билд на сегодня свежий DL

Я не знаю
Те же проблемы подняты на

А также на канале Discord

@ lightface79 Плата требует внешнего питания, а не от USB

SKR1.3 + 2209
Та же проблема 0x00: 00: 00: 00 Плохой ответ!

SKR1.3 + 2209
Та же проблема 0x00: 00: 00: 00 Плохой ответ!
с внешним источником питания 24 В.

@samnangor Пожалуйста, предоставьте конфиги.
Вчера вечером я тестировал SKR 1.3 + 2209 с исправлением ошибок Marlin с того времени.

Configuration_ADV.h тоже нужен

определить SERIAL_PORT 0

Должно быть -1

Спасибо Grogyan,
Как насчет SERIAL_PORT 2?

Скомпилировать с
SERIAL_PORT_0 -1
Запустите команду Pronterface M122
Регистры драйверов:
X 0x00: 00: 00: 00 Плохой ответ!
Y 0x00: 00: 00: 00 Плохой ответ!

Это то, что он печатает на печатной плате
ACCA 1929 г.
FYSETC Silent 2209
V2.1

Я все еще ищу расположение перемычки PDN UART на моей печатной плате TMC2209
Еще раз спасибо Grogyan.

Нашел, я должен замкнуть между Tx и Rx

Я только что получил свою плату SKR 1.3 и 4 GEEETECH TMC2208, и я также получаю «Плохой ответ» на все 4.
Я припаял перемычку для UART к драйверам, правильно установил все перемычки на SKR, и драйверы работают, так как я могу вручную перемещать их через ЖК-дисплей.
Как это исправить?

Erik9519
Я решил свою проблему с ошибками шагового двигателя.
Требуется внешнее питание платы от 12 или 24 В, поэтому плата не запитывается через USB. Установите дип на внешнюю мощность.

Вторая вещь, которая была неправильной, заключалась в том, что у меня было 3 контактных площадки на моем 2208, и вы должны были иметь только среднюю контактную площадку и одну или другую левую или правую контактные площадки, припаянные вместе со средней. У меня мой припой пошел не на ту площадку. Значит, uart был неправильно подключен к skr1.3

Поэтому, когда я заменил колодки, uart работал идеально.

Затем возникла вторая проблема.
Поскольку мои драйверы работали как ваши в автономном режиме.

Когда работал режим uart, я не мог двигать шаговыми двигателями ..

Обнаружил, что мне нужно отключить программное обеспечение_enable

Тогда все работало как шарм

@ lightface79
После некоторой обширной отладки в Marlin Discord мы пришли к выводу, что для решения моей проблемы мне пришлось спаять немаркированный контакт на моих драйверах с контактом PDN поверх пайки площадки uart (у моих драйверов только 2 площадки, а не 3 для UART).
Как только я это сделал, они отлично работали в режиме UART.

Это были драйверы: GEEETECH TMC2208
https://www.amazon.de/GEEETECH-TMC2208-Stepstick-Heatsink-Screwdriver/dp/B07MZTCSZY

У @salacpavel все еще есть проблемы?

Но не та же проблема
Я не могу включить автоматический вентилятор экструдера. Он должен включиться, когда температура экструдера поднимается выше 50. Я пытался повысить температуру до 80, но он все равно не работает. Он будет включаться и выключаться вручную, когда я отправляю команду Gcode.
Прикреплен файл
благодаря

Итак, я обновился до последней фиксации сегодня и получил эту проблему с библиотекой bigtreetech TMCStepper:

In file included from Marlinsrcmodule/stepper/indirection.h:44:0,
                 from Marlinsrcmodule/stepper.h:47,
                 from MarlinsrcMarlin.cpp:37:
Marlinsrcmodule/stepper/trinamic.h:31:4: error: #error "Update TMCStepper library to 0.5.0 or newer."
   #error "Update TMCStepper library to 0.5.0 or newer."
    ^~~~~
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelablabl.cpp.o
In file included from Marlinsrcfeature../module/stepper/indirection.h:44:0,
                 from Marlinsrcfeature../module/stepper.h:47,
                 from Marlinsrcfeaturebabystep.cpp:30:
Marlinsrcfeature../module/stepper/trinamic.h:31:4: error: #error "Update TMCStepper library to 0.5.0 or newer."
   #error "Update TMCStepper library to 0.5.0 or newer."
    ^~~~~
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelbedlevel.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelmblmesh_bed_leveling.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelublubl.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelublubl_G29.cpp.o
*** [.piobuildSTM32F103R_bigtreesrcsrcMarlin.cpp.o] Error 1
*** [.piobuildSTM32F103R_bigtreesrcsrcfeaturebabystep.cpp.o] Error 1

Кто-нибудь знает об этом?

Не та же проблема, хотя я не могу включить вентилятор экструдера автоматически. Он должен включиться, когда температура экструдера поднимается выше 50. Я попытался поднять температуру до 80, но он все равно не работает. Он будет включаться и выключаться вручную, когда я отправляю команду Gcode. Прикреплен файл Спасибо

вы не можете прикреплять файлы из электронной почты, вам нужно использовать сайт github

Итак, я обновился до последней фиксации сегодня и получил эту проблему с библиотекой bigtreetech TMCStepper:

In file included from Marlinsrcmodule/stepper/indirection.h:44:0,
                 from Marlinsrcmodule/stepper.h:47,
                 from MarlinsrcMarlin.cpp:37:
Marlinsrcmodule/stepper/trinamic.h:31:4: error: #error "Update TMCStepper library to 0.5.0 or newer."
   #error "Update TMCStepper library to 0.5.0 or newer."
    ^~~~~
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelablabl.cpp.o
In file included from Marlinsrcfeature../module/stepper/indirection.h:44:0,
                 from Marlinsrcfeature../module/stepper.h:47,
                 from Marlinsrcfeaturebabystep.cpp:30:
Marlinsrcfeature../module/stepper/trinamic.h:31:4: error: #error "Update TMCStepper library to 0.5.0 or newer."
   #error "Update TMCStepper library to 0.5.0 or newer."
    ^~~~~
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelbedlevel.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelmblmesh_bed_leveling.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelublubl.cpp.o
Compiling .piobuildSTM32F103R_bigtreesrcsrcfeaturebedlevelublubl_G29.cpp.o
*** [.piobuildSTM32F103R_bigtreesrcsrcMarlin.cpp.o] Error 1
*** [.piobuildSTM32F103R_bigtreesrcsrcfeaturebabystep.cpp.o] Error 1

Кто-нибудь знает об этом?

найдите это в своей ошибке: Обновите библиотеку TMCStepper до версии 0.5.0 или новее

это может дать вам ключ к разгадке :-D

я понятия не имею, поэтому я спрашиваю

лично я использую DRV8825 и TMC2100, и они вообще не требуют драйверов

Я изменил библиотеку обратно на исходную и загрузил прошивку в свой ender 3, но TMC connection error все еще присутствует.

Итак, теперь проблема в следующем:

  • Я не могу использовать оригинальную библиотеку TMCStepper , потому что она не может общаться с TMC 2209
  • Я не могу использовать библиотеку BIGTreeTech TMCStepper , потому что код не компилируется с указанной выше ошибкой

а ты делал обновление до версии 0.5.0?

очень странно, что говорится об обновлении до 0.5.0: — /

@thinkyhead Есть идеи об этой ошибке?

@TheZoker На вашем скриншоте две папки TMCStepper. Может быть, удалили тот, у кого нет суффикса, или всю папку libdeps и снова загрузили заново?

Просто попробовал это (удалив всю папку и снова загрузив все библиотеки), но то же самое, ошибка подключения TMC:
20190925_221023

Кажется, это объяснение проблемы с подключением TMC:
https://github.com/MarlinFirmware/Marlin/issues/15012#issuecomment -525572365

Это можно было обойти, используя библиотеку bigtreetech TMCStepper, но да, она больше не компилируется …

Ой, извините, я не понял, что вы говорите об ошибке времени выполнения, я думал, что это ошибка компиляции, которую получали люди. Приятно знать, потому что у меня есть SKR 1.3, который я собирался вставить в свои степперы 2209. Прошивка у меня скомпилирована, просто еще не добрался до обновления. Думаю, я подожду :)

У Marlin есть нереализованная библиотека SoftwareSerial, которая позволяет компилировать, но не позволяет ничему работать. Кажется, было бы гораздо лучше сломать сборку, чем дать сбой во время выполнения.

Попробуйте добавить библиотеку FYSETC SoftwareSerialM в свой STM32F103R_bigtree, чтобы проверить, работает ли она. Я вчера заработал, используя это. Вот весь блок, который вы можете скопировать / вставить, чтобы увидеть, работает ли он.

#
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
#
[env:STM32F103R_bigtree]
platform          = ststm32
framework         = arduino
board             = genericSTM32F103RC
platform_packages = tool-stm32duino
extra_scripts     = buildroot/share/PlatformIO/scripts/STM32F1_SKR_MINI.py
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL
build_unflags     = -std=gnu++11
lib_deps          = ${common.lib_deps}
  SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore        = Adafruit NeoPixel, SPI
src_filter        = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed     = 115200
upload_protocol   = stlink
debug_tool        = stlink

Фактические изменения в моем последнем посте заключались в строке lib_deps и добавлении -DHAVE_SW_SERIAL к build_flags .

@sjasonsmith Я попробовал это, но снова получил ту же ошибку подключения TMC: /

Попробуйте спаять контакты Tx и Rx (на плате TMC2209) вместе.
Моя работает нормально. Только что сделал свой первый отпечаток.

У меня он работает с SKR E3 Mini (встроенные драйверы 2209) и SKR E3 DIP (драйверы 2208) .

Не знаю, нужно ли DIP-плате E3 что-то особенное для работы с драйверами 2209. Моя конфигурация DIP отлично компилируется с драйверами, замененными на TMC2209, но у меня нет оборудования для ее тестирования. Возможно, перемычки на плате могут изменить адреса подчиненных устройств и потребуют изменения настроек _SLAVE_ADDRESS в файле configuration_adv.h.

Я вообще не могу говорить о платах SKR Mini 1.1 (не E3). Похоже, что файл контактов не определяет никаких последовательных контактов, поэтому потребуется гораздо больше работы для его правильной настройки.

У меня не будет доступа к своим машинам до конца этой недели, поэтому я отправлю свои рабочие конфигурации для них прямо сейчас, на случай, если это кому-то поможет.

SKR_E3_DIP.zip (драйверы 2208 UART. Никогда не тестировался на реальном принтере, могут быть другие проблемы с конфигурацией)
SKR_E3_Mini.zip (Встроенные драйверы 2209. От Ender 5 с BLTouch, но не полностью протестированы)

Есть новости по этому поводу?
Почему библиотека SoftwareSerial не добавлена ​​в Marlin?

Думаю, нужно добавить дополнительные build_flags для компиляции -DTMC_SERIAL_SWITCH
Мне помогло E3 DIP и 2208 UART.
(https://github.com/teemuatlut/TMCStepper/blob/b5b3658d34f93e0cc646dbaa54f90b809267206f/src/TMCStepper.h#L26)

Компилирую с SKR 1.3 + 2208 с коммитом e6055dc. Использование библиотеки TMCStepper 0.5.1 (я не менял никаких параметров конфигурации pio и не использовал вилку bigtree tmcstepper. Я еще не печатал, но она перемещает все оси и дома нормально.

но двигает все оси и дома нормально.

Пожалуйста, попробуйте M122 , потому что драйверы будут работать даже без uart …

Это будет поздно вечером, прежде чем я смогу это попробовать.

но двигает все оси и дома нормально.

Пожалуйста, попробуйте M122 , потому что драйверы будут работать даже без uart …

Работает
ПРИМЕЧАНИЕ. Это TMC2208 UART на SKR 1.3. Размещено в связи с проблемой сборки LastDragon-ru. На самом деле не имеет отношения к OP.

Send: M122
Recv:       X   Y   Z   E
Recv: Enabled       true    true    true    false
Recv: Set current   1200    1200    1200    980
Recv: RMS current   1160    1160    1160    939
Recv: MAX current   1636    1636    1636    1324
Recv: Run current   20/31   20/31   20/31   16/31
Recv: Hold current  10/31   10/31   10/31   8/31
Recv: CS actual 10/31   10/31   10/31   8/31
Recv: PWM scale 24  25  24  10
Recv: vsense        0=.325  0=.325  0=.325  0=.325
Recv: stealthChop   true    true    true    false
Recv: msteps        16  16  16  16
Recv: tstep     max max max max
Recv: pwm
Recv: threshold 49  49  82  31
Recv: [mm/s]        100 100 3   30
Recv: OT prewarn    false   false   false   false
Recv: OT prewarn has
Recv: been triggered    false   false   false   false
Recv: off time  4   4   4   4
Recv: blank time    24  24  24  24
Recv: hysteresis
Recv: -end      2   2   2   2
Recv: -start        1   1   1   1
Recv: Stallguard thrs
Recv: DRVSTATUS X   Y   Z   E
Recv: stst      *   *   *   *
Recv: olb
Recv: ola
Recv: s2gb
Recv: s2ga
Recv: otpw
Recv: ot
Recv: 157C
Recv: 150C
Recv: 143C
Recv: 120C
Recv: s2vsa
Recv: s2vsb
Recv: Driver registers:
Recv:       X   0xC0:0A:00:00
Recv:       Y   0xC0:0A:00:00
Recv:       Z   0xC0:0A:00:00
Recv:       E   0x80:08:00:00
Recv: 
Recv: 
Recv: Testing X connection... OK
Recv: Testing Y connection... OK
Recv: Testing Z connection... OK
Recv: Testing E connection... OK
Recv: ok P63 B31

Работает

Ага. Моя беда … Забыл про перемычки под драйверы 🤣 (2209 вроде тоже нормально)

@salacpavel @ LastDragon-ru так это исправлено?

Я предполагаю, что проблемы больше нет, и закрою

если проблема все еще существует, мы можем открыть ее повторно

как это исправить? У меня такая же проблема, ошибка подключения All LOW TMC.

Привет, у меня SKR MINI v1.1 (не E3) с TMC2209, и я ищу более подробную информацию. У меня все в порядке, я использую стандартные библиотеки, поставляемые с marlin. Я попытался определить контакт serialtx и rx на контактах ..-. H, затем подключил перемычки между этим контактом и контактом PDN_UART на шаговом двигателе, и я получал TMC CONNECTION ERROR.
Могу ли я использовать каждый доступный на плате пин (конечно, не отфильтрованные)? Должен ли я добавить флаг -DHAVE_SW_SERIAL?

Извините, но я не вижу исправления.
Плата BTT SKR 1.3 с драйверами BTT TMC2209 V1.2 — все равно получите

X 0x00: 00: 00: 00 Плохой ответ!
Y 0x00: 00: 00: 00 Плохой ответ!
Z 0x00: 00: 00: 00 Плохой ответ!
E 0x00: 00: 00: 00 Плохой ответ!
Тестирование соединения X … Ошибка: все НИЗКОЕ
Проверка соединения Y … Ошибка: все НИЗКОЕ
Тестирование Z-соединения … Ошибка: все НИЗКОЕ
Тестирование E-соединения … Ошибка: все LOW

Совсем новичок в Marlin 2.0 и 32-битных платах, поэтому я следил за видео YT, но не смог найти решение моей проблемы, пожалуйста, помогите

Думал, что столкнусь с этим, имея ту же проблему, и не вижу четкого исправления в этой теме.
TMC2209 SKR 1.3 Марлин 2.0

@RavaszEmber и @ LeChuck7 , я предлагаю вам воспользоваться одним из доступных форумов поддержки, чтобы обратиться за помощью в решении вашей проблемы. Вы используете очень распространенную комбинацию оборудования, поэтому, скорее всего, это проблема конфигурации, а не проблема Marlin. Убедитесь, что вы используете Marlin 2.0.1, затем обратитесь за помощью в Facebook, Discord, RepRap и т. Д.

Я бы не ожидал никаких действий по этому закрытому вопросу. Даже если в результате попыток поддержки возникла ошибка Marlin, я думаю, что это должна быть новая проблема, а не привязанная к хвосту старой закрытой проблемы.

@RavaszEmber и @ Lechuck7 , я предлагаю вам использовать один из доступных форумов поддержки, чтобы обратиться за помощью в решении вашей проблемы. Вы используете очень распространенную комбинацию оборудования, поэтому, скорее всего, это проблема конфигурации, а не проблема Marlin. Убедитесь, что вы используете Marlin 2.0.1, затем обратитесь за помощью в Facebook, Discord, RepRap и т. Д.

Я бы не ожидал никаких действий по этому закрытому вопросу. Даже если в результате попыток поддержки возникла ошибка Marlin, я думаю, что это должна быть новая проблема, а не привязанная к хвосту старой закрытой проблемы.

Спасибо, я новичок в github Marlin, поэтому не знал, где искать помощь.
Нашел решение, если кому-то интересно, я запускал плату на USB-питании, когда ей требовался внешний источник питания.

Спасибо, я новичок в github Marlin, поэтому не знал, где искать помощь.

README.md в корне Git Repo содержит ссылки на несколько ресурсов поддержки. Они также отображаются, когда вы пытаетесь создать новую задачу. Рад, что ты понял проблему. Я знаю, что сделал то же самое.

Привет, у меня есть вопрос о плате mks_robin_nano. Мне удалось подключить и успешно настроить четыре TMC2209 на этой плате, используя библиотеку bigtreetech TMCStepper и флаг -DHAVE_SW_SERIAL . Но эта библиотека устарела … Я не понимаю, почему SoftwareSerial или аналогичные методы не могут быть реализованы, пока он работает, при использовании с ним другой библиотеки.

Будет ли это как-то решено в будущем, чтобы мы могли использовать последнюю библиотеку TMC? Или мне что-то не хватает, и я должен использовать аппаратный последовательный порт на этой плате?

@pertzmax , я предлагаю вам попробовать использовать библиотеку SoftwareSerialM, как это сделано для среды STM32F103RC_bigtree.

Я не делал этого для плат MKS, потому что у меня не было ни одной из них для тестирования, и я не был уверен, будет ли она работать должным образом. Возможны конфликты таймеров на платах, и я не знал, что выбрать для каких-либо плат MKS.

Номер таймера SoftwareSerialM определяется путем добавления элемента -DSS_TIMER=4 для создания флагов, как показано в STM32F103RC_bigtree. Если BTT TMCStepper работал на вас, вы, вероятно, можете использовать то же значение (4), что и платы BTT.

Если вы подтверждаете, что SoftwareSerialM правильно работает с вашими досками, вам следует открыть запрос на вытягивание, чтобы добавить эту конфигурацию для вашей среды, чтобы другие могли извлечь из нее пользу.

@sjasonsmith Спасибо за советы, скоро протестирую Ваше решение и

РЕДАКТИРОВАТЬ: Это было легко — это сработало как шарм! Скоро поделюсь :)

С наилучшими пожеланиями из Польши,
Артур Петржак

Может ли кто-нибудь пройти через процесс добавления этой строки -dss timer = 4? Я также получаю сообщение об ошибке подключения tmc, и я не могу во всем разобраться

@ slf495 Какую доску вы используете?

SKR 1.3 не нуждается в этом — этот параметр специфичен для процессоров STM32 и не применяется к LPC1768 на SKR 1.3.

Заходите в Marlin Discord, и мы постараемся помочь вам заставить его работать.

У меня такая же ошибка со встроенными драйверами 2209 в плате SKR mini E3 V1.2. Я не копаюсь в программировании, поэтому мне сложно понять, когда вы говорите о некоторых библиотеках и т. Д. Просто скажите мне, что нужно написать, чтобы это работало. Если ты знаешь.
С оригинальной прошивкой моторы заработали, перебрались, но после установки последней Marlin эта ошибка появилась. Так что подозреваю, что плата подключена правильно. К сожалению у меня нет оригинальной прошивки = ((

Я починил это. Скорее всего, проблема была в неправильном названии платы (хотя не уверен, не вернул). Я написал такое название — #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2

Эта проблема была автоматически заблокирована, поскольку после ее закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.

Была ли эта страница полезной?

0 / 5 — 0 рейтинги

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

When building with the default values in stm32h7.ini for platform and platform-packages, the resulting build has UART issues with at least TMC2208, TMC2209 and EZ2209 stepper drivers. Updating to use more current platform and platform-packages resolve those issues.

This was a day one issue for me regardless of the version of Marlin I was building (2.0.x and 2.1.x). Hardware tested was a BTT SKR 3 EZ with EZ2209 as well as TMC2208 v3.0 stepper sticks on an Ender 3 Max (not that it matters).

After doing testing, everything is operating as expected and the MCU is no longer reporting TMC connection errors.

There is very likely a better way to do this, but my successful build that resolved the TMC CONNECTION ERRORS was using the values in STM32h7.ini show below.

...
#
# BigTreeTech SKR V3.0 / V3.0 EZ (STM32H743VIT6 ARM Cortex-M7)
#
[env:STM32H743Vx_btt]
extends                     = stm32_variant
#platform                    = ststm32@~14.1.0
platform                    = ststm32@~15.4.1
#platform_packages           = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
platform_packages           = framework-arduinoststm32@~4.20200.220530
board                       = marlin_STM32H743Vx
board_build.offset          = 0x20000
board_upload.offset_address = 0x08020000
build_flags                 = ${stm32_variant.build_flags}
                            -DPIN_SERIAL1_RX=PA_10 -DPIN_SERIAL1_TX=PA_9
                            -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
                            -DPIN_SERIAL4_RX=PA_1 -DPIN_SERIAL4_TX=PA_0
                            -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
                            -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
                            -DSTEP_TIMER_IRQ_PRIO=0
                            -DD_CACHE_DISABLED
upload_protocol             = cmsis-dap
debug_tool                  = cmsis-dap

Bug Timeline

This has happened from every build I have attempted to compile for this board.

Expected behavior

Firmware would build and operate normally with error free UART communications to the stepper drivers.

Actual behavior

Before making the changes, the MCU would report TMC CONNECTION ERROR message to the display, and M122 command would show ALL LOW errors that would jump around from stepper to stepper. Stepper drivers with errors were also not properly configures as expected for a stepper driver the MCU is not reliably able to communicate with. Output from M122 command is shown below:

M122
		X	Y	Z	Z2	E
Address		0	0	0	0	0
Enabled		true	false	false	false	false
Set current	560	560	560	560	600
RMS current	994	550	550	994	581
MAX current	1402	776	776	1402	819
Run current	17/31	17/31	17/31	17/31	18/31
Hold current	8/31	8/31	8/31	8/31	9/31
CS actual	0/31	8/31	8/31	0/31	9/31
PWM scale					
vsense		0=.325	1=.18	1=.18	0=.325	1=.18
stealthChop	false	true	true	false	true
msteps		256	16	16	256	16
interp		false	true	true	false	true
tstep		0	max	max	0	max
PWM thresh.					
[mm/s]						
OT prewarn	false	false	false	false	false
triggered
 OTP		false	false	false	false	false
pwm scale sum	0	10	10	0	11
pwm scale auto	0	0	0	0	0
pwm offset auto	0	36	0	0	36
pwm grad auto	0	14	14	0	14
off time	0	4	4	0	4
blank time	24	24	24	16	24
hysteresis
 -end		-3	2	2	-3	2
 -start		1	1	1	1	1
Stallguard thrs	0	0	0	0	0
uStep count	0	40	40	0	40
DRVSTATUS	X	Y	Z	Z2	E
sg_result	0	0	0	0	0
stst		*		*	*	
olb						
ola						
s2gb						
s2ga						
otpw						
ot						
157C						
150C						
143C						
120C						
s2vsa						
s2vsb						
Driver registers:
		X	0x00:00:00:00	 Bad response!
		Y	0xC0:08:00:00
		Z	0xC0:08:00:00
		Z2	0x00:00:00:00	 Bad response!
		E	0xC0:09:00:00


Testing X connection... Error: All LOW
Testing Y connection... OK
Testing Z connection... OK
Testing Z2 connection... Error: All LOW
Testing E connection... OK
ok


M122
		X	Y	Z	Z2	E
Address		0	0	0	0	0
Enabled		false	false	false	false	false
Set current	560	560	560	560	600
RMS current	994	550	550	994	581
MAX current	1402	776	776	1402	819
Run current	17/31	17/31	17/31	17/31	18/31
Hold current	8/31	8/31	8/31	8/31	9/31
CS actual	0/31	8/31	8/31	0/31	9/31
PWM scale					
vsense		0=.325	1=.18	1=.18	0=.325	1=.18
stealthChop	false	true	true	false	true
msteps		16	16	16	256	16
interp		false	true	true	false	true
tstep		0	max	0	0	max
PWM thresh.					
[mm/s]						
OT prewarn	false	false	false	false	false
triggered
 OTP		false	false	false	false	false
pwm scale sum	0	10	10	0	11
pwm scale auto	0	0	0	0	0
pwm offset auto	36	36	36	0	36
pwm grad auto	0	14	14	0	14
off time	0	4	4	0	4
blank time	16	24	24	16	24
hysteresis
 -end		-3	2	2	-3	2
 -start		1	1	1	1	1
Stallguard thrs	0	0	0	0	0
uStep count	0	40	40	0	40
DRVSTATUS	X	Y	Z	Z2	E
sg_result	0	0	0	0	0
stst		*			*	
olb						
ola						
s2gb						
s2ga						
otpw						
ot						
157C						
150C						
143C						
120C						
s2vsa						
s2vsb						
Driver registers:
		X	0x00:00:00:00	 Bad response!
		Y	0xC0:08:00:00
		Z	0xC0:08:00:00
		Z2	0x00:00:00:00	 Bad response!
		E	0xC0:09:00:00


Testing X connection... Error: All LOW
Testing Y connection... OK
Testing Z connection... Error: All LOW
Testing Z2 connection... Error: All LOW
Testing E connection... OK
ok

Steps to Reproduce

  1. Build Marlin with unmodified stm32h7.ini file
  2. Define either TMC2208 or TMC2209 *_DRIVER_TYPE in Configuration.h
  3. Build in VSC/PIO/ABM
  4. Flash firmware.bin to printer and TMC CONNECTION ERROR is displayed on the LCD with M122 showing ALL LOW and misconfigured drivers.

Version of Marlin Firmware

2.0.x and 2.1.x

Printer model

Ender 3 Max

Electronics

SKR 3 EZ motherboard with EZ2209 or TMC2208 v3.0 BTT stepper drivers

Add-ons

Unlikely to be involved, but the printer is also configured with a CRTouch, TFT35 E3 display, BIGTREETECH ESP8266 WiFi Transceiver Module (ESP12S),

Bed Leveling

UBL Bilinear mesh

Your Slicer

Cura

Host Software

OctoPrint

Don’t forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

Enabling or disabling other features had not effect on the UART communication errors with the stepper drivers. I attempted builds that just configured the board, and stepper drivers and it still resulted in issued. The attached configurations enable all the features I wanted and produced errors with the default stm32h7.ini, but the errors were resolved with when I modified the file as noted above.

Configurations:
Configurations.zip

There was also discussion of this issue on BTT github:
bigtreetech/SKR-3#13

Понравилась статья? Поделить с друзьями:
  • Tmc connection error 2209 mks
  • Tmc connection error 2208
  • Tmac ошибка failed to change mac address
  • Tmac runtime error
  • Tm5 crash thread error handler