Skip to content

Firmware for the Original Prusa MINI, Original Prusa MK4, Original Prusa XL and Prusa CORE One 3D printers by Prusa Research.

License

Notifications You must be signed in to change notification settings

prusa3d/Prusa-Firmware-Buddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f5d6731 · Feb 12, 2020
Feb 10, 2020
Dec 27, 2019
Feb 10, 2020
Feb 11, 2020
Jan 30, 2020
Feb 11, 2020
Dec 19, 2019
Feb 10, 2020
Dec 23, 2019
Dec 19, 2019
Jan 6, 2020
Dec 21, 2019
Dec 20, 2019
Feb 10, 2020
Dec 19, 2019
Jan 6, 2020
Jan 7, 2020
Feb 12, 2020

Repository files navigation

Buddy

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

Getting Started

Requirements

  • Python 3.6 or newer

Cloning this repository

Run 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)

Run python utils/build.py. The binaries are then going to be stored under ./build/products.

  • Without any arguments, it will build a release version of the firmware for all supported printers and bootloader settings.
  • To generate .bbf versions of the firmware, use: ./utils/build.py --generate-bbf.
  • Use --build-type to select build configurations to be built (debug, release).
  • Use --printer to 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 --final to build a final version of the firmware.
  • Use --host-tools to include host tools in the build (bin2cc, png2font, ...)
  • Find more options using the --help flag!

Examples:

Build the firmware for MINI in debug mode:

python utils/build.py --printer mini --build-type debug

Build final version for all printers and create signed .bbf versions:

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'

Development

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.

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.

License

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).