Перейти до публікації

Налаштування профілю під SKR1.3+TMC2130 SPI


Рекомендовані повідомлення

Ось ми і підійшли до налаштування Klipper. Нагадаю як встановити сам кліппер-

Подальша інструкція відноситься для материнки SKR1.3, але по аналогічно можливо налаштувати під будь яку материнку.

У цьому описі я буду користуватися плагіном Octoklipper. У ньому і буду конфігурувати свій принтер.

На гітхабі проекту є вже створені конфіги принтеру під певні материнки. 

 

image.thumb.png.48b2ddd71c69ff71d754938dbcb345ba.png

 

Відкриваємо цей файл, копіюємо все, шо в ньому,та вставляємо у вікно конфігурування OktoКlipper

 

image.thumb.png.6c426ead71fe6d55e1ab18f8c01e43bd.png

 

Як ми бачимо у блоках вже прописані піни нашої материнки. 

Давайте більш детально розглянемо що до чого. Приведу аналогію до Марлін.

Назва блоку починаеться з квадратних скобках в яких записана назва. Послідовність блоків не має значення, але щоб не плутатись що де розташовано, бажано об'єднувати блоки по напрямкам, або функціям.

# така решітка коментує все, що знаходиться за нею, тоб-то программа не бере до уваги все що після решітки аж до наступного рядку. Можно вписувати свої коментарі.

! - знак оклику інвертує значення на протилежне. 

 

[stepper_x] -назва блоку - налаштування драйверу вісі "Х"

step_pin: P2.2                   #define X_STEP_PIN         P2_02

dir_pin: !P2.6                    #define X_DIR_PIN          P2_06

enable_pin: !P2.1             #define X_ENABLE_PIN       P2_01

step_distance: .00625 #define DEFAULT_AXIS_STEPS_PER_UNIT   { 160, Y, Z, E} У Klipper відстань вимірюеться по уньшому. Треба вказати відстань у мм на один крок. Можно використати формулу  1/(кроки двигуна * мікрокрок)/(крок ремня * кількість зубів шкива) Так як у мене мотори 0,9град/оберт, у Марлін було 160 кроків на 1мм. Тоді для Кліппера 1/160=0,00625 

microsteps: 32              Вказати кількість мікрокроків

full_steps_per_rotation: 400     Кількість кроків на один повний оберт мотору. За замовчуванням - 200

rotation_distance: 39.5776  Кількість зубів на шківу * на крок ременя. Приклад: шків 20зубів, ремень - крок 2мм -> 20*2=40 ( я калібрував значення дистанцію, хоча не рекомендують)

endstop_pin: P1.29          # P1.28 for X-max  - #define X_MIN_PIN          P1_29   Як що кінцевик стоїть в МАХ - тоді треба замість Р1.29 вписати Р1.28

position_endstop: -13    #define X_MIN_POS -13

position_max: 270         #define X_BED_SIZE 270

position_min: -13           #це значення вказує на скільки каретка по Х може поїхати від позиції Х0 Для вісі ХУ це значення повинно дорівнювати position_endstop:

homing_speed: 80         #define XY_PROBE_SPEED 8000

 

Як ми бачимо, можно з легкістю налаштувати параметри маючи конфіг та карту пінов з Марліна. 

По аналогії налаштовується всі останні вісі та екструдер. Як що треба змінити напрямок обертання любого мотору треба змінити значення dir_pin: за допомогою ! перед вказаним піном, або його прибирання, якщо він там вже стоїть.

 

[heater_bed]
heater_pin: P2.5        #define HEATER_BED_PIN     P2_05
max_power: 0.75      #define MAX_BED_POWER 160 у мене стіл 12, а живлення 24в. Цей рядок обмежує напругу завдяки PWM Значення від 0.0 до 1.0
sensor_type: ATC Semitec 104GT-2
sensor_pin: P0.23     #define TEMP_BED_PIN       0
control: watermark  # bang-bang  Якщо треба ввімкнути PID  пишемо pid
min_temp: 0               #define HEATER_0_MINTEMP   5
max_temp: 150          #define BED_MAXTEMP      150

 

Більш детально зупинемось на блоці 

 

[mcu]

serial: /dev/serial/by-id/usb-Klipper_lpc1768_1BF00004852036AF755C695BC62000F5-if00

Тут нам треба вписати порт в який під'єднан наш принтер. Відкриваємо Putty та заходимо на наш мінікомп на якому стоїть Octoprint. Пишемо:

