该存储库包括基于 32 位 ARM 微控制器的原始 Prusa 3D 打印机的源代码和固件版本。
目前支持的型号有:
运行git clone https://github.com/prusa3d/Prusa-Firmware-Buddy.git
。
运行python utils/build.py
。然后二进制文件将存储在./build/products
下。
.bbf
版本,请使用: ./utils/build.py --generate-bbf
。--build-type
选择要构建的构建配置( debug
、 release
)。--preset
选择应为哪些打印机构建固件。beta
“预发布模式”下构建固件。您可以使用--prerelease alpha
更改预发布,或使用--final
构建固件的最终版本。--host-tools
在构建中包含主机工具( bin2cc
, png2font
,...)--help
标志查找更多选项! 在debug
模式下构建 MINI 和 XL 的固件:
python utils/build.py --preset mini,xl --build-type debug
使用 gcc-arm-none-eabi 的自定义版本(在$PATH
中可用)构建 MINI 固件,并使用Make
而不是Ninja
(不推荐):
python utils/build.py --preset mini --toolchain cmake/AnyGccArmNoneEabi.cmake --generator ' Unix Makefiles '
如果你已经安装了 python 并在你的 PATH 中,但仍然出现 cmake 错误Python3 not found.
尝试从 cmd 运行 python 和 python3。如果其中之一打开 Microsoft Store,而不是打开 python 解释器或抱怨'python3' is not recognized as an internal or external command, operable program or batch file.
打开manage app execution aliases
并禁用App Installer
与python.exe
和python3.exe
关联。
该项目的构建过程由 CMake 驱动, build.py
只是它的高级包装器。由于大多数现代 IDE 支持某种 CMake 集成,因此应该可以使用几乎任何编辑器进行开发。以下是一些描述如何设置一些流行的文本编辑器的文档。
如果您想为代码库做出贡献,请阅读贡献指南。
对于 XL,情况变得更加复杂。 XLBuddy 的固件包含供小狗(Dwarf 和 Modularbed)在必要时刷新它们的固件。我们支持在开发时处理这些固件的多种方法:
自动构建 Dwarf/Modularbed 固件并通过 XLBuddy 在启动时刷新它(默认)
从给定的源目录构建 Dwarf/Modularbed,并通过 XLBuddy 在启动时刷新它。
DWARF_SOURCE_DIR
/ MODULARBED_SOURCE_DIR
CMake 缓存变量。 cmake .. --preset xl_release_boot -DMODULARBED_SOURCE_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed
cmake .. --preset xl_release_boot
-DMODULARBED_SOURCE_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed
-DMODULARBED_BINARY_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed/build
使用预构建的 Dwarf/Modularbed 固件并通过 xlBuddy 在启动时刷新它
DWARF_BINARY_PATH
/ MODULARBED_BINARY_PATH
指定 .bin 文件的位置。 cmake .. --preset xl_release_boot -DDWARF_BINARY_PATH=/Downloads/dwarf-4.4.0-boot.bin
不要包含任何 puppy 固件,也不要通过 XLBuddy 刷新 puppies。
-DENABLE_PUPPY_BOOTLOAD=NO
ENABLE_PUPPY_BOOTLOAD
设置为 false 时,该项目将禁用 Puppy 闪烁以及与 Puppy 引导加载程序的交互。保留引导加载程序,但不在引导时写入固件。
-DPUPPY_SKIP_FLASH_FW=YES
PUPPY_SKIP_FLASH_FW
设置为 true 时,项目将在启动时禁用 Puppy 闪烁。xl-dwarf_debug_boot
)的小狗构建配置。puppy_task_body()
末尾设置断点,以防止当 puppy 在断点处停止时 buddy 立即重置 puppy。有关这些缓存变量的更多信息,请参阅 /ProjectOptions.cmake。
mkdir build-tests
cd build-tests
cmake ..
make tests
ctest .
调试(逐步执行)测试的最简单方法是在配置cmake -DCMAKE_BUILD_TYPE=Debug ..
时指定 CMAKE_BUILD_TYPE,按照前面所述使用make tests
构建它,然后使用gdb
运行测试,例如gdb tests/unit/configuration_store/eeprom_unit_tests
。
要安装自定义固件,您必须破坏板上的附录。在以下文章中了解如何操作 https://help.prusa3d.com/article/zoiw36imrs-flashing-custom-firmware。
固件源代码根据 GNU 通用公共许可证 v3.0 获得许可,图形和设计根据 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 获得许可。字体根据不同的许可证获得许可(请参阅许可证)。