descript

— 哔哩哔哩-念叨菌 收集整理

新旧版本更新交叉中,不一样的地方意会一下………

Github超时的小伙伴可以替换为下面的链接:

https://gitee.com/songerman/ERCF_v2.git

https://gitee.com/songerman/Happy-Hare.git

https://gitee.com/songerman/klipper-led_effect.git

https://gitee.com/songerman/KlipperScreen-Happy-Hare-Edition.git

led_effect

1、软件安装

1.1 安装快乐兔

ERCF v2 使⽤ Happy Hare 软件来控制 Klipper 下的 MMU 功能。

从 github 存储库下载并运⾏安装程序。

注意:如果您有⾮标准 Klipper 安装,请注意’-c’ 和 ‘-k’ 选项

这里 “-i” 会启动一个交互式的设置

cd ~

git clone https://github.com/moggieuk/Happy-Hare.git

cd Happy-Hare

./install.sh -i

1.2 设置要点

确保选择 ERCF v2.0正确的 MCU 主板(推荐 BTT MMB)

如果您不确定选项,请在此阶段拒绝它们 – 您可以稍后配置它们

descript

1.3 完整安装过程记录

# 完整安装过程及报错解决参考B站视频

https://www.bilibili.com/video/BV1JK4y1B7R4/?vd_source=7023a58ee5717a5b37a78a5c85776f9c

descript

descript

descript

descript

1.4 获取串口ID或者Can UUID

串口的话用下面的命令

ls /dev/serial/by-id

can的话用下面的命令

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

1.5 多色专用klipperscreen安装

descript

# 项目地址:

https://github.com/moggieuk/KlipperScreen-Happy-Hare-Edition

# 安装命令

cd ~

mv KlipperScreen KlipperScreen.orig

git clone https://github.com/moggieuk/KlipperScreen-Happy-Hare-Edition.git KlipperScreen

cd ~/KlipperScreen/happy_hare

./install_ks.sh -g <通道数>

descript

1.6 快乐兔设置指南

创建了一个ERCF V2 的网页来指导您进行完整的硬件配置和设置

基本步骤是:

  • 有效的klipper配置和控制

● 运行校准例程序列

● 微调选项

网址:https://github.com/moggieuk/Happy-Hare/tree/main/doc/ercf_v2.md

1.7 基本的MMU命令

快乐兔拥有丰富的命令集和大量的文档,但这里有一个快速的基本命令参考

descript

Happy Hare MMU 命令:(使用 MMU_HELP MACROS=1 TESTING=1 获取完整命令集)

MMU:启用/禁用功能和重置状态

MMU_CHANGE_TOOL :执行工具交换

MMU_CHECK_GATE :自动检查门、停放灯丝并标记可用性

MMU_STATS :转储(并可选择重置)MMU 统计信息

MMU_EJECT :弹出耗材并将其停放在 MMU 中,或者选择仅卸载挤出机 (EXTRUDER_ONLY=1)

MMU_ENCODER :显示编码器位置或暂时启用/禁用编码器中的检测逻辑

MMU_ENDLESS_SPOOL :显示TTG图或重新定义EndlessSpool组

MMU_FORM_TIP :用于调用独立尖端形成功能的便捷宏

MMU_HELP :显示完整的MMU命令和功能集

MMU_HOME :MMU 选择器的主页

MMU_LED :管理可选 MMU LED 的操作模式

MMU_LOAD :在当前工具/浇口上加载灯丝,或者选择仅加载挤出机以供旁路或恢复使用(EXTUDER_ONLY=1)

MMU_MOTORS_OFF :关闭两个 MMU 电机

MMU_PAUSE :暂停当前打印并锁定MMU操作

MMU_PRELOAD :在指定或当前门预加载灯丝

MMU_RECOVER :手动干预/移动后恢复灯丝位置并设置MMU状态

MMU_REMAP_TTG :显示 TTG 地图或将工具重新映射到特定门并设置门可用性

MMU_RESET :忘记持久状态并重新初始化默认值

MMU_SELECT :选择指定的逻辑工具(如下TTG图)或物理门

MMU_SELECT_BYPASS :选择灯丝旁路

MMU_SERVO : 将MMU伺服移动到指定位置或角度

MMU_GATE_MAP :显示或定义每个门上灯丝的类型和颜色

MMU_STATUS :当前 MMU 状态和重要配置的完整转储

MMU_SYNC_GEAR_MOTOR :将 MMU 齿轮电机同步到挤出机步进器

MMU_TOOL_OVERRIDES :显示、设置或清除工具速度和挤压系数(M220 和 M221)

MMU_UNLOCK :在恢复之前唤醒 MMU 以恢复温度和超时

1.8 必趣MMB主板刷机以及针脚定义

刷机仅针对canboot+can连接的klipper,usb连接参考厂家说明书

刷入katapult(canboot)

git clone https://github.com/Arksine/katapult

cd katapult

make clean

make menuconfig

make

descript

descript

按ESC退出,Y保存

descript

插上typec供电跳线,按住Boot按钮,使用typec线连接到上位机

输入lsusb查询DFU设备

descript

descript

# 刷机命令:需要替换后面的ID 0483:df11

sudo dfu-util -a 0 -D ~/katapult/out/canboot.bin –dfuse-address 0x08000000:force:mass-erase:leave -d 0483:df11