ls /dev/serial/by-id/*

image.thumb.png.74edff749952599002de9a80acaebf53.png

 

По цьому порту буде проходити з'єднання Кліппера з материнською платою. Як що ви змінюєте USB порт на мінікомпі треба знову зробити цю процедуру, та вписати новій, робочий порт.

Після внесення змін у конфіг обов'язково кнопку "SAVE"

image.thumb.png.4ab5efc9f34316bb4089ff18a53d0830.png

тоді всі зміни будуть збережені і перезагружен конфіг, а в деяких випадках ще перезапишеться прошивка принтера.

 

Вказуємо кінематику принтера та його основні налаштування швидкості. Я маю принтер з кінематикою Core_XY, для прусоподібних принтерів треба вказати kinematics: cartesian та зменьшити швидкості.

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30

Налаштування ТМС2130 SPI  прибираєми решітки, тоб-то розкоментуємо налаштування драйверів.

 

[tmc2130 stepper_x]
cs_pin: P1.17 
spi_software_miso_pin: P0.5
spi_software_mosi_pin: P4.28
spi_software_sclk_pin: P0.4

#diag1_pin: P1.29                      #пін #define SENSORLESS_HOMING 
microsteps: 16
run_current: 0.900                    #струм драйвера у мА
hold_current: 0.500
stealthchop_threshold: 250   # швидкість після якої драйвер перейде в режим SpreadCycle Якщо закоментувати цю строчку - драйвер буде постійно працювати у режимі SpreadCycle

Так само налаштовуємо останні драйвери.

 

Якщо використовуєте графічний дісплей 12864 - дописуємо цей блок:

 

[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2
#kill_pin: ^!EXP2_8

[output_pin beeper]
pin: EXP1_1

 

Так як я використовую управління вентилятором охолодження екструдеру, та обдуву електроніки - то я дописав це в конфіг, створивши два блоки:

 

# Additional fans

[heater_fan nozzle_fan]
pin: P1.26
max_power: 1 
shutdown_speed: 0
#cycle_time:
#hardware_pwm:
#kick_start_time:
heater: extruder
heater_temp: 50.0
            #температура при якій вимкнеться вентилятор обдуву радіатора екструдеру
fan_speed: 1.0

 

[controller_fan Case_controller_fan]
pin: P1.24
max_power: 1
shutdown_speed: 0
#cycle_time:
#hardware_pwm:
#kick_start_time:
idle_timeout: 5       
           #через 5 сек після вимкнення двигунів - вимкнути вентилятор обдуву електроніки.
idle_speed: 1.0
 

Зондом автовимірювання я використовую BFPtouch. Він зроблений на основі сервоприводу. Треба його прописати у налаштуваннях. Дуже дякую за допомогу в його налаштуванні пану@Deniss

 

# Servos
[servo bftouch]
pin: P1.28
maximum_servo_angle = 180
minimum_pulse_width = 0.0005
maximum_pulse_width = 0.0025

 

Для використання автокалібровки висоти, під час друку, створюємо наступні блоки. ОБОВ'ЯЗКОВО перед SET_SERVO поставити пробіл!!!

[probe]
pin: P1.25
x_offset: -11    #define NOZZLE_TO_PROBE_OFFSET { -11, 71, 0 }
y_offset: 70     #define NOZZLE_TO_PROBE_OFFSET { -11, 71, 0 }
#z_offset: 0.907
speed: 5.0
activate_gcode: 
 SET_SERVO SERVO=bftouch angle=200    #опустити щуп #define Z_SERVO_ANGLES {200,115}
 G4 P400                              #пауза
 SET_SERVO SERVO=bftouch WIDTH=0      #вимкнути керування сервою
deactivate_gcode: 
 SET_SERVO SERVO=bftouch angle=115    #підняти щуп #define Z_SERVO_ANGLES {200,115}
 G4 P100                              #пауза

 

Якщо не писати рядки з активацією та деактивацією - серва буде постійно пританцьовувати. 

Щоб зонд проводив заміри висоті столу при команді додому добавляємо

 

[safe_z_home]
home_xy_position: 146,34  #координати сопла при яких щуп зонду буде знаходитись в центрі столу
speed: 80
z_hop: 10                                  # Move up 10mm
z_hop_speed: 5
 

Налаштовуємо координати точок промірів зонду. Вказуємо координати сопла!!!  Вам треба врахувати offset_XY вашого зонду. Так, щоб зонд не віходив за межи столу.

 

[bed_tilt]
speed: 90
points:
    16,-3
    100,-3
    184,-3
    269,-3
    269,46
    184,46
    100,46
    16,46
    16,92
    100,92
    184,92
    269,92
    269,137
    184,137
    100,137
    16,137

Створюємо макрос команди G29

[gcode_macro G29]
gcode:
 BED_TILT_CALIBRATE
 G0 X-10 Y6 F4000

BED_TILT_CALIBRATE  - запустити вимірювання сітки столу

G0 X-10 Y6 F4000            - по закінчені встановити сопло у задані координати.

 

Вказуємо в блоці [stepper_z] що ми використовуємо занд автовимірювання.

endstop_pin: probe:z_virtual_endstop

Основні налаштування зроблені. Можно провіряти рух каретки. Треба відправити кожну вісь у дом. Як що каретка їде не в ту сторону - інвертуємо пін на відповідному моторі. Писав вище. Коли провірите всі мотори та нагрів екструдеру і столу - можно приступати до пробного друку.

Нижче закріплюю свій конфіг.

Config_EvA.cfg

 

Оновлений варіант конфігу під версію FIRMWARE_VERSION:v0.9.1-140-ge68cf08d

06.01.2021_LV8927-XY.txt

 

Оновлений варіант конфігу під версію FIRMWARE_VERSION:v0.10.0-130-g68c92991 

printer_EvA_20.12.2021.cfg

 

Оновлення1 - Зміни у розділі  [probe]

Оновлення2 - Змінений конфіг під нову версію

Оновлення3 - Перевірка механіки

Оновлення4 - Зміна версії на 0.10.ххх

 

 

 

 

 

 

 

Посилання на повідомлення
Поділитися на інших сайтах
  • 4 тижні потому...

Доповнення 2  Babystepping

 

Klipper не розуміє деякі команди Марлін. Наприклад той самий бебистепінг М290 Тому є варіант навчити його цьому

  • Використовуючи плагін до Октопринту "Castom controll commands" Створюємо кнопки з текстом SET_GCODE_OFFSET Z_ADJUST=0.02  Ця команда підніме сопло при друку на 0,02 мм Як що додати мінус тоді сопло опуститься. У попередньому допису є зображення як виглядають кнопки у октопринті. Яку відстань прописати в команді то на Ваш розсуд. Найбільш ходові параметри, на мою думку це 0,05 мм та 0,1 мм

 

 

Посилання на повідомлення
Поділитися на інших сайтах

".....  Як що ви змінюєте USB порт на мінікомпі треба знову зробити цю процедуру, та вписати новій, робочий порт....."   А вот сейчас перебросил в другой УСБ порт все работает оси двигаются и хоумятся.... Строку Serial: не менял... 

Посилання на повідомлення
Поділитися на інших сайтах

@SnegOK значит очень повезло, но идентификатор усб меняется при переключении в другой порт. После ребута может не завестись

Посилання на повідомлення
Поділитися на інших сайтах
41 минуту назад, KomAndr сказал:

@SnegOK значит очень повезло, но идентификатор усб меняется при переключении в другой порт. После ребута может не завестись

Странно, все выключил, поменял местами порт камеры и рампса, завел по новой РАБОТАЕТ. Я ж и говорю. Вот и сам понимаю, что прописан в мсу порт УСБ0 Но он у меня сломался (не плотно сидит наверное нем пластиковый язычек разьема треснул ) Поэтому и поменял. Точно работает.  Тяжело разобраться когда нет глубоких знаний. Вот тоже интересно первоначально настроил окту и клипер начал настраивать... Все получалось. Перезагружался раз 10.... Все норм И вдруг невозможно соединится  с принтером... пол дня разбирался... На каком то англоязычном форуме случайно увидел, что бодрейт  можно убрать Убрал... Завелось... Но ведь прошивался точно с прошитой этой скоростью и все работало И с перезагрузкой.... 

Посилання на повідомлення
Поділитися на інших сайтах
  • KomAndr закріпив темі

Приєднуйтесь до обговорення

Ви можете опублікувати повідомлення зараз, а зареєструватися пізніше. Якщо у вас є акаунт, увійдіть в нього для написання від свого імені.

Гість
Відповісти в тему...

×   Вставлено в вигляді відформатованого тексту.   Вставити у вигляді звичайного тексту

  Дозволено не більше 75 емодзі.

×   Ваше посилання було автоматично вбудоване.   Відобразити як посилання

×   Ваш попередній контент був відновлений.   Очистити редактор

×   Ви не можете вставити зображення безпосередньо. Завантажте або вставте зображення за посиланням.

×
×
  • Створити...