Releases: prusa3d/Prusa-Firmware-MMU
3.0.3 Firmware for MMU3
Summary
- Information for the MK4 and MK3.9 owners
- Information for the MK3S+ and MK3.5 owners
- List of pull requests
This is the stable release of firmware version 3.0.3 for the MMU3 unit, primarily intended for the upcoming Original Prusa MK4 and MK3.9. Further details are provided below.
Information for the MK4 and MK3.9 owners
This is an initial release containing updates to the firmware, enabling compatibility with the MMU3 unit and the Original Prusa MK4 and MK3.9.
Please note, that this 3.0.3 release must be paired with a specific firmware version for the printer:
Original Prusa MK4/MK3.9 - Firmware 6.0.0-RC1
Information for the MK3S+ and MK3.5 owners
This firmware release 3.0.3 is not compatible with the MK3S+ or MK3.5 MMU3 setup.
List of pull requests
- CI: Call
sudo apt-get update
and updatecache
,checkout
actions by @gudnimg in #316 - Add automatic release publishing to GitHub Actions by @vintagepc in #317
- Update stale action to v9 as Node.js 16 are deprecated. by @3d-gussner in #318
- Update build.yml by @vintagepc in #320
- Autorelease workflow... take 3 by @vintagepc in #321
- Add version information at fixed address in flash by @leptun in #319
Full Changelog: v3.0.2...v3.0.3
3.0.2 Firmware for MMU3
Summary
- Information for the MK3.5 owners
- Information for the MK3S+ owners
- List of pull requests
This is the stable release of firmware version 3.0.2 for the MMU3 unit, primarily intended for the upcoming Original Prusa MK3.5. Further details are provided below.
Information for the MK3.5 owners
This is an initial release containing updates to the firmware, enabling compatibility with the MMU3 unit and the Original Prusa MK3.5.
Please note, that this 3.0.2 release must be paired with an upcoming specific firmware version for the MK3.5. Once the printer firmware is prepared, it will be published on GitHub, with further instructions on how to use the MMU3 with MK3.5.
Information for the MK3S+ owners
This firmware is primarily focused on adding support for the MK3.5. There are no changes for MK3S+ owners, therefore updating the firmware is not needed.
Nevertheless, there will be a possibility to update your unit, but please note that this 3.0.2 release must be paired with an upcoming specific firmware version for the MK3S+. Once the printer firmware is ready, it will be published on GitHub, along with additional information.
List of pull requests
- Update trademarks wording by @DRracer in #296
- Remove private and use Unit by @3d-gussner in #297
- Redirect Question template over to GH discussions by @3d-gussner in #298
- Add links to printer FW repos for reporting actual bugs or issues. by @vintagepc in #300
- Add pr-size and stale actions. by @3d-gussner in #299
- cut filament: remove two unused constants by @gudnimg in #305
- Add Actions firmware build by @vintagepc in #304
- Update CMakeLists.txt by @vintagepc in #311
- Update PR size to show by @3d-gussner in #310
- Fix cmake by @3d-gussner in #306
- BFW-3317: New filenames for hex files by @3d-gussner in #307
- Add cutLength register (0x23) by @DRracer in #312
- Add RawProgressCode & ProgressCode::_cnt by @CZDanol in #313
- @CZDanol made their first contribution in #313
Full Changelog: v3.0.1...v3.0.2
3.0.1 Firmware for MMMU3
What's Changed
- catch2: Fix build with gcc13 by @wavexx in #284
- CircularIndex: Fix non-power-of-two sizes by @wavexx in #283
- optimisation: Add
<<
operator toErrorCode
by @gudnimg in #286 - Move MMU registers into PROGMEM by @gudnimg in #287
- Introduce bowden length RW register (no runtime autotune) by @DRracer in #289
- Change USB strings by @DRracer in #290
- cmake: Set source epoch from the HEAD commit by @wavexx in #291
- Various optimisations by @gudnimg in #292
- Update to MMU3 by @3d-gussner in #293
- First update of README by @3d-gussner in #295
- Add License by @3d-gussner in #294
Full Changelog: v3.0.0...v3.0.1
3.0.0 Firmware for MMMU3
Initial release
- Stale issue workflow by @vintagepc in #2
- Build enviroment by @DRracer in #1
- Add first unit test by @DRracer in #7
- Minor changes to CMakeLists.txt by @leptun in #8
- GPIO hal prototype by @leptun in #9
- SPI hal by @leptun in #11
- Protocol implementation by @DRracer in #10
- USART hal prototype by @leptun in #14
- Buttons module implementation by @DRracer in #12
- Add interface module for driving LEDs by @DRracer in #13
- Add vscode configuration by @DRracer in #16
- Take over permanent storage implementation from MM-control-01 by @DRracer in #15
- Add basic motion API by @DRracer in #17
- Finda by @DRracer in #18
- Logic layer prototype by @DRracer in #19
- Toolchain path fixes by @wavexx in #20
- Define missing definition of CMAKE_OBJDUMP by @wavexx in #22
- Add global state hive by @DRracer in #21
- SHR16 by @leptun in #24
- Fix usart not working by @leptun in #25
- SHR16 tmc control by @leptun in #28
- Logic layer unit tests by @DRracer in #23
- Logic layer Eject filament unit tests by @DRracer in #26
- Logic layer Unload filament unit tests by @DRracer in #27
- Qualify leds::Mode in LED to fix build by @wavexx in #31
- Define the global Timebase instance by @wavexx in #30
- Remove invalid/useless test sizeof(ptr) == 4 by @wavexx in #34
- Clean up circular buffer implementation by @DRracer in #35
- Add prototypes of remaining logic layer's unit tests by @DRracer in #29
- Call LED::Step() correctly by @wavexx in #32
- Simple config header with example by @vintagepc in #39
- Verify and fix Tool Change state machine + unit tests by @DRracer in #38
- Verify Cut filament state machine + update unit tests by @DRracer in #37
- Cut filament - test all filament slots by @DRracer in #40
- Add initial AVR PROGMEM abstraction in hal::progmem by @wavexx in #44
- Revise the TMC2130 interface for stepping by @wavexx in #43
- GPIO improvements and stub by @wavexx in #42
- Start using config.h by @DRracer in #41
- Split CircularBuffer into CircularIndex+CircularBuffer by @wavexx in #45
- Disable preprocessor code indentation by @dragomirecky in #49
- Reformat CMake by @dragomirecky in #50
- Fix CMake "files" expression in pre-commit by @wavexx in #51
- Add this project to Holly by @dragomirecky in #52
- Shim on AVR by @wavexx in #48
- CMake-related changes by @dragomirecky in #53
- pre-commit: handle cmake files in subdirectories by @wavexx in #55
- GPIO fixes by @wavexx in #54
- Code coverage profiling using gcov and lcov by @vintagepc in #36
- HAL adc by @leptun in #56
- Fix buttons unit tests after ADC update by @DRracer in #58
- Add sending of response messages by @DRracer in #59
- WIP: Motion API by @wavexx in #47
- Fix TMC2130 stub by @DRracer in #60
- Fix FW build - define (empty) TMC2130::Init by @DRracer in #61
- Fix dependency downloading (clang-format) by @dragomirecky in #62
- Add error handling and reporting documentation by @DRracer in #68
- buttons: Fix comment by @leptun in #70
- Support CR XOR LF in protocol's line ending implementation by @DRracer in #75
- Rename ISR -> Isr to avoid clash with AVR libc ISR #define by @DRracer in #73
- Add support for reporting MMU errors via S3 msg by @DRracer in #72
- Avoid repeated Enable/Disable on an axis if already in desired state by @DRracer in #74
- Motion units by @wavexx in #71
- [WIP] tmc2130 implementation by @leptun in #65
- Allow units to be scaled by an unitless quantity by @wavexx in #76
- Improve error codes by @DRracer in #66
- Set real slot positions for the Idler and Selector by @DRracer in #69
- millis interrupt by @leptun in #78
- Introduce short namespace aliases by @DRracer in #77
- Allow configurable LED's blinking period by @DRracer in #79
- Do not blink the left LED on start by @DRracer in #81
- Handle slot indices out of range correctly at top level by @DRracer in #80
- Fix encoding of Query responses for high numbers of errors by @DRracer in #83
- Improve documentation of the startup process by @DRracer in #82
- Complete high-level Motion tests by @wavexx in #84
- Make cmake show verbose errors on failure by @wavexx in #85
- Correct motor pins by @wavexx in #87
- Fix LEDs orienation by @leptun in #92
- Add -fno-rtti to ensure no RTTI is generated by @wavexx in #88
- Add (and fix) axis enable tests in Motion/TMC2130 by @wavexx in #94
- Fix physical axis units for all axes by @wavexx in #96
- Implement an initial Motion ISR for AVR by @wavexx in #89
- Extract feedrates of Idler and Selector into config.h by @DRracer in #102
- Fix gpio::TogglePin on AVR by @wavexx in #104
- Use operators for min/max by @wavexx in #103
- Optimize timer multiplexing and increase stepTimerQuantum by @wavexx in #105
- Silence motion::Isr() unused variable warning by @wavexx in #106
- Update motor currents by @wavexx in #107
- Implement move chaining and end-speed control by @wavexx in https...