在 Marlin 主页 可以找到更多文档。 请测试此固件,如果发现任何问题,请告知我们。志愿者随时待命!
不适用于生产环境。请谨慎使用!
Marlin 2.1 将这款流行的 RepRap 固件提升到新的水平,它添加了对更快的 32 位和 ARM 架构主板的支持,同时改进了对 8 位 AVR 主板的支持。请阅读下面有关 Marlin 使用“硬件抽象层”的决定。
此分支用于最新 2.1.x 版本的补丁。此分支将定期成为下一个 2.1.x 次要版本的基准。
从 Releases 页面 下载早期版本的 Marlin。
在为您的机器构建 Marlin 之前,您需要为您的特定硬件配置一个配置。根据要求,您的供应商将很乐意为您提供机器的完整源代码和配置,但如果您想安装更新版本的 Marlin,则需要获取更新的配置文件。幸运的是,Marlin 用户贡献了数十个经过测试的配置,供您开始使用。访问 MarlinFirmware/Configurations 存储库以找到适合您的硬件的配置。
要构建和上传 Marlin,您将使用以下工具之一:
- 使用 Auto Build Marlin 扩展的免费 Visual Studio Code。
- 免费的 Arduino IDE : 请参阅 使用 Arduino 构建 Marlin
- 您也可以使用带有 devcontainer 的 VSCode : 请参阅 安装 Marlin (VSCode devcontainer)。
Marlin 针对 Visual Studio Code 的 PlatformIO IDE 扩展进行了优化。您仍然可以使用 Arduino IDE 构建 Marlin,我们希望改进 Arduino 构建体验,但目前 PlatformIO 是更好的选择。
我们打算永久支持 8 位 AVR 主板,维护一个可以应用于所有机器的单个代码库。我们希望业余爱好者、DIY 爱好者和拥有旧机器的用户能够与拥有更高级机器的用户一样,从社区的创新中获益。此外,那些基于 AVR 的旧机器通常最适合您的测试和反馈!
Marlin 包含一个抽象层,为其所有目标平台提供通用 API。这允许 Marlin 代码在最低和最高级别上解决运动和用户界面任务的细节,而无需任何系统开销,将所有事件直接绑定到硬件时钟。
每个新的 HAL 都开辟了一个硬件世界。目前,我们需要针对 RP2040 和 Duet3D 系列主板的 HAL。包装 RTOS 的 HAL 是一个有趣的概念,可以探索。您知道 Marlin 包含一个可以在 Windows、macOS 和 Linux 上运行的模拟器吗?加入 Discord 帮助推进这些子项目!
平台 | MCU | 示例主板 |
---|---|---|
Arduino AVR | ATmega | RAMPS、Melzi、RAMBo |
Teensy++ 2.0 | AT90USB1286 | Printrboard |
Arduino Due | SAM3X8E | RAMPS-FD、RADDS、RAMPS4DUE |
ESP32 | ESP32 | FYSETC E4、E4d@BOX、MRR |
LPC1768 | ARM® Cortex-M3 | MKS SBASE、Re-ARM、Selena Compact |
LPC1769 | ARM® Cortex-M3 | Smoothieboard、Azteeg X5 mini、TH3D EZBoard |
STM32F103 | ARM® Cortex-M3 | Malyan M200、GTM32 Pro、MKS Robin、BTT SKR Mini |
STM32F401 | ARM® Cortex-M4 | ARMED、Rumba32、SKR Pro、Lerdge、FYSETC S6、Artillery Ruby |
STM32F7x6 | ARM® Cortex-M7 | The Borg、RemRam V1 |
STM32G0B1RET6 | ARM® Cortex-M0+ | BigTreeTech SKR mini E3 V3.0 |
STM32H743xIT6 | ARM® Cortex-M7 | BigTreeTech SKR V3.0、SKR EZ V3.0、SKR SE BX V2.0/V3.0 |
SAMD51P20A | ARM® Cortex-M4 | Adafruit Grand Central M4 |
Teensy 3.5 | ARM® Cortex-M4 | |
Teensy 3.6 | ARM® Cortex-M4 | |
Teensy 4.0 | ARM® Cortex-M7 | |
Teensy 4.1 | ARM® Cortex-M7 | |
Linux Native | x86/ARM/etc. | Raspberry Pi |
问题队列专用于错误报告和功能请求。请使用以下资源获取有关配置和故障排除的帮助:
- Marlin 文档 - 官方 Marlin 文档
- Marlin Discord - 与 Marlin 用户和开发人员讨论问题
- Facebook 群组 "Marlin Firmware"
- RepRap.org Marlin 论坛
- Facebook 群组 "Marlin Firmware for 3D Printers"
- YouTube 上的 Marlin 配置
您可以通过向 (bugfix-2.1.x) 分支提交拉取请求来贡献补丁。
- 我们使用以“bugfix”或“dev”为前缀的分支来修复错误和集成新功能。
- 遵循 编码标准 以获得维护者的认可。
- 请将功能请求和错误报告提交到 问题队列。请参阅以上内容以获取用户支持。
- 每当您添加新功能时,请务必在
buildroot/tests
中添加一个或多个构建测试。添加到 PR 的任何测试将在您的 PR 推送至 GitHub 服务器后立即在该 PR 中运行。为了最大限度地减少迭代次数,请务必在本地运行新测试,如果可能的话。- 本地构建测试:
- 所有:
make tests-config-all-local
- 单个:
make tests-config-single-local TEST_TARGET=...
- 所有:
- Docker 中的本地构建测试:
- 所有:
make tests-config-all-local-docker
- 单个:
make tests-config-all-local-docker TEST_TARGET=...
- 所有:
- 要运行所有单元测试套件:
- 使用 PIO:
platformio run -t test-marlin
- 使用 Make:
make unit-test-all-local
- 使用 Docker + make:
maker unit-test-all-local-docker
- 使用 PIO:
- 要运行单个单元测试套件:
- 使用 PIO:
platformio run -t marlin_<test-suite-name>
- 使用 Make:
make unit-test-single-local TEST_TARGET=<test-suite-name>
- 使用 Docker + make:
maker unit-test-single-local-docker TEST_TARGET=<test-suite-name>
- 使用 PIO:
- 本地构建测试:
- 如果您的功能可以进行单元测试,请添加一个或多个单元测试。有关更多信息,请参阅我们关于 单元测试 的文档。
Marlin 由于来自世界各地的众多贡献者的贡献而不断改进,他们带来了自己的专业知识和才能。对 所有贡献者 表示衷心的感谢,他们经常修复错误、帮助引导流量,并且基本上防止 Marlin 分崩离析。没有他们,Marlin 不会继续存在。
姓名 | 角色 | 链接 | 捐赠 |
---|---|---|---|
🇺🇸 Scott Lahteine | 项目负责人 | [@thinkyhead] | 💸 捐赠 |
🇺🇸 Roxanne Neufeld | 管理员 | [@Roxy-3D] | |
🇺🇸 Keith Bennett | 管理员 | [@thisiskeithb] | 💸 捐赠 |
🇺🇸 Jason Smith | 管理员 | [@sjasonsmith] | |
🇧🇷 Victor Oliveira | 管理员 | [@rhapsodyv] | |
🇬🇧 Chris Pepper | 管理员 | [@p3p] | |
🇳🇿 Peter Ellens | 管理员 | [@ellensp] | 💸 捐赠 |
🇺🇸 Bob Kuhn | 管理员 | [@Bob-the-Kuhn] | |
🇳🇱 Erik van der Zalm | 创始人 | [@ErikZalm] |
Marlin 在 GPL 许可证 下发布,因为我们相信开放开发。GPL 附带权利和义务。无论您将 Marlin 固件用作开放源代码或闭源产品的驱动程序,您都必须使 Marlin 保持开放,并且您必须根据要求向最终用户提供您兼容的 Marlin 源代码。遵守 Marlin 许可证的最直接方法是在 Github 上创建 Marlin 的分支,执行您的修改,并将用户引导到您修改的分支。