编译Marlin 1.1.9.1固件指南
编译 Marlin 固件是一个很常见的任务。下面我将为您提供一份详细、分步的指南,以编译 Marlin 1.1.9.1 版本。
方法概览
编译 Marlin 主要有两种方法:
-
使用 Arduino IDE (传统方法,适合初学者)
-
使用 PlatformIO (更专业、更强大的方法,是 Marlin 官方推荐的方式)
我将重点介绍 PlatformIO 方法,因为它更自动化,能更好地处理依赖库,并且是当前 Marlin 社区的主流选择。同时我也会简要介绍 Arduino IDE 的方法。
方法一:使用 PlatformIO (推荐)
PlatformIO 是一个嵌入在 VS Code 中的专业嵌入式开发平台,它可以自动下载编译器、工具链和所有必需的库,非常方便。
步骤 1:准备工作
-
下载 Marlin 固件:
-
访问 Marlin 的官方 GitHub 发布页面:https://github.com/MarlinFirmware/Marlin/releases
-
找到
1.1.9.1
版本并点击 "Source code (zip)" 进行下载。也可以点击【Marlin-1.1.9.1.zip】进行下载。 -
将下载的 ZIP 文件解压到一个你容易找到的文件夹中,例如
D:\Marlin-1.1.9.1\
。
-
-
安装 Visual Studio Code:
-
如果尚未安装,请从 https://code.visualstudio.com/ 下载并安装。
-
-
安装 PlatformIO IDE 扩展:
-
打开 VS Code。
-
点击左侧活动栏的“扩展”图标 (或按
Ctrl+Shift+X
)。 -
在搜索框中输入
PlatformIO IDE
。 -
找到由 PlatformIO 开发的扩展,点击“安装”。
https://docs.platformio.org/en/latest/_images/install-platformio-ide-vscode-1.png
-
步骤 2:配置 Marlin
这是最关键的一步。你需要根据你的 3D 打印机主板来修改配置文件。
-
找到配置文件:
-
在解压的 Marlin 文件夹中,你会找到两个重要的
.h
文件:-
Marlin/Configuration.h
:主要硬件和功能设置。 -
Marlin/Configuration_adv.h
:高级功能设置。
-
-
-
获取配置范例:
-
最佳实践:从你的主板供应商或打印机厂商提供的固件配置文件中开始。他们通常已经设置好了正确的引脚定义和基本参数。
-
备用方案:Marlin 提供了官方范例。在
Marlin/config/examples
目录下,根据你的打印机品牌(如Creality
,Anet
)和主板型号寻找最接近的配置文件,用它覆盖根目录下的Configuration.h
和Configuration_adv.h
。
-
-
编辑配置:
-
用 VS Code 或任何文本编辑器打开
Configuration.h
。 -
必须修改:找到并修改
motherboard
的定义。例如:-
对于 Creality Ender 3 标配的 CREALITY V1.1.3 主板,你需要设置:
cpp
#define MOTHERBOARD BOARD_CREALITY_V1
-
对于 SKR Mini E3 V1.2,你需要设置:
cpp
#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2
-
-
你必须根据你的实际主板型号来修改这个值。所有支持的主板定义可以在
Marlin/src/core/boards.h
文件中找到。 -
根据你的需求调整其他设置,如温度传感器类型、步进电机驱动方向、加速度等。如果不确定,可以暂时保持范例文件的默认值。
-
步骤 3:编译固件
-
在 VS Code 中打开项目:
-
在 VS Code 中,选择
File > Open Folder...
,然后选择你解压的Marlin-1.1.9.1
文件夹。
-
-
使用 PlatformIO 编译:
-
VS Code 加载项目后,你应该在底部状态栏看到 PlatformIO 的图标(一个小房子)。
-
点击左侧活动栏的 PlatformIO 图标(蚂蚁头)。
-
在 PIO 菜单中,展开
Project Tasks
。 -
你会看到很多环境选项,它们对应不同的主板。你需要选择与你的
boards.h
中定义匹配的环境。例如:-
env:STM32F103RC_btt
(对于 BIGTTRECH 主板) -
env:mega2560
(对于 Arduino Mega 2560 + RAMPS) -
env:LPC1768
(对于 Smoothieboard 或类似)
-
-
如果不确定正确的环境名,可以参考
Marlin-1.1.9.1/platformio.ini
文件,里面列出了所有环境及其对应的主板。 -
找到正确的环境后,点击其下的
Build
任务。
https://i.imgur.com/3l4QzJl.png
-
-
等待编译完成:
-
PlatformIO 会自动下载所有需要的工具和库(第一次编译可能会较慢)。
-
编译成功后,你会在终端窗口看到
SUCCESS
字样。
-
步骤 4:获取固件文件
-
编译成功后,生成的固件文件(通常是
.bin
或.hex
文件)位于 Marlin 项目目录下的.pio/build/<环境名称>/
文件夹中。-
例如:
.pio/build/STM32F103RC_btt/firmware.bin
-
步骤 5:烧录固件
-
将 SD 卡格式化为 FAT32 格式,容量不要太大(建议 8GB-16GB)。
-
将上一步生成的
firmware.bin
文件复制到 SD 卡的根目录。 -
断开打印机的电源,将 SD 卡插入主板。
-
接通打印机电源,主板将自动检测并烧录
.bin
文件。烧录过程需要几十秒,完成后主板可能会自动重启。 -
烧录成功后,SD 卡上的
firmware.bin
文件会被重命名为FIRMWARE.CUR
。这是一个烧录成功的标志。
方法二:使用 Arduino IDE
这种方法更手动,需要自行管理库文件。
-
安装 Arduino IDE:从 Arduino 官网下载并安装 1.8.x 版本。
-
添加主板支持:在首选项中添加你的主板对应的附加开发板管理网址(例如,对于 STM32,可能是 STM32duino 的网址)。
-
安装主板包:在“工具”->“开发板”->“开发板管理器”中,安装你的主板对应的包(如 STM32 Cores 或 Arduino AVR Boards)。
-
复制 Marlin 库:将 Marlin 源码目录中的
Marlin
文件夹覆盖 Arduino 库目录下的同名文件夹(通常位于C:\Users\[用户名]\Documents\Arduino\libraries
)。 -
打开项目:用 Arduino IDE 打开
Marlin.ino
文件。 -
选择板和端口:在“工具”菜单中正确选择你的主板型号、处理器型号、端口等。
-
编译和上传:点击“验证”(编译)以确保没有错误,然后点击“上传”将固件烧录到主板(通常需要通过 USB 线)。
注意:对于大多数现代 32 位主板(如 STM32、LPC1768),Arduino IDE 方法非常复杂且不推荐,PlatformIO 是绝对的首选。
常见问题排查
-
编译错误:找不到 board:
Configuration.h
中的MOTHERBOARD
定义与platformio.ini
中的环境不匹配。请确保你选择的环境支持你定义的主板。 -
编译错误:缺少库:PlatformIO 通常会自动处理。如果发生,尝试在 PIO 主页点击“Rebuild IntelliSense Index”或运行“Clean”后重新编译。
-
烧录后打印机无反应:
-
检查主板型号选择是否正确。
-
检查 SD 卡格式是否为 FAT32,并且文件放在根目录。
-
尝试重命名
firmware.bin
为一个简单的名字,如firmware1.bin
。
-
希望这份详细的指南能帮助你成功编译 Marlin 1.1.9.1!祝你成功!