# 刷机后查看can uuid

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

descript

刷入klipper

使用canboot刷klipper固件之前请停止klipper服务

# 停止

sudo systemctl stop klipper

# 刷机后启用

sudo systemctl start klipper

cd ~/klipper

make clean

make menuconfig

make

descript

descript

按ESC退出,Y保存

descript

descript

进入katapult使用canboot刷klipper

cd ~/katapult/scripts

# 后面的uuid替换为前面查询到的

python3 flashtool.py -i can0 -f ~/klipper/out/klipper.bin -u 0925929d3a0e

# 检查是否刷成功

./flashtool.py -i can0 -q

descript

刷机完成

拔掉usb,拔掉usb跳线,插上120欧的can跳线,使用can线连接到电气仓

descript

descript

将uuid填写到mmu.cfg

并使用下面的替换mmu.cfg中的对应代码(源代码pin有错误,后期应该会改正)

descript

[board_pins mmu]

mcu: mmu

aliases:

MMU_GEAR_UART=PA10,

MMU_GEAR_STEP=PB15,

MMU_GEAR_DIR=PB14,

MMU_GEAR_ENABLE=PA8,

MMU_GEAR_DIAG=PA3,

MMU_SEL_UART=PC7,

MMU_SEL_STEP=PD2,

MMU_SEL_DIR=PB13,

MMU_SEL_ENABLE=PD1,

MMU_SEL_DIAG=PA4,

MMU_SEL_ENDSTOP=PB2,

MMU_SERVO=PA0,

MMU_ENCODER=PA1,

MMU_GATE_SENSOR=,

MMU_NEOPIXEL=PA2,

MMU_PRE_GATE_0=PA3,

MMU_PRE_GATE_1=PA4,

MMU_PRE_GATE_2=PB9,

MMU_PRE_GATE_3=PB8,

MMU_PRE_GATE_4=PC15,

MMU_PRE_GATE_5=PC13,

MMU_PRE_GATE_6=PC14,

MMU_PRE_GATE_7=PB12,

MMU_PRE_GATE_8=,

MMU_PRE_GATE_9=,

MMU_PRE_GATE_10=,

MMU_PRE_GATE_11=,

1.9 FLy 1.2主板接线及配置针脚

descript

待更新

1.10快乐兔升级

如果您找到此页面,您可能会遇到类似以下内容的启动消息:

Looks like you upgraded (v2.2 -> v2.3)?

Happy Hare minor version has changed which requires you to re-run

‘./install.sh’ to update configuration files and klipper modules.

More details: https://github.com/moggieuk/Happy-Hare/doc/upgrade.md

在 Mainsail & Fluidd UI 中看到的 Happy Hare 版本的形式为:Major。Minor。Point- Patch. 各个数字的含义如下:

  • Major- 功能发生重大变化,需要完全重新安装
  • Minor- 进行了重大更改,需要更新配置文件或安装新的 Klipper 模块。必须运行“./install.sh”并随后检查配置
  • Point- 可能会对配置文件进行微小更改的增强功能。如果您需要重新运行“./install.sh”,系统会提示您
  • Patch- 例行更新以解决除了 Klipper 重启之外不需要任何特殊处理的错误

最常见的是Minor更改并修复,您只需登录到 rpi 并运行以下命令:

cd ~/Happy-Hare

./install.sh

一旦运行 klipper 应该会启动而不会出现升级警告。

descript

硬件配置验证

# 官方相关页面:https://github.com/moggieuk/Happy-Hare/blob/main/doc/hardware_config.md

Happy Hare 的 Klipper 配置文件是模块化的,可以在 Klipper 配置目录的布局中找到:

mmu/

base/

mmu.cfg # 主配置文件,配置muc的id和pin脚

mmu_cut_tip.cfg # 切刀的相关配置

mmu_form_tip.cfg # 尖端成型的相关配置

mmu_hardware.cfg # mmu硬件参数的设定

mmu_software.cfg # 软件用到的一些宏,基本不用动

mmu_sequence.cfg # 加载卸载序列用到的一些宏,基本不用动

mmu_parameters.cfg # mmu软件配置的一些参数在这里

optional/

mmu_menu.cfg

mmu_ercf_compat.cfg

client_macros.cfg

mmu_vars.cfg # 校准的数据保存在这里

做下面的验证之前先保证pin脚已经都初步修改完了,包括兔子主板和工具头上的传感器。

2.1 检查限位器和传感器

验证必要的限位器是否正常工作并且极性是否正确。推荐的程序是:

MMU_MOTORS_OFF

# 从 ERCF 和挤出机中取出灯丝,将选择器移至行程中心

QUERY_ENDSTOPS

# 或者使用可视化界面操作【推荐】

descript

然后手动按住选择器微动开关并重新运行QUERY_ENDSTOPS。

验证您可以mmu_sel_home:TRIGGERED在列表中看到。

如果您有工具头传感器,请将细丝经过开关送入挤出机并重新运行QUERY_ENDSTOPS。

验证您可以toolhead:TRIGGERED在列表中看到。

如果其中任何一个都没有改变状态,则分配给终点挡块的引脚不正确。如果状态反转(即按下时 enstop 转换为),则在选择器终点止动块或工具头传感器块中open添加/删除!相应终点止动销上的。[stepper_mmu_selector][filament_switch_sensor toolhead_sensor]

