Klipper TMC 驱动自动调谐

2023-12-04 0 176

Klipper TMC 驱动自动调谐

Klipper 扩展,用于自动配置和调整 TMC 驱动程序。

此扩展为大多数 TMC 步进电机驱动器寄存器计算良好的值,给定电机的数据表信息和用户选择的调谐目标。

特别是,它默认在Z轴电机和挤出机上启用StealthChop,在可能的情况下启用CoolStep,并在非常高的速度下正确切换到全步操作。在可能有多种模式的情况下,它应该选择可用的最低功耗和最安静的模式,但要遵守无传感器归位的限制(不允许某些组合)。

现状

  • 对 TMC2209、TMC2240 和 TMC5160 的官方支持。
  • 对 TMC2130、TMC2208 和 TMC2660 的支持可能有效,但完全未经测试。
  • 众所周知,启用自动调谐的无传感器归位适用于TMC2209、TMC2240和TMC5160,前提是您足够快地返回(对于使用无传感器归位的轴,homing_speed在数值上应大于 rotation_distance)。与往常一样,首次尝试无传感器归位时要非常小心。
  • 对电机使用自动调谐可以让电机运行温度更低,消耗更少的功率,从而提高效率。但是,需要注意的是,此过程也可能导致 TMC 驱动程序运行得更热,因此必须实施适当的冷却措施。

安装

要安装此插件,请使用以下命令通过 SSH 运行安装脚本。此脚本会将此 GitHub 存储库下载到您的 RaspberryPi 主目录,并将 Klipper extra 文件夹中的文件符号链接。

wget -O - https://raw.githubusercontent.com/andrewmcgr/klipper_tmc_autotune/main/install.sh | bash

然后,将以下内容添加到您的以启用自动更新:moonraker.conf

[update_manager klipper_tmc_autotune]
type: git_repo
channel: dev
path: ~/klipper_tmc_autotune
origin: https://github.com/andrewmcgr/klipper_tmc_autotune.git
managed_services: klipper
primary_branch: main
install_script: install.sh

主要配置

将以下内容添加到您的(根据需要删除或添加任何部分)以启用 TMC 驱动器和电机的自动调整并重新启动 Klipper:printer.cfg

[autotune_tmc stepper_x]
motor: ldo-42sth48-2004mah
[autotune_tmc stepper_y]
motor: ldo-42sth48-2004mah

[autotune_tmc stepper_z]
motor: ldo-42sth48-2004ac
[autotune_tmc stepper_z1]
motor: ldo-42sth48-2004ac
[autotune_tmc stepper_z2]
motor: ldo-42sth48-2004ac
[autotune_tmc stepper_z3]
motor: ldo-42sth48-2004ac

[autotune_tmc extruder]
motor: ldo-36sth20-1004ahg

所有部分都接受其他参数来调整每个电机的自动调谐过程的行为:[autotune_tmc]

参数默认值范围描述
电机查看数据库此参数用于检索连接到TMC驱动器的电机的物理常数
tuning_goalautoautosilentperformanceautoswitch参数选择如何使用StealthChop和定制参数微调TMC驱动程序。通过选择,它将自动应用于X轴和Y轴以及Z轴和挤出机。是一种高度实验性的选择,可在需要时实时在和模式之间进行动态切换。然而,目前,这种转变可能会带来麻烦,导致不必要的行为、噪声干扰和步骤丢失。因此,建议避免使用“自动开关”,直到其确定的问题得到完全解决自动性能静音自动开关静音性能
extra_hysteresis00 到 8额外的磁滞,以减少电机在中低速度下的嗡嗡声和振动,并保持适当的微步精度。警告:只使用必要的量,因为过高的值会导致更多的斩波器噪音和电机功耗(即更多的热量)
tbl20 到 3比较器空白时间。此时间必须安全地涵盖TMC切换事件。对于大多数典型应用,1或2(默认值)的值应该是可以的,但更高的电容性负载可能需要将其设置为3。此外,较低的值允许StealthChop调节到较低的线圈电流值
toff00 到 15设置斩波器循环的慢速衰减时间(关闭时间)。此设置还限制了斩波器的最大频率。当设置为0时,该值由该自动调谐算法自动计算。最高电机速度有时受益于强制至1或2以及设置为1或0的不足
sgt1-64 至 63TMC5160、TMC2240、TMC2130、TMC2660的无传感器归位阈值。如果使用无传感器归位,则适当设置值(较低的值意味着更灵敏的检测和更容易的失速)
sg4_thrs100 到 255TMC2209和TMC2260的无传感器归位阈值。如果使用无传感器归位,则适当设置值(值越高意味着检测越灵敏,失速越容易)。此参数也用作TMC2209、TMC2240和TMC5160的CoolStep电流调节阈值。默认值80通常是CoolStep的良好起点(在TMC2209的情况下,调谐的无传感器归位值也将正确工作)
电压240.0 至 60.0用于为该电机和步进驱动器供电的电压
overvoltage_vth0.0 至 60.0设置TMC2240和TMC5160内置的可选过电压缓冲器。BTT SB2240刀头板的用户应通过读取实际刀头电压并添加0.8V将其用于挤出机

注意:

此自动调谐扩展可与归位覆盖一起使用,以实现无传感器归位。但是,请记住在自动调谐部分中专门调整 and/or 值。尝试通过 gcode 进行这些更改不会导致错误消息,但不会产生任何影响,因为自动调整算法只会覆盖它们。 此外,请检查步进驱动器板的引脚排列:BTT TMC 2240 板不需要配置,但 MKS TMC 2240 踏步杆需要 而不是 。可能还有其他不寻常的驱动程序。sg4_thrssgtdiag1_pindiag0_pindiag0_pindiag1_pin

此外,如果需要,您可以在打印机运行时使用 Klipper 控制台中的宏随时随地调整所有内容。所有以前的参数都可用:AUTOTUNE_TMC

AUTOTUNE_TMC STEPPER=<name> [PARAMETER=<value>]

用户自定义电机

电机名称及其物理常数位于 motor_database.cfg 文件中,该文件由脚本自动加载。如果未列出电机,请随意通过添加此部分在您自己的配置文件中添加其正确定义(也欢迎其他电机的 PR)。您通常可以在他们的数据表中找到此信息,但要特别注意单位!printer.cfg

[motor_constants my_custom_motor]
# Coil resistance, Ohms
resistance: 0.00
# Coil inductance, Henries
inductance: 0.00
# Holding torque, Nm
holding_torque: 0.00
# Nominal rated current, Amps
max_current: 0.00
# Steps per revolution (1.8deg motors use 200, 0.9deg motors use 400)
steps_per_revolution: 200

删除此 Klipper 扩展

从配置中注释掉所有部分并重新启动 Klipper 将完全停用该插件。因此,您可以根据需要启用/禁用它。[autotune_tmc xxxx]

如果要完全卸载它,请从文件中删除 moonraker 更新管理器部分,删除 Pi 上的文件夹并重新启动 Klipper 和 Moonraker。moonraker.conf~/klipper_tmc_autotune

github地址

https://github.com/andrewmcgr/klipper_tmc_autotune
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

迪米特 3D打印机 Klipper TMC 驱动自动调谐 https://www.dimit.cn/3ds/printer/id-46806.html

上一篇: 电机数据
常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务