Ender 3, SKR 1.3, TMC2208, ось Z сбивается при печати
Доброго времени суток!
С недавнего времени довольно громкие драйвера стокового Ender 3 перестали меня устраивать, поэтому было решено приобрести тихие TMC2208 V3, ну и плату SKR 1.3 заодно. Сказано - сделано, пару недель спустя плата у меня. Драйвера действительно тихие и я ими доволен. В целом все работает неплохо, но вот имеются пара проблем с осью Z. Дело в том, что иногда при печати эта самая ось, вместо движения наверх начинает двигаться вниз, вгрызаясь в свежепропечатанный пластик. Как итог - стоит отвлечься на пару минут, деталь уже испорчена, грубо сдернута с поверхности, а сопло неумолимо движется к самому столу. Было и такое, что сопло уперлось в стол и довольно прилично его прогнуло. Такая вот гадость происходит не всегда, например, недавно печатал кораблик Benchy и он довольно неплохо пропечатался. Всякие калибровочные кубики и мелкие детали печатаются тоже хорошо. Перерыл форум в надежде на ответы, но именно такой проблемы не увидел. Была похожая ситуация у человека, но он нашел старые профили от куры и с ними все стало работать. До SKR 1.3 я использовал klipper и был им очень доволен, как следствие все старые профили были заточены под klipper. Тут же решил опробовать Marlin 2.0, который должен отлично работать с 32 битными платами, но как то застрял с этой проблемкой.
Принтер - Ender 3, стоит 3D-Touch, на всех осях(включая экструдор) стоят TMC2208 V3 в UART режиме, имеется Octoprint, печать ведется через него. Слайсер я использую Cura 4.1.0
Печать ведется PLA пластиком 200/60
Для настройки марлина, пользовался этим гайдом https://ender3.club/Установка_SKR_1.3_%2B_TMC2208_UART
Некоторые настройки кофига Configuration.h
#define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE TMC2208
#define E0_DRIVER_TYPE TMC2208
#define S_CURVE_ACCELERATION
#define INVERT_E0_DIR true
#define HOMING_FEEDRATE_XY (30*60)
#define HOMING_FEEDRATE_Z (4*60) оставил 4, ибо пару раз когда игрался с шагами мотора, он довольно бодро протаранил стол. Сейчас спускается медленно :=)
#define BAUDRATE 115200 решил оставить так как есть, хоть и плата поддерживает 250000
всякие настройки картридера, стокового дисплея, BlTouch и его оффсеты думаю не интересны
Kp, Ki, Kd регуляторы пока не настраивал, было лень, ибо все и так неплохо на стоке работает
дальше интереснее, ковырялся с шагами двигателей, стоят 1/16 и работают в Stealthchop mode, все кроме экструдера, он работает в
#define DEFAULT_AXIS_STEPS_PER_UNIT { (200*16)/(2.0*20), (200*16)/(2.0*20), 400.00, 93.00 }
довольно долго грешил на те самые 400 по оси Z, делал расчеты именно для эндера, получалось что-то около 1600 с копейками, работало неплохо, но все же пока что остановился на дефолте, изначально конфиг был содран из папки с примерами
#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 } все оставил как есть
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 5000 } тоже пока оставил все как есть, возможно увеличу эти значения позже, как Z ось будет стабильно работать
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500
Джерки тоже стоят стандартые на 10
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3
#define DEFAULT_EJERK 5.0
В файле Configuration_adv.h
#define HOMING_BUMP_DIVISOR { 4, 4, 4 } поставил 4, для парковки осей, не думаю, что этот параметр имеет влияние на мою проблему, но все же
#define 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 5 // 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.
Так же включен Linear Advance
Был косяк с мотором Z, поэтому включил
#define MINIMUM_STEPPER_PULSE 1 и все заработало
Дальше интереснее, идет настройка токов, пробовал разные способы, и сам расчитывать исходя из старых драйверов на стоковой плате, и перенимал значения из разных гайдов/видео туториалов, в итоге плюнул и поставил те значения, которые описаны на вышеупомянутой статье(и да, ток на самих драйверах в ручную настроен)
if HAS_TRINAMIC
#define HOLD_MULTIPLIER 0.6 // Scales down the holding current from run current
#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256
#if AXIS_IS_TMC(X)
#define X_CURRENT 450 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11
#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
X,Y,Z работают в режиме Stealthchop
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
//#define STEALTHCHOP_E
#define CHOPPER_TIMING CHOPPER_DEFAULT_24V ибо 24 Вольта напряжение
Включен гибридный режим
#define HYBRID_THRESHOLD
#define X_HYBRID_THRESHOLD 120
#define Y_HYBRID_THRESHOLD 120
#define Z_HYBRID_THRESHOLD 10
#define E0_HYBRID_THRESHOLD 15
Не слишком понял, что это за параметр, просто перенял из гайда, что-то с экструзией по объему, но не думаю, что в нем проблема:
#define NO_VOLUMETRICS
Как итог, принтер не может работать, когда я не дома, да и дома приходится бегать к нему каждые пару минут и смотреть, не начало ли сопло лихо бурить пластик :)
Для наглядности приложу пару фоток последней испорченной модели и настройки куры:Вопрос получился весьма объемным, с лишней информацией, но я попытался подробно его описать с разных сторон, ибо уже нет идей куда копать и что менять.... Буду очень рад помощи и/или советам.
Спасибо, что дочитали эту стену текста :)
З.Ы. пытался оформить это все более читаемо, но все пробелы и пустые строчки были строго удалены :) осталась лишь стена текста
С недавнего времени довольно громкие драйвера стокового Ender 3 перестали меня устраивать, поэтому было решено приобрести тихие TMC2208 V3, ну и плату SKR 1.3 заодно. Сказано - сделано, пару недель спустя плата у меня. Драйвера действительно тихие и я ими доволен. В целом все работает неплохо, но вот имеются пара проблем с осью Z. Дело в том, что иногда при печати эта самая ось, вместо движения наверх начинает двигаться вниз, вгрызаясь в свежепропечатанный пластик. Как итог - стоит отвлечься на пару минут, деталь уже испорчена, грубо сдернута с поверхности, а сопло неумолимо движется к самому столу. Было и такое, что сопло уперлось в стол и довольно прилично его прогнуло. Такая вот гадость происходит не всегда, например, недавно печатал кораблик Benchy и он довольно неплохо пропечатался. Всякие калибровочные кубики и мелкие детали печатаются тоже хорошо. Перерыл форум в надежде на ответы, но именно такой проблемы не увидел. Была похожая ситуация у человека, но он нашел старые профили от куры и с ними все стало работать. До SKR 1.3 я использовал klipper и был им очень доволен, как следствие все старые профили были заточены под klipper. Тут же решил опробовать Marlin 2.0, который должен отлично работать с 32 битными платами, но как то застрял с этой проблемкой.
Принтер - Ender 3, стоит 3D-Touch, на всех осях(включая экструдор) стоят TMC2208 V3 в UART режиме, имеется Octoprint, печать ведется через него. Слайсер я использую Cura 4.1.0
Печать ведется PLA пластиком 200/60
Для настройки марлина, пользовался этим гайдом https://ender3.club/Установка_SKR_1.3_%2B_TMC2208_UART
Некоторые настройки кофига Configuration.h
#define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE TMC2208
#define E0_DRIVER_TYPE TMC2208
#define S_CURVE_ACCELERATION
#define INVERT_E0_DIR true
#define HOMING_FEEDRATE_XY (30*60)
#define HOMING_FEEDRATE_Z (4*60) оставил 4, ибо пару раз когда игрался с шагами мотора, он довольно бодро протаранил стол. Сейчас спускается медленно :=)
#define BAUDRATE 115200 решил оставить так как есть, хоть и плата поддерживает 250000
всякие настройки картридера, стокового дисплея, BlTouch и его оффсеты думаю не интересны
Kp, Ki, Kd регуляторы пока не настраивал, было лень, ибо все и так неплохо на стоке работает
дальше интереснее, ковырялся с шагами двигателей, стоят 1/16 и работают в Stealthchop mode, все кроме экструдера, он работает в
#define DEFAULT_AXIS_STEPS_PER_UNIT { (200*16)/(2.0*20), (200*16)/(2.0*20), 400.00, 93.00 }
довольно долго грешил на те самые 400 по оси Z, делал расчеты именно для эндера, получалось что-то около 1600 с копейками, работало неплохо, но все же пока что остановился на дефолте, изначально конфиг был содран из папки с примерами
#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 } все оставил как есть
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 5000 } тоже пока оставил все как есть, возможно увеличу эти значения позже, как Z ось будет стабильно работать
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500
Джерки тоже стоят стандартые на 10
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3
#define DEFAULT_EJERK 5.0
В файле Configuration_adv.h
#define HOMING_BUMP_DIVISOR { 4, 4, 4 } поставил 4, для парковки осей, не думаю, что этот параметр имеет влияние на мою проблему, но все же
#define 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 5 // 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.
Так же включен Linear Advance
Был косяк с мотором Z, поэтому включил
#define MINIMUM_STEPPER_PULSE 1 и все заработало
Дальше интереснее, идет настройка токов, пробовал разные способы, и сам расчитывать исходя из старых драйверов на стоковой плате, и перенимал значения из разных гайдов/видео туториалов, в итоге плюнул и поставил те значения, которые описаны на вышеупомянутой статье(и да, ток на самих драйверах в ручную настроен)
if HAS_TRINAMIC
#define HOLD_MULTIPLIER 0.6 // Scales down the holding current from run current
#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256
#if AXIS_IS_TMC(X)
#define X_CURRENT 450 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11
#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
X,Y,Z работают в режиме Stealthchop
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
//#define STEALTHCHOP_E
#define CHOPPER_TIMING CHOPPER_DEFAULT_24V ибо 24 Вольта напряжение
Включен гибридный режим
#define HYBRID_THRESHOLD
#define X_HYBRID_THRESHOLD 120
#define Y_HYBRID_THRESHOLD 120
#define Z_HYBRID_THRESHOLD 10
#define E0_HYBRID_THRESHOLD 15
Не слишком понял, что это за параметр, просто перенял из гайда, что-то с экструзией по объему, но не думаю, что в нем проблема:
#define NO_VOLUMETRICS
Как итог, принтер не может работать, когда я не дома, да и дома приходится бегать к нему каждые пару минут и смотреть, не начало ли сопло лихо бурить пластик :)
Для наглядности приложу пару фоток последней испорченной модели и настройки куры:Вопрос получился весьма объемным, с лишней информацией, но я попытался подробно его описать с разных сторон, ибо уже нет идей куда копать и что менять.... Буду очень рад помощи и/или советам.
Спасибо, что дочитали эту стену текста :)
З.Ы. пытался оформить это все более читаемо, но все пробелы и пустые строчки были строго удалены :) осталась лишь стена текста
Популярные вопросы
Потек хотэнд, нужна помощь
Ender 3 creality sprite extruder
Долго не мог понять откуда сопли, оказалось, что течёт хотенд. Видимо пластик выдавливает на нагрева...
Долго не мог понять откуда сопли, оказалось, что течёт хотенд. Видимо пластик выдавливает на нагрева...
Вопросы по Repetier-Host.
Попробовал эту прогу и очаровался.:-))? Много может, печатает с компа, просто устанавливается в отличие от октопринта, при установке которого приходит...
Кубик, Simplify3D и мосты
slic3r перед тем, как выкладывать верхние слои, кладет мосты, а прекрасный Simpli3D этого не делает :(
То есть вот это зелено...
То есть вот это зелено...









Комментарии и вопросы
Я не совсем понимаю нюансы про...
извините. что вопрос не по тем...
Теперь он на более старшие про...
При печати горизонтальных отве...
возникла проблема модель на 2-...
Всем привет! Столкнулся вот с...
Добрый день! Через полгода бес...