Marlin 3D 打印机固件完整指南:5 步烧录并调好你的机器
【免费下载链接】MarlinMarlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.项目地址: https://gitcode.com/GitHub_Trending/ma/Marlin
Marlin 是面向 RepRap 3D 打印机的开源固件,支持 8 位 AVR 到 32 位 STM32 等主流平台,负责解析 G 代码、驱动电机和控制温度。适合自组打印机用户和需要刷写、校准固件的维修者阅读。
第一次跑起来:3 条命令烧录固件
Marlin 用 PlatformIO 构建和烧录,默认构建环境是mega2560(ATmega2560 主板):
git clone https://gitcode.com/GitHub_Trending/ma/Marlin cd Marlin platformio run -t upload烧录成功后,TFT 屏会显示启动画面:
如果upload报错,先确认串口被占用、开发环境是否装全,再检查platformio.ini里的环境名是否对应你的主板。
定位与核心概念
- 它是什么:跑在打印机主板上的固件,把上位机发来的 G 代码翻译成电机运动、加热和风扇控制。
- 解决什么问题:一套代码适配十几种主板平台,硬件差异全部收敛在 HAL 硬件抽象层里。
- 必须懂的概念一:机器参数集中在
Configuration.h(基础项)和Configuration_adv.h(高级项),新手只需要改第一个。 - 必须懂的概念二:PlatformIO 的"构建环境"对应一块主板,换主板就是换环境名。
- 引脚映射:每块主板的引脚定义在 src/pins/ 下,一般不需要碰。
怎么用:一台新机的完整校准流程
以常见的 RAMPS 1.4 EFB 配 ATmega2560 为例,从零到能出料:
- 打开
Marlin/Configuration.h,确认MOTHERBOARD定义为BOARD_RAMPS_14_EFB。 - 按实际机器设置打印区域尺寸、每毫米步数和温度传感器类型。
- 执行
platformio run -t upload编译并烧录。 - 用串口工具连接打印机,发送
M115核对固件版本和主板信息。 - 发送
M105查看温度读数,再发G1 X100 F3000测试 X 轴运动。 - 若运动方向相反,把
INVERT_X_DIR取反,重新烧录。
关键参数说明:5 个你真正会改的参数
| 参数 | 含义 | 建议值 |
|---|---|---|
MOTHERBOARD | 主板型号定义,必须与硬件一致 | 查src/core/boards.h,如BOARD_RAMPS_14_EFB |
DEFAULT_AXIS_STEPS_PER_UNIT | 每毫米步数{X,Y,Z,E} | 标准 1.8° 步进电机80, 80, 400, 500 |
TEMP_SENSOR_0 | 热敏电阻类型编号 | 对照传感器规格书,常见 100k 取1 |
INVERT_X_DIR | X 轴电机方向是否取反 | 默认false,走反了改true |
NOZZLE_TO_PROBE_OFFSET | 探针相对喷头的偏移{X,Y,Z} | 实测值,如{10, 10, 0} |
选型与边界
Marlin 擅长通用桌面 FDM 打印机:功能全、支持主板多、社区大。它的运动控制都在板内完成,如果你想要主机端实时控制,Klipper 更合适;如果你用的是 Duet 系列主板,对应的是 RepRapFirmware。只刷固件、改参数、做日常校准,Marlin 就够了。
避坑指南:3 个最常见的问题
- 现象:温度读数恒为 0 或跳变。原因:
TEMP_SENSOR_0与热敏电阻型号不匹配。对策:查传感器规格书,改类型编号后重新编译。 - 现象:电机往相反方向走。原因:电机相序或方向引脚定义与实际接线相反。对策:把对应轴的
INVERT_X_DIR等宏取反。 - 现象:发送 100mm 实际走了 80mm。原因:
DEFAULT_AXIS_STEPS_PER_UNIT偏小。对策:按实测比例修正步数,重刷后复测。
进阶方向
- 想启用床调平、断电续打等功能,看 Configuration_adv.h 里的功能开关。
- 想理解主板是怎么适配的,读硬件抽象层 Marlin/src/HAL/,每个平台一个目录。
一页总结
- Marlin 是跑在主板上的打印机固件,负责 G 代码、电机和温度。
- 参数只改两个文件:
Configuration.h管基础项,Configuration_adv.h管高级项。 - 烧录用 PlatformIO:
platformio run -t upload,一个环境对应一块主板。 - 校准顺序固定:每毫米步数 → 方向 → 速度 → 温度传感器。
- 装了探针的机器,别漏了
NOZZLE_TO_PROBE_OFFSET。
【免费下载链接】MarlinMarlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.项目地址: https://gitcode.com/GitHub_Trending/ma/Marlin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考