— 哔哩哔哩-念叨菌 收集整理
新旧版本更新交叉中,不一样的地方意会一下………
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)
如果您不确定选项,请在此阶段拒绝它们 – 您可以稍后配置它们
1.3 完整安装过程记录
# 完整安装过程及报错解决参考B站视频
https://www.bilibili.com/video/BV1JK4y1B7R4/?vd_source=7023a58ee5717a5b37a78a5c85776f9c
1.4 获取串口ID或者Can UUID
串口的话用下面的命令
ls /dev/serial/by-id
can的话用下面的命令
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
1.5 多色专用klipperscreen安装
# 项目地址:
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 <通道数>
1.6 快乐兔设置指南
创建了一个ERCF V2 的网页来指导您进行完整的硬件配置和设置
基本步骤是:
- 有效的klipper配置和控制
● 运行校准例程序列
● 微调选项
网址:https://github.com/moggieuk/Happy-Hare/tree/main/doc/ercf_v2.md
1.7 基本的MMU命令
快乐兔拥有丰富的命令集和大量的文档,但这里有一个快速的基本命令参考
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
按ESC退出,Y保存
插上typec供电跳线,按住Boot按钮,使用typec线连接到上位机
输入lsusb查询DFU设备
# 刷机命令:需要替换后面的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
刷入klipper
使用canboot刷klipper固件之前请停止klipper服务
# 停止
sudo systemctl stop klipper
# 刷机后启用
sudo systemctl start klipper
cd ~/klipper
make clean
make menuconfig
make
按ESC退出,Y保存
进入katapult使用canboot刷klipper
cd ~/katapult/scripts
# 后面的uuid替换为前面查询到的
python3 flashtool.py -i can0 -f ~/klipper/out/klipper.bin -u 0925929d3a0e
# 检查是否刷成功
./flashtool.py -i can0 -q
刷机完成
拔掉usb,拔掉usb跳线,插上120欧的can跳线,使用can线连接到电气仓
将uuid填写到mmu.cfg
并使用下面的替换mmu.cfg中的对应代码(源代码pin有错误,后期应该会改正)
[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主板接线及配置针脚
待更新
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 应该会启动而不会出现升级警告。
硬件配置验证
# 官方相关页面: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
# 或者使用可视化界面操作【推荐】
然后手动按住选择器微动开关并重新运行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的小伙伴,需要禁用切片软件中的尖端成形。 这在每个切片软件中都不同,但通常您需要将这些设置归零。
注意: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
然后,请编辑与此类似的切片软件设置页面,但设置的数值要适合您的具体工具头:
请参阅切片软件文档以设置这些值
4.3 工具头装卸
5、切片软件配置
本指南假设您使⽤的是 SuperSlicer,但它很可能与 PrusaSlicer 的⼯作⽅式相同。将仅讨论对默认(即单个挤出机和单个⼯具)配置⽂件的更改。
1、调整切片软件到专家模式
2、在打印机设置选项卡的常规部分中,激活“单挤出机多材料”选项并设置正确的“挤出机”数量(即 ERCF 上的通道数)
不同的挤出机将出现在菜单列表中
对于列表中的每个挤出机,确保“⼯具名称”留空
- ⾃定义 G 代码:⼯具更换
将“换⼑ G 代码”设置为“T[next_extruder]”,这将使 Gcode ⽣成“T0”G 代码以请求⼯具 0 换⼑(“T1”表⽰⼯具 1 等)
T[next_extruder]
4、全局设置
下⾯显⽰的开始和结束 gcode 代码专为使⽤ ERCF 作为耗材管理解决⽅案⽽设计,即使对于单⾊打印也是如此。这意味着正确的灯丝将在打印开始时加载(在 print_start 宏完成后),并且灯丝将在打印结束时卸载。因此,当您的打印机不打印时,⼯具头中不会有细丝,并且整个 print_start 的gcode代码 将在没有加载任何耗材的情况下执⾏,因此请相应地调整它(例如,如果其中有任何清除序列,那将是⽆⽤的)
⾃定义 G 代码:print_start
默认情况下,切⽚器不会加载打印的第⼀个⼯具,因此您可以选择始终在开始打印之前加载第⼀个⼯具,否则您需要将初始⼯具传递给打印启动宏。此⽰例还设置了另⼀个变量,其中包含打印中使⽤的⼯具列表(有关⽤法,请参阅 START_PRINT gcode):
[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 代码中:
[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
注意:SuperSlicer 中的一个错误要求一个设置接近零但不为零!
补充:切片刀尖成型(不推荐,用切刀的不用看了)
对于选项 1,您必须在切片软件和 快乐兔 固件中设置尖端成形[快乐兔的用于不打印时使用]。
为此,请编辑与此类似的切片软件设置页面,但设置的数值要适合您的具体工具头:
还要确保在 快乐兔 ‘mmu_parameters.cfg’ 中设置以下两个参数:
force_form_tip_standalone: 0
form_tip_macro:_MMU_FORM_TIP_STANDALONE
请参阅切片软件文档以设置这些值
参考工具头原理图
工具头中尺寸的重要参考。
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
为了与 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
放在切片起始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
注意:以前设置中PRINT_END宏中加入MMU_EJECT的现在需要删掉,不再需要修改PRINT_END
放在切片耗材丝更换G-code中
T{next_extruder}
自定义 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进行打印
目前如果同时使用净化喷嘴和擦料塔,orcaslicer有bug,会换料前去擦料塔挤出一点料,很别扭,应该直接去切刀那里才对。
可以使用拓竹原版切片,添加voron打印机后,只需要修改起始结束gcode页面的内容,不需要其它设置。
7、补充设置
7.1 同步挤出-加装缓冲器
为了缓解部分人兔子多色的料管过长导致挤出机的进料阻力较大,轻则影响打印件的表面质量,重则会导致挤出机打滑。
可以选择开启快乐兔的同步挤出设置(V2版本)。
开启同步挤出
# mmu_parameters.cfg
sync_to_extruder: 1 # 在打印过程中使兔子的齿轮送料电机和挤出机电机同步,设置为1的话为开启
sync_gear_current: 70 # 百分比% 在同步挤出时,齿轮送料电机的电流为正常状态的百分比(10%-100%)
让兔子送料电机和近程挤出机保持完整的同步挤出是不太现实的,更好的方案是添加一个具有反馈功能的缓冲器。
此处的缓冲器不是指兔子后面的那个,而是类似于拓竹上的那种。
同步缓冲器的版本是很多的,可以自由选择。
同步缓冲器基本介绍可以参考木子小小阳的视频
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的自攻螺丝
主要是它比较小巧,安装后是这个样子的。[安装在滑车和工具头之间]
也可以选择B站一些UP发布的,比如:
需要的自行去搜索。
注意快乐兔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