This repository includes source code and firmware releases for the Original Prusa Multi Material Unit based on 8-bit ATMEL microcontroller.
The currently supported models are:
This is the new firmware for the Multi Material Unit (MMU).
The key motivation for developing a new firmware structure were as follows:
The whole firmware is composed of simple state machines which run all at once - it is a kind of simple cooperative multi-tasking while not eating up any significant resources by deploying generic task switching solutions like RTOS or similar. The general rule is to avoid waiting inside these state machines, no state machine is allowed to block execution of others. That implies making separate waiting states which only check for some condition to be true before proceeding further.
The firmware is separated into 4 layers:
Run git clone https://github.com/prusa3d/Prusa-Firmware-MMU.git
.
Run ./utils/bootstrap.py
bootstrap.py
will now download all the "missing" dependencies into the .dependencies
folder:
Now the process is the same as in the Buddy Firmware:
./utils/build.py
builds the `MMU3_
In case you'd like to build the project directly via cmake you can use an approach like this:
mkdir build
cd build
cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=../cmake/AvrGcc.cmake
ninja
It will produce a MMU3_<version>.hex
file.
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.
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).