4 двигателя на ось Z
Модератор: Kaktus
Re: 4 двигателя на ось Z
В общем прописал указанные выше пины по очереди в марлин на базовую ось Z - по отдельности двигатели работают замечательно. Пины рабочие. Проблема все таки в прошивке. Продолжим.
Последний раз редактировалось HCDKutber 07 фев 2021, 20:06, всего редактировалось 1 раз.
Re: 4 двигателя на ось Z
Проблема решена. Итог.
Configuration h:
// Указываем драйверы:
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define Z2_DRIVER_TYPE TMC2208_STANDALONE
#define Z3_DRIVER_TYPE TMC2208_STANDALONE
#define Z4_DRIVER_TYPE TMC2208_STANDALONE
Configuration h:
Еще можно инвертировать двигатели, если у кого то движутся в обратном направлении. У меня 3 двигателя крутились в одну сторону, один двигатель в обратную:
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_Z1_DIR false
#define INVERT_Z2_DIR true
#define INVERT_Z3_DIR false
Configuration_adv.h:
// Указываем количество драйвером на ось Z
#define NUM_Z_STEPPER_DRIVERS 4
Pins - > LPC 1768 -> pins_BTT_SKR_V1.4.h
//Прописываем пины для двигателей
#define Z_STEP_PIN P0_22
#define Z_DIR_PIN P2_11
#define Z_ENABLE_PIN P0_21
#ifndef Z_CS_PIN
#define Z_CS_PIN P1_08
#endif
#define Z2_STEP_PIN P0_18
#define Z2_DIR_PIN P3_25
#define Z2_ENABLE_PIN P1_31
#ifndef Z2_CS_PIN
#define Z2_CS_PIN P1_21
#endif
#define Z3_STEP_PIN P3_26
#define Z3_DIR_PIN P0_16
#define Z3_ENABLE_PIN P1_23
#ifndef Z3_CS_PIN
#define Z3_CS_PIN P1_19
#endif
#define Z4_STEP_PIN P0_17
#define Z4_DIR_PIN P0_15
#define Z4_ENABLE_PIN P1_22
#ifndef Z4_CS_PIN
#define Z4_CS_PIN P0_28
#endif
Configuration h:
// Указываем драйверы:
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define Z2_DRIVER_TYPE TMC2208_STANDALONE
#define Z3_DRIVER_TYPE TMC2208_STANDALONE
#define Z4_DRIVER_TYPE TMC2208_STANDALONE
Configuration h:
Еще можно инвертировать двигатели, если у кого то движутся в обратном направлении. У меня 3 двигателя крутились в одну сторону, один двигатель в обратную:
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_Z1_DIR false
#define INVERT_Z2_DIR true
#define INVERT_Z3_DIR false
Configuration_adv.h:
// Указываем количество драйвером на ось Z
#define NUM_Z_STEPPER_DRIVERS 4
Pins - > LPC 1768 -> pins_BTT_SKR_V1.4.h
//Прописываем пины для двигателей
#define Z_STEP_PIN P0_22
#define Z_DIR_PIN P2_11
#define Z_ENABLE_PIN P0_21
#ifndef Z_CS_PIN
#define Z_CS_PIN P1_08
#endif
#define Z2_STEP_PIN P0_18
#define Z2_DIR_PIN P3_25
#define Z2_ENABLE_PIN P1_31
#ifndef Z2_CS_PIN
#define Z2_CS_PIN P1_21
#endif
#define Z3_STEP_PIN P3_26
#define Z3_DIR_PIN P0_16
#define Z3_ENABLE_PIN P1_23
#ifndef Z3_CS_PIN
#define Z3_CS_PIN P1_19
#endif
#define Z4_STEP_PIN P0_17
#define Z4_DIR_PIN P0_15
#define Z4_ENABLE_PIN P1_22
#ifndef Z4_CS_PIN
#define Z4_CS_PIN P0_28
#endif
Последний раз редактировалось HCDKutber 07 фев 2021, 21:41, всего редактировалось 1 раз.
Re: 4 двигателя на ось Z
Дальше буду включать независимо концевики для каждого двигателя оси z, но это уже другая история.
- Alex Post
- Сообщения: 7026
- Зарегистрирован: 11 янв 2017, 17:22
- Имя: Александр
- Откуда: Брест, РБ
- Благодарил (а): 333 раза
- Поблагодарили: 822 раза
- Контактная информация:
Re: 4 двигателя на ось Z
Так а в чем проблема то была?
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Re: 4 двигателя на ось Z
1) в распиновке надо было указать UART (CS_PIN), пока не прозвонил плату не мог понять где пины UART;
2) возможно в прошивке была ошибка, но не уверен, т.к. конфигурировал ее заново.
2) возможно в прошивке была ошибка, но не уверен, т.к. конфигурировал ее заново.
- Alex Post
- Сообщения: 7026
- Зарегистрирован: 11 янв 2017, 17:22
- Имя: Александр
- Откуда: Брест, РБ
- Благодарил (а): 333 раза
- Поблагодарили: 822 раза
- Контактная информация:
Re: 4 двигателя на ось Z
А, там драйверы с uart? А в дефайнах же стандалон
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Re: 4 двигателя на ось Z
На сколько я понял дефайны реально не влияют на работу драйверов или работают в контексте других каких то фрагментов кода, которые неактивны в моей прошивке. Можно дефайаны на драйверы закомментировать и плата все равно работает в том режиме, который выставлен на перемычках. При компиляции VScode не ругается.
Ось Z: 4 концевика, 4 ШД
Всем, привет!
Плата skr 1.4 turbo. Драйверы TMC 2208 v3. Прошивка Marlin.
На оси Z четыре двигателя, и четыре концевика. При парковке на ось Х и У все хорошо - проблем нет. При парковке на на ось Z ФДМ зависает сразу после выполнения парковки (каждый двигатель касается 2 раза своего концевика и ФДМ виснет). После перезагрузки и запроса m119 показывает что все концевики triggered, до парковки open.
Есть гипотезы?
// Концевики минимум работают на XYZ, концевики максимум работают на двигатели Z2,Z3,Z4. Внизу есть опции мультиконцевика.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG
// Концевики механические. На M119 откликаются, ФДМ при этом не виснет.
#define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOP_INVERTING true
#define Z_MAX_ENDSTOP_INVERTING true
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
// Прошивка формировалась с нуля калибровку осей пока не делал. Значения поставил примерно.
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1000, 80 }
#define DEFAULT_MAX_FEEDRATE { 100, 100, 5, 25 }
#define DEFAULT_MAX_ACCELERATION { 200, 200, 200, 10000 }
define DEFAULT_ACCELERATION 200
#define DEFAULT_RETRACT_ACCELERATION 10000
#define DEFAULT_TRAVEL_ACCELERATION 200
// Для удобства настройки инвертировал все оси. Должна быть инвертирована только ось Z
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
// Оси двигаются в нужном направлении.
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
// Значения Z стоят приблизительно
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 500
// 4 двигателя на оси Z
#define NUM_Z_STEPPER_DRIVERS 4
// включен мультиконцевик
#if NUM_Z_STEPPER_DRIVERS > 1
#define Z_MULTI_ENDSTOPS
#if ENABLED(Z_MULTI_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#define Z2_ENDSTOP_ADJUSTMENT 0
#if NUM_Z_STEPPER_DRIVERS >= 3
#define Z3_USE_ENDSTOP _YMAX_
#define Z3_ENDSTOP_ADJUSTMENT 0
#endif
#if NUM_Z_STEPPER_DRIVERS >= 4
#define Z4_USE_ENDSTOP _ZMAX_
#define Z4_ENDSTOP_ADJUSTMENT 0
#endif
#endif
#endif
// Распиновку показывать смысла нет — все концевики определяются и там все верно.
Плата skr 1.4 turbo. Драйверы TMC 2208 v3. Прошивка Marlin.
На оси Z четыре двигателя, и четыре концевика. При парковке на ось Х и У все хорошо - проблем нет. При парковке на на ось Z ФДМ зависает сразу после выполнения парковки (каждый двигатель касается 2 раза своего концевика и ФДМ виснет). После перезагрузки и запроса m119 показывает что все концевики triggered, до парковки open.
Есть гипотезы?
// Концевики минимум работают на XYZ, концевики максимум работают на двигатели Z2,Z3,Z4. Внизу есть опции мультиконцевика.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG
// Концевики механические. На M119 откликаются, ФДМ при этом не виснет.
#define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOP_INVERTING true
#define Z_MAX_ENDSTOP_INVERTING true
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
// Прошивка формировалась с нуля калибровку осей пока не делал. Значения поставил примерно.
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1000, 80 }
#define DEFAULT_MAX_FEEDRATE { 100, 100, 5, 25 }
#define DEFAULT_MAX_ACCELERATION { 200, 200, 200, 10000 }
define DEFAULT_ACCELERATION 200
#define DEFAULT_RETRACT_ACCELERATION 10000
#define DEFAULT_TRAVEL_ACCELERATION 200
// Для удобства настройки инвертировал все оси. Должна быть инвертирована только ось Z
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
// Оси двигаются в нужном направлении.
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
// Значения Z стоят приблизительно
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 500
// 4 двигателя на оси Z
#define NUM_Z_STEPPER_DRIVERS 4
// включен мультиконцевик
#if NUM_Z_STEPPER_DRIVERS > 1
#define Z_MULTI_ENDSTOPS
#if ENABLED(Z_MULTI_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#define Z2_ENDSTOP_ADJUSTMENT 0
#if NUM_Z_STEPPER_DRIVERS >= 3
#define Z3_USE_ENDSTOP _YMAX_
#define Z3_ENDSTOP_ADJUSTMENT 0
#endif
#if NUM_Z_STEPPER_DRIVERS >= 4
#define Z4_USE_ENDSTOP _ZMAX_
#define Z4_ENDSTOP_ADJUSTMENT 0
#endif
#endif
#endif
// Распиновку показывать смысла нет — все концевики определяются и там все верно.
Re: Ось Z: 4 концевика, 4 ШД
Connecting...
Printer is now online.
>>> M111 S32
SENDING:M111 S32
echo:DEBUG:LEVELING
>>> G28 X0.00 Y0.00 Z10.00
Machine Type: CoreCartesian
Probe: NONE
>>> homeaxis(Z)
Home 1 Fast:
>>> do_homing_move X0.00 Y0.00 Z10.00
...(Z, -750.00, [4.00])
echo:busy: processing
>> do_homing_move X0.00 Y0.00 Z10.00
...(Z, 0.00, [4.00])
Error:Printer halted. kill() called!
[ERROR] Error:Printer halted. kill() called!
Printer is now online.
>>> M111 S32
SENDING:M111 S32
echo:DEBUG:LEVELING
>>> G28 X0.00 Y0.00 Z10.00
Machine Type: CoreCartesian
Probe: NONE
>>> homeaxis(Z)
Home 1 Fast:
>>> do_homing_move X0.00 Y0.00 Z10.00
...(Z, -750.00, [4.00])
echo:busy: processing
>> do_homing_move X0.00 Y0.00 Z10.00
...(Z, 0.00, [4.00])
Error:Printer halted. kill() called!
[ERROR] Error:Printer halted. kill() called!