2.2 检查电机运动和方向

a.选料电机

# 运行这个命令关闭电机,然后将滑车移动到中间位置

MMU_MOTORS_OFF

# 运行这个命令进行滑车的归为[去左边找限位开关]

MMU_HOME

  • 如果滑车不移动或运行不正常,交换20mm高度那个电机的中间两根线[分组错误]
  • 如果滑车移动方向不正确,去mmu_hardware.cfg文件中找到[stepper_mmu_selector]:字段,在dir_pin后面的引脚前面增删叹号
b.送料电机

MMU_MOTORS_OFF

# 从mmu上移除耗材

MMU_TEST_MOVE MOVE=100 SPEED=50

# 确认送料电机是送料方向

MMU_TEST_MOVE MOVE=-100 SPEED=50

# 确认送料电机是抽回料方向

方向确认和修改参考上面的选料电机

2.3 检查编码器

如果有的话操作

检查编码器的位置

MMU_ENCODER

Encoder position: 23.4

插入一些灯丝(从两侧)并前后拉动。您应该看到 LED 闪烁。重新运行MMU_ENCODER并验证显示的位置已增加(请注意,编码器无法识别方向,因此读数始终会增加)

如果编码器位置没有改变,请验证是否encoder_pin正确。它是否有!(倒置)并不重要,但它可能需要一个^(上拉电阻)才能发挥作用。

2.4 检查其他传感器

有过有的话操作【在2.1中一起操作就好了】

其他传感器通常是灯丝传感器并作用于开关。检查这些的最简单方法是为每个传感器/开关运行类似于以下内容的操作。

QUERY_FILAMENT_SENSOR SENSOR=mmu_gate_sensor^_^

Filament Sensor mmu_gate_sensor: filament not detected

用一根灯丝激活传感器并再次运行:

QUERY_FILAMENT_SENSOR SENSOR=mmu_gate_sensor

Filament Sensor mmu_gate_sensor: filament detected

2.5 检查舵机

运行这个简单的命令。舵机应在配置的“向上”和“向下”位置附近摆动。校准的问题在下一节解决。

MMU_TEST_BUZZ_MOTOR MOTOR=servo

也可以用下面的命令

# 下压操作

MMU_SERVO POS=down

# 抬起操作

MMU_SERVO POS=up

补充:LED灯光顺序错误

如果LED发亮的顺序和插入耗材的通道不对应,或者或者乱七八糟,需要修改mmu_hardware.cfg 中最下面的LED部分

[neopixel mmu_leds]

pin: mmu:MMU_NEOPIXEL^_^

chain_count: 9 # 门的数量 x1 or x2 + 1 (如果你有状态LED)

color_order: GRBW # 设置neopixel灯珠的规格顺序

我这里没有设置状态LED,所以chain_count应该是8

color_order如果购买的购买的是RGB的,更改为RGB [这里是有顺序的],可以根据后期的颜色对错更改

修改上面后为:

[neopixel mmu_leds]

pin: mmu:MMU_NEOPIXEL

chain_count: 8 # 门的数量 x1 or x2 + 1 (如果你有状态LED)

color_order: RGB # 设置neopixel灯珠的规格顺序

[mmu_leds]

num_gates: 8

led_strip: neopixel:mmu_leds

exit_range: 1-8

#entry_range: 9-{mmu_num_leds}

status_index: 9

frame_rate: 24

没有状态LED的话删掉默认配置的status_index,修改后如下:

[mmu_leds]

num_gates: 8

led_strip: neopixel:mmu_leds

exit_range: 1-8

#entry_range: 9-{mmu_num_leds}

status_index: 9

frame_rate: 24

3、调试

第一次校准时必须按照规定的顺序进行。完成后,您可以重新校准特定步骤,但请记住,一些校准更改会级联。例如,校准齿轮后,您必须重新校准编码器、鲍登以及可能的所有门。一般来说,您可以随时重新校准选择器(步骤 1)和门(步骤 5),但齿轮、编码器和鲍登必须始终按该顺序完成!

3.1 校准滑车偏移

通过运行 MMU_MOTORS_OFF 确保 MMU 电机关闭,并从#0 门移除灯丝——您可能需要运行MMU_SERVO POS=up[抬起舵机]以释放灯丝。然后通过选择器重新插入和移除灯丝,以确保#0 门与选择器正确对齐。小心地移动选择器,同时在门内移动灯丝。尝试评估灯丝在门的中心位置,并将选择器留在该位置。然后运行:

MMU_CALIBRATE_SELECTOR

这个命令校准第0个门之后会根据兔子多色的结构,通过计算得到其它门的校准位置,但是因为安装问题,可能通道之间有间隙,可以使用下面的命令分别校准所有门。

MMU_CALIBRATE_SELECTOR GATE= # 后面跟门的编号

验证:在此步骤结束时,您应该能够选择 MMU 上的任何工具/门。例如,尝试运行MMU_HOME TOOL=3以重新定位并选择工具/门 #3

3.2 校准舵机

先要安装上舵机的臂

快乐兔在安装过程中理论上设置了良好的舵机位置,但它们实际上应该进行校准。大多数 MMU 需要精确的伺服运动。为此,您需要执行与此类似的过程,以更新和记录三个符号位置的角度。

MMU_SERVO POS=up

