This repository includes source code and firmware releases for the Original Prusa 3D printers based on the 32-bit ARM microcontrollers.
The currently supported model is:
- Original Prusa MINI
- Python 3.6 or newer
Cloning this repository
git clone --recurse https://github.com/prusa3d/Prusa-Firmware-Buddy.git.
In the case you already cloned the repository without the
--recurse flag, run
git submodule update --init.
Building (on all platforms, without an IDE)
python utils/build.py. The binaries are then going to be stored under
- Without any arguments, it will build a release version of the firmware for all supported printers and bootloader settings.
- To generate
.bbfversions of the firmware, use:
--build-typeto select build configurations to be built (
--printerto select for which printers the firmware should be built.
- By default, it will build the firmware in "prerelease mode" set to
beta. You can change the prerelease using
--prerelease alpha, or use
--finalto build a final version of the firmware.
--host-toolsto include host tools in the build (
- Find more options using the
Build the firmware for MINI in
python utils/build.py --printer mini --build-type debug
Build final version for all printers and create signed
python utils/build.py --final --generate-bbf --signing-key <path-to-private-key>
Build the firmware for MINI using a custom version of gcc-arm-none-eabi (available in
$PATH) and use
Make instead of
Ninja (not recommended):
python utils/build.py --printer mini --toolchain cmake/AnyGccArmNoneEabi.cmake --generator 'Unix Makefiles'
The build process of this project is driven by CMake and
build.py is just a high-level wrapper around it. As most modern IDEs support some kind of CMake integration, it should be possible to use almost any editor for development. Below are some documents describing how to setup some popular text editors.
All the source code in this repository is automatically formatted:
If you want to contribute, make sure to install pre-commit and then run
pre-commit install within the repository. This makes sure that all your future commits will be formatted appropriately. Our build server automatically rejects improperly formatted pull requests.
Flashing Custom Firmware
To install custom firmware, you have to break the appendix on the board. Learn how to in the following article https://help.prusa3d.com/article/zoiw36imrs-flashing-custom-firmware.
The firmware source code is licensed under the GNU General Public License v3.0 and the graphics and design are licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). Fonts are licensed under different license (see LICENSE).