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
Как итог, принтер не может работать, когда я не дома, да и дома приходится бегать к нему каждые пару минут и смотреть, не начало ли сопло лихо бурить пластик :)
Для наглядности приложу пару фоток последней испорченной модели и настройки куры:Вопрос получился весьма объемным, с лишней информацией, но я попытался подробно его описать с разных сторон, ибо уже нет идей куда копать и что менять.... Буду очень рад помощи и/или советам.
Спасибо, что дочитали эту стену текста :)
З.Ы. пытался оформить это все более читаемо, но все пробелы и пустые строчки были строго удалены :) осталась лишь стена текста
Популярные вопросы
Куда сдать отходы печати и пустые катушки в МСК
Коллеги, соратники, у меня скопилось несколько кило крупных пластиковых отходов от печати, и несколько катушек.
Выставил на Авито по...
Выставил на Авито по...
После включения принтера, сразу нагревается хотенд
Добрый день. Принтер flying bear s1.
После прочистки сопла и затягивания его на горячую, замкнул полосками провода нагревательного бл...
После прочистки сопла и затягивания его на горячую, замкнул полосками провода нагревательного бл...
Программа для 3D проектирования
Понимаю, что тема 100500 раз обсуждалась, но не удалось нигде найти обобщающей информации, в основном все в одной куче советуется.
Пр...
Пр...
Комментарии и вопросы
Какой бизнес , такой и ланч. В...
40 и 60W они бывают , укажите....
сделать ручки из фотополимераЭ...
Год назад начались проблемы с...
Пошел 4-й день, как висит объя...
Здравствуйте, помогите пожалуй...
Здравствуйте!!10 лет стоял в к...