2. 烧录前的准备工作:硬件准备与软件准备

烧录Marlin固件,说白了就是给打印机换脑子。这事儿急不得,准备工作做扎实了,后面能省下大把排查时间。我见过太多人上来就点“烧录”,结果卡在某个环节半天找不出原因——嗯,咱们先把家伙事儿备齐。

2.1 硬件准备:主控板、USB线、Bootloader

硬件这块,我习惯按“核心-连接-引导”三步来检查。

2.1.1 主控板

你得先搞清楚自己手里是什么板子。常见的有:

  • RAMPS 1.4 + Mega2560:经典组合,皮实耐造,但性能有限。
  • MKS Gen L / Gen V:集成度高,适合新手。
  • SKR Mini E3 / SKR 2 / SKR 3:32位板子,性能强,支持U盘脱机打印。
  • Duet / Flymaker:高端货,自带网络功能。

我个人建议,第一次烧录尽量选一块已知能正常工作的板子。我曾经遇到过一块焊点虚接的Mega2560,折腾了两天才发现是硬件问题——白白浪费感情。

⚠️ 避坑指南: 我曾经因为用了劣质USB线,导致烧录到一半就断开,板子直接变砖。后来我学乖了:USB线必须带磁环,长度不超过1.5米。数据线不是充电线,别混用。

2.1.2 USB线

USB线看着不起眼,其实是烧录成败的关键。你想想看,固件烧录本质是串口通信,线缆质量差,数据包就容易丢。

  • 选带屏蔽层的USB线。
  • 线径要够粗,至少24AWG。
  • 插上后,电脑能正确识别出COM口(Windows)或/dev/ttyACM0(Linux)。

如果插上没反应,先换根线试试——这招能解决一半的“连不上”问题。

2.1.3 Bootloader

Bootloader是板子上的“引导程序”,负责接收电脑发来的固件数据并写入Flash。说白了,它就是个翻译官。

  • AVR板子(如Mega2560):出厂自带Optiboot bootloader,用Arduino IDE直接烧。
  • STM32板子(如SKR Mini E3):部分板子出厂已烧好,部分需要自己用ST-Link或DFU模式烧录。
  • LPC板子(如MKS SGen):通常用串口ISP烧录bootloader。

怎么判断板子有没有bootloader?很简单:按住复位键,点“烧录”,松开复位——如果进度条开始走,说明有;如果一直卡在“连接中”,八成是bootloader丢了或坏了。

💡 我的经验: 如果你用的是SKR系列板子,建议先刷一次官方提供的“出厂固件”,确认板子本身没问题。别问我怎么知道的——我第一块SKR Mini E3就是到手就刷,结果发现是板子本身有缺陷,差点冤枉了Marlin。

2.2 软件准备:Arduino IDE、VS Code + PlatformIO

软件环境这块,我推荐两条路:

  • Arduino IDE:适合8位板子(Mega2560、RAMPS),配置简单,但功能有限。
  • VS Code + PlatformIO:适合32位板子(STM32、LPC),功能强大,支持代码补全、调试。

2.2.1 Arduino IDE

如果你用的是Mega2560这类8位板子,Arduino IDE是最省心的选择。

  1. 下载安装Arduino IDE(建议1.8.x版本,2.x版本有时不稳定)。
  2. 安装Marlin所需的板卡支持包:工具 → 开发板 → 开发板管理器,搜索“Arduino AVR Boards”并安装。
  3. 选择正确的开发板:工具 → 开发板 → Arduino/Genuino Mega or Mega 2560。
  4. 选择正确的端口:工具 → 端口 → COMx(Windows)或 /dev/ttyACMx(Linux)。

嗯,这里要注意:Arduino IDE的串口监视器波特率要设成250000,否则后面调试时会乱码。

2.2.2 VS Code + PlatformIO

对于32位板子,我强烈推荐VS Code + PlatformIO。它比Arduino IDE灵活得多,而且能自动处理依赖库。

  1. 安装VS Code。
  2. 在扩展商店搜索“PlatformIO IDE”并安装。
  3. 重启VS Code后,点击左侧的PlatformIO图标,选择“Open Project”。
  4. 打开Marlin源码文件夹,PlatformIO会自动识别并配置环境。

我第一次用PlatformIO时,被它的“自动下载依赖”功能惊艳到了——再也不用手动找库文件了。但要注意:网络环境不好的时候,依赖下载会卡住。我建议提前把依赖库下载好,或者用手机热点试试。

🔧 核心区别:
特性Arduino IDEVS Code + PlatformIO
适用板子8位AVR32位ARM、AVR
代码补全无有
依赖管理手动自动
调试功能无有(需硬件支持)
学习曲线低中

2.3 固件源码获取

源码从哪来?别去百度搜“Marlin固件下载”,那些第三方打包的版本可能夹带私货。我习惯直接从官方渠道拿:

  • GitHub仓库:https://github.com/MarlinFirmware/Marlin
  • 官方发布页:https://github.com/MarlinFirmware/Marlin/releases

下载时注意:

  • 稳定版(Release):带版本号,如2.0.9.3、2.1.2,经过充分测试,适合生产环境。
  • 开发版(Bugfix):如bugfix-2.1.x,包含最新功能,但可能有未修复的bug。

我个人建议:新手选稳定版。我曾经为了尝鲜用开发版,结果遇到一个编译错误,查了两天发现是某个新功能还没完善——得不偿失。

下载后解压,你会看到这样的目录结构:

Marlin-2.1.2/
├── Marlin/          # 核心源码
│   ├── src/         # 源代码
│   ├── Configuration.h      # 主配置文件
│   └── Configuration_adv.h  # 高级配置文件
├── buildroot/       # 编译脚本
├── platformio.ini   # PlatformIO配置文件
└── README.md        # 说明文档

嗯,这里要特别提醒:不要直接修改Marlin目录下的源码。正确的做法是:把整个文件夹复制一份,改名为“Marlin-我的配置”,然后在副本里改。这样万一改坏了,还有原始版本可以回退。

💡 我的习惯: 每次下载新版本后,我会先编译一次不做任何修改的原始代码。如果原始代码能编译通过,说明环境没问题;如果报错,那就是环境配置的问题,跟配置无关。这招能帮你快速定位问题。

2.4 本章知识体系

下面这张图,帮你理清烧录前的准备工作全貌:

烧录前准备工作框架 硬件准备 软件准备 固件源码获取 主控板 USB线 Bootloader Arduino IDE VS Code + PIO 稳定版 开发版 三者缺一不可,任何一个环节出问题都会导致烧录失败

准备工作做到位,烧录就成功了一半。下一章咱们正式进入配置环节——嗯,那才是真正考验耐心的地方。