开始之前:
注意
编译前一定要在platformio.ini文件里用#注释掉下面这行(如果有的话)
pre:buildroot/share/PlatformIO/scripts/configuration.py
不注释掉这行在编译时会读取config.ini.里的参数,会导致你白编译了(血的教训)
我使用的主板是JOKER2.0主板,其他主板编译类似
主板与驱动类型
注意
在Marlin/src/core/boards.h中可以查看支持的主板
#define MOTHERBOARD BOARD_MM_JOKER
我使用的驱动为2209
#define X_DRIVER_TYPE TMC2209_STANDALONE
#define Y_DRIVER_TYPE TMC2209_STANDALONE
#define Z_DRIVER_TYPE TMC2209_STANDALONE
#define E0_DRIVER_TYPE TMC2209_STANDALONE
热床尺寸与行程
根据你的热床尺寸和行程来设定
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS 240 // 如果机械行程更大(如 240),可保留差值
#define Z_MAX_POS 155
启用 BLTouch 并设置引脚
FIX_MOUNTED_PROBE是用于你的打印机上安装了一个位置固定、不可伸缩的Z轴探针,所以我们注释掉
//#define FIX_MOUNTED_PROBE // 注释掉
#define BLTOUCH // 取消注释
#define Z_MIN_PROBE_PIN 35 // 使用独立探头口(你板子上的 PROBE 口)
//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // 保持注释,不使用 Z 限位插座
关于主板的pin引脚设定你可以在Marlin\src\pins找到自己的主板查看或者设置它
可以根据主板的引脚图来修改
可以根据主板的引脚图来修改
我的舵机引脚 SERVO0_PIN 已经 pins_MM_JOKER.h 中定义为 14

安全归位
#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT X_CENTER // 自动使用床中心
#define Z_SAFE_HOMING_Y_POINT Y_CENTER
#endif
探针偏移与调平网格
这里教各位如何设置探针偏移

用喷嘴压住纸(压出印子),黑笔点出探针位置,测量出结果
最好是用网格纸
#define NOZZLE_TO_PROBE_OFFSET { -25, -28, 0 } // Z 偏移先写 0,后续校准
#define PROBING_MARGIN 15 // 边缘安全距离
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y 3
#define AUTO_BED_LEVELING_BILINEAR //基于网格的自动床调平(ABL) 方式
#define RESTORE_LEVELING_AFTER_G28 //在执行 G28 归位命令后,自动将热床调平状态恢复到执行 G28 之前的状态
方向定义
如果编译后出现运动方向反了的问题调整这里
#define INVERT_X_DIR true
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true
#define INVERT_E0_DIR false
当然你也可以调整线序
PID与温度
打开热床PID(默认好像没开),PID参数可以自动调节
#define PIDTEMPBED
设置温度,开启热床保护
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1
#define HEATER_0_MAXTEMP 255 // 喷嘴最高温度
#define BED_MAXTEMP 120 //热床最高温度
#define THERMAL_PROTECTION_BED
舵机数量
define NUM_SERVOS 1 // 原为 0,BLTouch 需要一个舵机
强制 Marlin 在 G28 归零时 使用探头(3D Touch)来触碰床面来确定 Z 零点(没有注释掉BLtouch或者3Dtouch在回原点时不会工作)
#define USE_PROBE_FOR_Z_HOMING //启用探头归零