# Assume the position isn’t quite right

MMU_SERVO

Current servo angle: 125, Positions: {‘down’: 110, ‘up’: 125, ‘move’: 110}

# Without arguments you can view the current angles

MMU_SERVO ANGLE=128

# Tweak until you are happy with position

MMU_SERVO POS=up SAVE=1

# Save the current angle (128) for the “up” position

对三个位置重复:

  • up = 选择工具并且允许灯丝自由移动通过浇口
  • down = 抓住灯丝
  • move = 准备好舵机以进行选择器移动(可选 – 默认为向上)

提醒:如果您无法获得所需的伺服角度,您可能需要需要“更改样条线”或编辑伺服配置mmu_hardware.cfg

3.3 校准齿轮步进器

在此步骤中,您只需确保当齿轮步进器被告知移动 100 毫米的灯丝时,它确实移动了 100 毫米。这类似于您设置挤出机旋转距离时所做的操作,尽管在这种情况下不需要重新启动 Klipper!将选择器放置在 #0 门前面(MMU_SELECT GATE=0如果您已完成上面的选择器校准,则可以使用)并将一些灯丝穿过门,使其刚好从选择器出口处伸出。运行以下命令以确保灯丝被夹紧:

MMU_SERVO POS=down

接下来拆下 Bowden 管,并将灯丝切割成与选择器上的 ECAS 连接器齐平(这是 ERCF 设计上的编码器)。运行此命令尝试移动 100mm 的灯丝:

MMU_TEST_MOVE move=100

拿出你的尺子,仔细测量发射灯丝的长度。将尺子靠近鲍登并轻轻拉直灯丝以获得准确的测量结果。接下来运行指定您的实际测量值(本例中使用 102.5):

MMU_CALIBRATE_GEAR MEASURED=102.5

Gear stepper `rotation_distance` calculated to be 23.117387

Gear calibration has been saved

笔记

MMU_TEST_MOVE MOVE=200您还可以使用和等工具来测量不同的长度,MMU_CALIBRATE_GEAR LENGTH=200 MEASURED=205.25例如 200 毫米长度。

验证:如果您想测试,请再次剪断灯丝,使其与 ECAS 连接器齐平,然后运行MMU_TEST_MOVE。这次应该正好移动 100mm。

3.4 校准编码器

下一步是校准编码器,使其准确测量距离。将 Bowden 重新安装到选择器/编码器上(您可以根据需要将短长度的灯丝插入管中以节省时间)。或者,在开始之前确保有一些灯丝通过门#0。现在运行:

MMU_CALIBRATE_ENCODER

您将看到类似于以下内容的输出:

+ counts = 368

– counts = 368

+ counts = 369

– counts = 369

+ counts = 369

– counts = 369

Load direction: mean=368.67 stdev=0.58 min=368 max=369 range=1

Unload direction: mean=368.67 stdev=0.58 min=368 max=369 range=1

Before calibration measured length = 394.47

Resulting resolution of the encoder = 1.084991

After calibration measured length = 400.00

Encoder calibration has been saved for MMU ERCF v1.1sb

笔记

(i) 使用新鲜的细丝 – 之前通过挤出机齿轮时形成的凹槽可能会导致轻微的计数差异。

(ii) 确保选择器与门对齐。如果它偏向一侧,您几乎肯定会在向前和向后方向上得到不同的计数。

(iii) 您希望每次尝试的计数相同或非常相似,但不要担心 +/-2 计数。使用 ERCF v2.0、弹簧伺服和新的 Binky 编码器设计,您应该接近完美;-)

(iv) 您可以运行此命令(像所有校准命令一样),而无需通过添加标志来保存结果SAVE=0。

3.5 校准鲍登长度

可选择使用前的最后一次校准!您可以在此处校准从 MMU 浇口到挤出机入口的 Bowden 长度。这很重要,因为它允许 MMU 在这个距离上快速移动灯丝,因为到达加载序列的更复杂的部分。为了加快此过程,您需要向校准例程提示挤出机距离多远(但不超过该距离)。一个好的经验法则是手动测量从选择器出口到挤出机入口的距离。从该距离减去 40-50mm。我的系统上的近似距离为 650 毫米。如果你有一个编码器,你可以运行自动方法:

MMU_CALIBRATE_BOWDEN BOWDEN_LENGTH=650

Homing MMU…

Tool T0 enabled

Calibrating bowden length from reference Gate #0

Tool T0 enabled

Heating extruder to minimum temp (200.0)

