背景故事
我按照随附的指南中的说明设置了 BLTouch 模块 -包括拔下 Z 轴开关,并用来自 BLTouch 模块的一对电线替换它。
我设法刻录了Creality 提供的固件,但是由于 BLTouch 模块从热端偏移,因此没有偏移,而且我无法手动编辑.hex
文件以添加偏移。我尝试使用 G 代码命令在 EEPROM 上更新它,但这不起作用,它总是从床的边缘探测。
然后我决定直接基于 Marlin 1.1.x 刷新新固件,因为 Youtube 上有一些关于如何执行此操作的视频。我使用 BLTouch 随附的粉红色 USB ISP 将 Arduino 引导加载程序闪存到主板,现在我可以使用 Arduino IDE 对电路板进行编程。
我上传了我配置的 Marlin 固件(见下文),但它无法正常工作。
问题
当我把打印机放回原处时,X 和 Y 停止转到开关,正确地撞击和归零。但是,当 Z 轴归位时,BLTouch 探针保持缩回状态,并开始返回原位 - 发生这种情况时,我强行关闭了打印机,因为我知道没有什么可以阻止它撞到打印头并弄坏东西。
如何配置我的固件以将 BLTouch 模块用作 Z 停止探头?
尽管当我打开打印机电源时探针会发出几次咔嗒声,但我并不完全确定它是否在工作 - 转到 BLTouch 菜单并选择Cmd: Deploy
没有效果。
从Z_SAFE_HOMING
好的方面来说,当它到达中心时(由于),BLTouch 模块位于构建板的中心而不是热端。
配置
您可以在 Gitlab 上看到我尝试使用的 Marlin 存储库,或者直接链接到初始 Marlin 配置和我的更改之间的差异。
这些是我所做的一些希望相关的配置更改:
// Configuration.h
//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define BLTOUCH
#define X_PROBE_OFFSET_FROM_EXTRUDER -44 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -6 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 5.7 // Z offset: -below +above [the nozzle]
#define Z_HOMING_HEIGHT 4
#define Z_SAFE_HOMING
// pins_MELZI_CREALITY.h
#define SERVO0_PIN 20 // Wondering if this is correct?
这些设置已保留为默认值,但它们看起来可能相关:
/**
* Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
*
* Enable this option for a probe connected to the Z Min endstop pin.
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
/**
* Z_MIN_PROBE_ENDSTOP
*
* Enable this option for a probe connected to any pin except Z-Min.
* (By default Marlin assumes the Z-Max endstop pin.)
* To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
*
* - The simplest option is to use a free endstop connector.
* - Use 5V for powered (usually inductive) sensors.
*
* - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
* - For simple switches connect...
* - normally-closed switches to GND and D32.
* - normally-open switches to 5V and D32.
*
* WARNING: Setting the wrong pin may have unexpected and potentially
* disastrous consequences. Use with caution and do your homework.
*
*/
//#define Z_MIN_PROBE_ENDSTOP
/**
* Number of servos
*
* For some servo-related options NUM_SERVOS will be set automatically.
* Set this manually if there are extra servos needing manual control.
* Leave undefined or set to 0 to entirely disable the servo subsystem.
*/
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command