1. 配置开发环境与编译Marlin固件

配置开发环境与编译Marlin固件 学习卡片

任务说明

本案例目标是在本地搭建Marlin固件编译环境,完成一次基础配置并编译出可用于烧录的固件文件。以Creality Ender-3搭配8位板(如V4.2.2的32位板亦可,但需对应配置)为参考目标,但核心流程与配置方法适用于绝大多数Marlin支持的板卡。你需要完成:安装编译链、获取Marlin源码、选择并配置板卡型号、编译生成固件、烧录到开发板。

环境准备

推荐使用PlatformIO作为编译工具链,它随Marlin源码自动管理依赖,避免手动安装ARM/AVR交叉编译器的版本冲突。需要预先安装:

  • Git(用于获取源码)
  • Python 3.8+(PlatformIO依赖)
  • VS Code(可选,但推荐,配合PlatformIO插件使用)

获取源码与配置

打开终端,执行以下命令获取Marlin 2.x稳定分支源码:

git clone https://github.com/MarlinFirmware/Marlin.git
cd Marlin
git checkout 2.1.x

进入config/examples目录,找到与你板卡匹配的示例配置。以Ender-3(8位板,如V1.1.4)为例:

# 将示例配置复制到Marlin根目录的Config文件夹
mkdir -p Config
cp -r config/examples/Creality/Ender-3/Config/* Config/

若使用其他板卡,请选择对应的config/examples子目录。复制后,Config/下应包含Configuration.h和Configuration_adv.h两个文件。

关键配置项检查

打开Config/Configuration.h,确认以下关键项与你的硬件一致:

  • MOTHERBOARD:板卡型号宏,例如BOARD_RAMPS_14_EFB(RAMPS 1.4)或BOARD_CREALITY_V4(V4.2.2板)。
  • #define SERIAL_PORT 0:USB串口编号,通常为0。
  • #define BAUDRATE 115200:与上位机通信波特率。
  • #define TEMP_SENSOR_0 1:热敏电阻类型,Ender-3通常为1(EPCOS 100K)。

若不确定具体值,保持示例配置默认即可,多数情况下能直接编译通过。

编译固件

在Marlin根目录打开终端,执行:

platformio run

首次编译会自动下载工具链与依赖库,耗时较长。编译成功后,固件文件位于.pio/build/<环境名>/firmware.bin(32位板)或firmware.hex(8位板)。环境名对应platformio.ini中default_envs指定的值,例如STM32F103RET6或mega2560。

烧录固件

8位板(AVR):使用USBasp或Arduino作为ISP,通过avrdude烧录hex文件。以USBasp为例:

avrdude -c usbasp -p m2560 -U flash:w:.pio/build/mega2560/firmware.hex

32位板(STM32):将firmware.bin复制到MicroSD卡根目录,改名为firmware.bin,插入板卡SD卡槽,重新上电即可自动烧录。

验证与判定标准

烧录完成后,通过USB连接板卡与电脑,打开串口监视器(波特率115200),观察启动信息。满足以下条件即判定成功:

  • 串口输出Marlin版本号、板卡型号、编译日期等启动横幅。
  • 发送M115命令,返回固件版本信息。
  • 发送M503命令,能回显当前配置参数。

若串口无输出,检查波特率、板卡供电、USB驱动;若编译报错,优先检查MOTHERBOARD宏是否与板卡匹配。

Marlin固件编译烧录流程 1. 获取源码 git clone + checkout 2.1.x Marlin/Marlin 2. 复制配置 config/examples/板卡型号 → Config/ 3. 编译 platformio run → .pio/build/固件 4. 烧录 AVR: avrdude STM32: SD卡+bin 5. 验证 串口监视器 M115 / M503 配置错误时返回修改 关键文件 Configuration.h Configuration_adv.h 判定标准:串口输出启动横幅 + M115/M503正常响应 8位AVR → .hex 32位ARM → .bin

常见问题排查

  • 编译报错“board not found”:检查MOTHERBOARD宏拼写,对照boards.h中定义。
  • 烧录后无反应:确认板卡供电(USB或12V),检查串口驱动(CH340/CP2102等)。
  • PlatformIO下载慢:可设置国内镜像源,在platformio.ini中添加extra_configs = https://mirrors.tuna.tsinghua.edu.cn/help/platformio/。

完成上述步骤并观察到串口正常输出后,本案例目标即达成。后续案例将在此环境基础上进行源码级功能定制。