Finding extruder gear position (try #1 of 3)…

Run Current: 0.21A Hold Current: 0.09A

Run Current: 0.49A Hold Current: 0.09A

Pass #1: Filament homed to extruder, encoder measured 683.5mm, filament sprung back 3.2mm

– Bowden calibration based on this pass is 683.5

Finding extruder gear position (try #2 of 3)…

Run Current: 0.21A Hold Current: 0.09A

Run Current: 0.49A Hold Current: 0.09A

Pass #2: Filament homed to extruder, encoder measured 682.7mm, filament sprung back 3.2mm

– Bowden calibration based on this pass is 682.7

Finding extruder gear position (try #3 of 3)…

Run Current: 0.21A Hold Current: 0.09A

Run Current: 0.49A Hold Current: 0.09A

Pass #3: Filament homed to extruder, encoder measured 683.9mm, filament sprung back 3.2mm

– Bowden calibration based on this pass is 683.4

Recommended calibration reference is 680.2mm. Clog detection length: 16.8mm

Bowden calibration and clog detection length have been saved

如果您没有编码器或在挤出机上遇到碰撞检测问题,您可以手动运行。为此,选择门 0,手动将细丝推入挤出机齿轮。使用以下选项运行MANUAL=1:

MMU_CALIBRATE_BOWDEN BOWDEN_LENGTH=650 MANUAL=1

这会将家反转到大门并使用 Klipper 的步进运动测量。这是像 Tradrack 这样没有编码器但有mmu_gate传感器的 MMU 设计的方法。

笔记

(i) 此校 准假设选择器已首先校准。

(ii) 这可能会导致挤出机发热。这是为了确保挤出机电机通电并能抵抗与耗材碰撞的冲击力

3.6 校准门

此步骤允许校准门之间的细微差异。对于像 Tradrack MMU 这样不能有变化的设计来说,它不是必需的(或有用的),但对于像 ERCF 这样在门之间可以有变化的设计很有用。即使使用 ERCF,这也是可选的,因为如果不运行,门将在自动使用时自行调整!auto_calibrate_gates也就是说,用一根灯丝测试件来解决这个问题是有益的,但这样做也可以:(i) 消除设置in的需要mmu_parameters.cfg,(ii) 如果门之间存在很大的差异,则有必要 – 例如,如果适用于不同门的 BMG 齿轮来自不同的供应商。

只需确保灯丝在您想要校准的门处可用 – 您可以握住一块(500mm)松散的灯丝并运行:

MMU_CALIBRATE_GATES gate=1

您将看到类似于以下内容的输出:

Tool T1 enabled

Calibrating gate 1 over 400.0mm…

+ measured = 404.4mm

– measured = 404.4mm

+ measured = 404.4mm

– measured = 404.4mm

+ measured = 405.5mm

– measured = 405.5mm

Load direction: mean=404.7 stdev=0.63 min=404.4 max=405.5 range=1.1

Unload direction: mean=404.7 stdev=0.63 min=404.4 max=405.5 range=1.1

Calibration move of 6x 400.0mm, average encoder measurement: 404.7mm – Ratio is 1.011872

(Gate #1 rotation_distance: 22.941324 vs Gate #0: 22.672165)

Calibration for gate #1 has been saved

笔记

您还可以快速穿过所有门(甚至通过松散的灯丝门到门)MMU_CALIBRATE_GATES ALL=1

重要的

所有校准步骤都可以在“检查/测试”模式下运行。只需添加SAVE=0到命令中即可运行校准,但不会保存结果。这对于验证非常有用。

最后,请记住,所有校准的结果都存储在其中,mmu_vars.cfg因此您还可以直接查看/编辑该文件。

4、参数配置[重要必须]

4.1 klipper 配置⽂件修改

除了快乐兔创建的”[include]”条⽬之外,您还必须对 klipper 配置进⾏⼀些更改才能⽀持 MMU:

将下面的添加到您的“[extruder]”部分:

[extruder]

max_extrude_cross_section: 50 ;MMU需要这个

max_extrude_only_distance: 200 ;MMU需要这个

确保“[virtual_sdcard]”部分存在,类似于:

[virtual_sdcard]

path: ~/printer_data/gcodes

on_error_gcode: CANCEL_PRINT

4.2 切刀和尖端成型

处理细丝尖端创建的基本方法有以下三种:

1. 让切片软件在打印时做,相当于嵌入gcode(快乐兔 会在不打印时做)

2. 永远让快乐兔子去做

3. 使用 ERF Filametrix 等 切刀 来完全避免“尖端调整”【最推荐】

如果不进行任何更改,上述选项 1 将成为默认值。 但是建议使用选项 2 或 3。

对于选择上述选项 2 和 3的小伙伴,需要禁用切片软件中的尖端成形。 这在每个切片软件中都不同,但通常您需要将这些设置归零。

descript

注意:SuperSlicer 中的一个错误要求一个设置接近零但不为零!

要启用选项 2即全部让快乐兔处理,请确保在 快乐兔的 ‘mmu_parameters.cfg’ 配置文件中设置以下两个参数

force_form_tip_standalone:1

form_tip_macro:_MMU_FORM_TIP_STANDALONE # 调用快乐兔尖端成型的宏

并且需要去mmu_form_tip.cfg中修改相关参数。

要启用选项 3,即使用切刀[强烈推荐],按下面修改:

force_form_tip_standalone:1

form_tip_macro:_MMU_CUT_TIP # 调用快乐兔切刀的宏

并且需要去mmu_cut_tip.cfg中修改相关参数。

主要是切刀的动作的XY坐标,详细去看配置文件的说明。

补充:切片刀尖成型(不推荐的选项,基本不用看了)

对于选项 1,您必须同时在 切片软件和 快乐兔 固件中设置尖端成形[快乐兔的用于不打印时使用]。

首先确保在 快乐兔 ‘mmu_parameters.cfg’ 中设置以下两个参数:

force_form_tip_standalone: 0

form_tip_macro:_MMU_FORM_TIP_STANDALONE

然后,请编辑与此类似的切片软件设置页面,但设置的数值要适合您的具体工具头:

descript

descript

请参阅切片软件文档以设置这些值

4.3 工具头装卸

descript

descript

5、切片软件配置

本指南假设您使⽤的是 SuperSlicer,但它很可能与 PrusaSlicer 的⼯作⽅式相同。将仅讨论对默认(即单个挤出机和单个⼯具)配置⽂件的更改。

1、调整切片软件到专家模式

descript

2、在打印机设置选项卡的常规部分中,激活“单挤出机多材料”选项并设置正确的“挤出机”数量(即 ERCF 上的通道数)

descript

不同的挤出机将出现在菜单列表中

descript

对于列表中的每个挤出机,确保“⼯具名称”留空

descript

  1. ⾃定义 G 代码:⼯具更换

将“换⼑ G 代码”设置为“T[next_extruder]”,这将使 Gcode ⽣成“T0”G 代码以请求⼯具 0 换⼑(“T1”表⽰⼯具 1 等)

T[next_extruder]

descript

4、全局设置

下⾯显⽰的开始和结束 gcode 代码专为使⽤ ERCF 作为耗材管理解决⽅案⽽设计,即使对于单⾊打印也是如此。这意味着正确的灯丝将在打印开始时加载(在 print_start 宏完成后),并且灯丝将在打印结束时卸载。因此,当您的打印机不打印时,⼯具头中不会有细丝,并且整个 print_start 的gcode代码 将在没有加载任何耗材的情况下执⾏,因此请相应地调整它(例如,如果其中有任何清除序列,那将是⽆⽤的)

descript

⾃定义 G 代码:print_start

默认情况下,切⽚器不会加载打印的第⼀个⼯具,因此您可以选择始终在开始打印之前加载第⼀个⼯具,否则您需要将初始⼯具传递给打印启动宏。此⽰例还设置了另⼀个变量,其中包含打印中使⽤的⼯具列表(有关⽤法,请参阅 START_PRINT gcode):

descript

[gcode_macro START_PRINT]

description: Called when starting print gcode:

{% set REFERENCED_TOOLS = params.REFERENCED_TOOLS|default(“”)|string %}

{% set INITIAL_TOOL = params.INITIAL_TOOL|default(0)|int %}

{% if REFERENCED_TOOLS == “!referenced_tools!” %}

RESPOND MSG=”Happy Hare gcode pre-processor is disabled”

{% set REFERENCED_TOOLS = INITIAL_TOOL %}

{% elif REFERENCED_TOOLS == “” %}

RESPOND MSG=”Happy Hare single color print”

{% set REFERENCED_TOOLS = INITIAL_TOOL %}

{% endif %}

; <your logic here>

; Example inclusion of logic to check that all tools used by the print are available and to load the initial tool

MMU_CHECK_GATE TOOLS={REFERENCED_TOOLS}

MMU_CHANGE_TOOL STANDALONE=1 TOOL={INITIAL_TOOL}

⾃定义 G 代码:打印结束

您可能更愿意在打印结束时卸载灯丝。为了⽀持这⼀点,请将以下内容添加到切⽚器中的⾃定义最终 G 代码中:

descript

[gcode_macro END_PRINT]

description: Called when ending print

gcode:

{% set EJECT_FILAMENT = params.EJECT_FILAMENT|default(0)|int %}

{% if EJECT_FILAMENT|int == 1 %}

MMU_EJECT

{% endif %}

; Example inclusion of logic to optionally eject filament after print

尖端成型选项

处理细丝尖端创建的基本方法有以下三种:

1. 让切片软件在打印时做,相当于嵌入gcode(快乐兔 会在不打印时做)

2. 永远让快乐兔子去做

3. 使用 ERF Filametrix 等细丝切割机来完全避免“尖端调整”

如果不进行任何更改,上述选项 1 将成为默认值。 但是建议使用选项 2 或 3。

关闭切片器尖端创建(推荐)

对于上述选项 2 和 3,需要禁用切片软件中的尖端成形。 这在每个切片软件中都不同,但通常您需要将这些设置归零。

要启用选项 2,请确保在 快乐兔的 ‘mmu_parameters.cfg’ 配置文件中设置以下两个参数

force_form_tip_standalone:1

form_tip_macro:_MMU_FORM_TIP_STANDALONE

要启用选项 3,即使用切刀[强烈推荐],按下面修改:

force_form_tip_standalone:1

form_tip_macro:_MMU_CUT_TIP

descript

注意:SuperSlicer 中的一个错误要求一个设置接近零但不为零!

补充:切片刀尖成型(不推荐,用切刀的不用看了)

对于选项 1,您必须在切片软件和 快乐兔 固件中设置尖端成形[快乐兔的用于不打印时使用]。

为此,请编辑与此类似的切片软件设置页面,但设置的数值要适合您的具体工具头:

还要确保在 快乐兔 ‘mmu_parameters.cfg’ 中设置以下两个参数:

force_form_tip_standalone: 0

form_tip_macro:_MMU_FORM_TIP_STANDALONE

descript

descript

请参阅切片软件文档以设置这些值

参考工具头原理图

工具头中尺寸的重要参考。

descript

5.1 切片G-code预处理

这里只是一个文档说明,基本没有需要设置的,可以无视

# 官方原始文档

https://github.com/moggieuk/Happy-Hare/blob/main/doc/gcode_preprocessing.md

Happy Hare 现在提供了一个 Moonraker gcode 预处理器,用于解析上传的 gcode 文件,并插入一些有用的元数据,然后将这些元数据传递到宏START_PRINT中以提供有用的功能。

2.5.0以上快乐兔默认已经安装了,查看moonraker.conf中有没有下列代码,没有的话可以通过将以下行插入到文件中moonraker.conf并重新启动 Moonraker 来手动添加。设置enable_file_preprocessor: False将禁用此功能。

[mmu_server]

enable_file_preprocessor: True

descript

为了与 Slicer 添加的标记区分开来,该预处理器用!标记分隔占位符。

目前支持的占位符

占位符:!referenced_tools!

该占位符替换为打印中使用的逗号分隔工具列表。如果没有工具更改(非 MMU 打印),它将是一个空字符串。Eg 0,2,5,6表示打印时使用T0、T2、T5和T6。

作用:当与该MMU_CHECK_GATES TOOLS=功能结合,它允许在开始打印之前预先验证所有必需的工具是否都存在!

占位符:!colors!

此占位符替换为切片器中定义的逗号分隔的挤出机颜色列表。这可用于设置 MMU 门映射中的灯丝颜色。尽管切片器中定义的颜色与 MMU 中加载的实际灯丝无关,但从切片器 gcode 文件中传输颜色、点亮 MMU 上的 LED 并执行视觉匹配可能会很方便(如果不使用 spoolman)是否加载了正确的灯丝

占位符:!温度!

该占位符被替换为切片器中定义的逗号分隔的灯丝温度列表。

占位符: !purge_volumes!

此占位符替换为从工具 X 更改为工具 Y 时使用的以逗号分隔的 NxN 净化体积列表

5.2 orcaslicer 配置

orcaslicer变量列表

https://github.com/supermerill/SuperSlicer/wiki/Macro-&-Variable-list

descript

descript

descript

descript

descript

放在切片起始G-code中

[不推荐全部放在print_start中,那样每次点暂停得等到全部执行完才能处理暂停]

;复制到切片软件中后乱码的话先复制到txt中

; M190 S0

; M109 S0

;初始化mmu相关的宏

MMU_START_SETUP INITIAL_TOOL={initial_tool} REFERENCED_TOOLS=!referenced_tools! TOOL_COLORS=!colors! TOOL_TEMPS=!temperatures! TOOL_MATERIALS=!materials! PURGE_VOLUMES=!purge_volumes!

;检查需要用的耗材是否就位

MMU_START_CHECK

;这里写你自己的print_start宏(宏里不要包含划线操作,因为还没有加载耗材,mmu不再需要修改里面的其它内容)

PRINT_START BED_TEMP=[first_layer_bed_temperature] EXTRUDER_TEMP=[first_layer_temperature]

;加载第一个耗材

MMU_START_LOAD_INITIAL_TOOL

;下面可选择添加划线操作

G90

G1 Y2 X20 F3000

G1 Z0.28 F240

G92 E0

G1 X215 E15 F1500 ; prime the nozzle

G1 Y2.3 F5000

G92 E0

G1 X20 E15 F1200

G92 E0

放在切片结束G-code中

MMU_END

PRINT_END

descript

注意:以前设置中PRINT_END宏中加入MMU_EJECT的现在需要删掉,不再需要修改PRINT_END

放在切片耗材丝更换G-code中

T{next_extruder}

descript

自定义 MMU 开始/结束宏 相关设置选项:

# mmu_macro_vars.cfg

[gcode_macro _MMU_SOFTWARE_VARS]

description: 快乐兔用于开启/结束检查的选项配置

gcode: # 保留为空

# 这些变量控制可选的_MMU_INITIALIZE和_MMU_LOAD_INITIAL_TOOL宏的行为

variable_user_pre_initialize_extension : “G28” ; 在_MMU_INITIALIZE开始时执行。通常是G28归位

variable_octoprint_compat : True ; 设置为True以强制与Octoprint打印作业流兼容

variable_set_custom_colors : True ; 设置为True以根据切片器设置门控的custom_colors

variable_home_mmu : False ; True/False,打印开始前是否对MMU进行归位

variable_check_gates : True ; True/False,是否在使用的所有门控中检查是否已加载耗材

variable_load_initial_tool : True ; True/False,是否自动加载初始工具

# 这些变量控制可选的_MMU_FINALIZE宏行为

variable_eject_tool : True ; True/False,打印结束时是否弹出工具

variable_reset_ttg : False ; True/False,打印结束时是否重置TTG映射

variable_dump_stats : True ; True/False,打印结束时是否显示打印统计信息

======================================重点==================================================

使用上面的设置需要使用moonraker的gcode代码预处理功能

这个功能目前有一个弊端

就是不能直接在切片软件软件上传并打印

而是应该点击上传

然后moonraker会处理你上传的gcode代码

然后在web页面找到上传的处理过的gcode进行打印

descript

目前如果同时使用净化喷嘴和擦料塔,orcaslicer有bug,会换料前去擦料塔挤出一点料,很别扭,应该直接去切刀那里才对。

可以使用拓竹原版切片,添加voron打印机后,只需要修改起始结束gcode页面的内容,不需要其它设置。

7、补充设置

7.1 同步挤出-加装缓冲器

为了缓解部分人兔子多色的料管过长导致挤出机的进料阻力较大,轻则影响打印件的表面质量,重则会导致挤出机打滑。

可以选择开启快乐兔的同步挤出设置(V2版本)。

开启同步挤出

# mmu_parameters.cfg

sync_to_extruder: 1 # 在打印过程中使兔子的齿轮送料电机和挤出机电机同步,设置为1的话为开启

sync_gear_current: 70 # 百分比% 在同步挤出时,齿轮送料电机的电流为正常状态的百分比(10%-100%)

让兔子送料电机和近程挤出机保持完整的同步挤出是不太现实的,更好的方案是添加一个具有反馈功能的缓冲器。

此处的缓冲器不是指兔子后面的那个,而是类似于拓竹上的那种。

descript

同步缓冲器的版本是很多的,可以自由选择。

同步缓冲器基本介绍可以参考木子小小阳的视频

https://www.bilibili.com/video/BV1k8411X7W6/?spm_id_from=333.337.search-card.all.click

UP这里选择的是TR作者发布的Belay 。

# Belay 官方Github

https://github.com/Annex-Engineering/Belay

#也可以去群里下载,

#物料清单:除打印件外,需要两个鲍登接头(不是ECAS04),一个带臂微动和两个M2x12的自攻螺丝

descript

主要是它比较小巧,安装后是这个样子的。[安装在滑车和工具头之间]

descript

也可以选择B站一些UP发布的,比如:

descript

需要的自行去搜索。

注意快乐兔V2本身集成了同步缓冲器的设置,也就是说,上面的几种只需要打印组装零部件部分,他们给出的配置不用理会,只需要在设置中进行简单设置就可以使用。

同步缓冲器设置

同步缓冲器工作的核心原理是修改rotation_distance

mmu_hardware.cfg 配置:

[mmu_sensors]

sync_feedback_tension_pin: # 在灯丝张力下触发的开关传感器

sync_feedback_compression_pin: # 在灯丝压缩下触发的开关传感器

# 使用Belay 的话 触发传感器 是拉伸状态下触发,微动pin脚填在sync_feedback_tension_pin 中

# 其它的同步缓冲器自行根据逻辑判断

# 后期可以通过下面的命令查看传感器状态

MMU_SENSORS

sync_feedback_tension_switch: open

sync_feedback_compression_switch: TRIGGERED

mmu_parameters.cfg参数:

sync_feedback_enable: 1 # 0 = 关闭 (即使安装了传感器), 1 = 开启(仅在打印过程中)

sync_multiplier_high: 1.05 # 应用于齿轮步进器“旋转_距离”的最大系数 (gear stepper的rotation_distance)

sync_multipler_low: 0.95 # 应用于齿轮步进器“旋转_距离”的最小系数`

# 根据个人情况可以修改sync_multiplier_high和sync_multipler_low,

# UP个人根据这个波动范围偏小,缓冲器工作不明显,设置的值为 1.15 和 0.85

设置完 保存重启即可。(建议设置后重新校准鲍登长度3.5 )

参考:相关配置中文介绍

# 同步挤出设置 ————————————————————————————–

#

#这可控制挤出机和齿轮步进器在打印操作期间是否同步

#如果您通常使用最大输出档位步进器电流运行,请考虑使用“sync_gear_current”来降低它

#如果配备TMC驱动器,可以控制齿轮和挤出机电机的电流以优化性能。

#当使用同步电机打印时,这可用于控制齿轮步进器温度

sync_to_extruder: 1 # 在打印过程中使兔子的齿轮送料电机和挤出机电机同步,设置为1的话为开启

sync_gear_current: 70 # 百分比% 在同步挤出时,齿轮送料电机的电流为正常状态的百分比(10%-100%),过大会引起电机过热,过小会引起打滑

sync_form_tip: 0 # 在独立的尖端形成的过程中是否开始同步挤出(卸料操作中)

#下面为可选设置

#可以利用从MMU到挤出机的鲍登路径中的“压缩/膨胀”传感器的反馈

#达到从灯丝的角度来看,两个电机是保持同步的(信号反馈状态可以是二进制的)

#通过一个或两个开关:比例值在-1.0和1.0之间的-1(扩展)和1(压缩)

#此处生效之前需要设置mmu_hardware.cfg中的[mmu_sensors]

# 带反馈的同步挤出

# 其实就是使用了缓冲器的话修改下面设置

sync_feedback_enable: 1 # 0 = 关闭 (即使安装了传感器), 1 = 开启(仅在打印过程中)

# 默认值

# sync_multiplier_high: 1.05 # 应用于齿轮步进器“旋转_距离”的最大系数 (gear stepper的rotation_distance)

# sync_multipler_low: 0.95 # 应用于齿轮步进器“旋转_距离”的最小系数`

# 修改值

sync_multiplier_high: 1.15 # 应用于齿轮步进器“旋转_距离”的最大系数 (gear stepper的rotation_distance)

sync_multipler_low: 0.85 # 应用于齿轮步进器“旋转_距离”的最小系数`

8、Mod收集

https://github.com/SkiBikePrint/ERCF_Mods/tree/main/Carrot_Quiver_Buffer

https://www.printables.com/model/792166-winchrack_type2-v2-for-ercf-or-tradrack-buffer

https://www.printables.com/model/776988-8-lane-pika-filament-buffer-ercf-v2/files

myxiaowu

作者 myxiaowu

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注