Unofficial custom firmware for the Original Prusa MK3.5 / MK3.5S, based on official Prusa-Firmware-Buddy v6.5.3.
This firmware adds experimental tuning options for Bondtech LGX / LGX Shortcut and similar third-party extruder setups while keeping the original Prusa firmware behavior as close as possible.
More information, documentation and related 3D printing projects: INVESTEGATE.de
- Latest release
- Compatibility
- Important warning
- Custom firmware flashing / appendix seal
- Installation
- How to open the Experimental menu
- Screenshots
- Main features
- Recommended LGX setup
- Defaults
- Before flashing
- After flashing
- Test status
- Not included in v1.0
- Planned future ideas
- Project notes and contributions
- Support the project
- Upstream project
- Disclaimer
Current release:
v1.0 / 6.5.3 MOD v1.0
Download the firmware from the GitHub Releases page:
Firmware file:
mk3.5_firmware_6.5.3_MODv1.0.bbf
Do not use the automatically generated source code ZIP/TAR files for flashing.
Supported printers:
- Original Prusa MK3.5
- Original Prusa MK3.5S
Base firmware:
- Official Prusa-Firmware-Buddy v6.5.3
Build target:
mk3.5_release_boot
This is unofficial custom firmware.
Use it at your own risk.
Before flashing, save your current printer settings and calibration values.
After flashing, verify your settings and run a small test print before normal use.
Prusa MK3.5 / MK3.5S printers accept only officially signed firmware in their factory state.
To install unofficial custom firmware, the appendix seal on the xBuddy board must be broken first.
According to Prusa, breaking this seal does not void the printer warranty. However, custom firmware is unofficial, and Prusa does not take responsibility for damage caused by unofficial firmware.
Official Prusa instructions: Flashing custom firmware - Prusa Help
The easiest way to transfer the firmware to the printer is via Prusa Connect.
Flashing via USB is also possible.
When the flashing process begins, the printer will show a warning that unsigned firmware was detected.
Select Ignore to continue with the installation.
In testing, the printer retained all previous calibration values after flashing. This also worked when downgrading again.
Even so, it is strongly recommended to save your current values before flashing.
On the printer, open Settings.
Then press and hold Return until the Experimental Settings menu opens.
-
🟧 Orange = custom options from this mod
These options were successfully and thoroughly tested. No errors were found during testing. -
🟩 Green = Prusa developer options
These are existing developer options from Prusa and are not part of this mod itself. -
🟥 Red = planned future custom options
Future features that are not yet fully tested will later be shown in red until they have been thoroughly validated in real use.
Use these settings carefully and change only one value at a time. After changing filament handling or probe settings, run a small test print before normal use.
Screenshot of the custom splash / boot screen.
Screenshots showing the new Experimental menu entries added by this mod.
All custom mod options are highlighted in orange.
Adds a small custom firmware text to the boot / splash screen.
The original Prusa branding and boot behavior were intentionally kept as close to stock as possible.
Additional custom settings were added to the Experimental menu.
Custom mod entries are highlighted in orange to visually separate them from native Prusa menu items.
Added / modified entries include:
- Print finish melody
- Probe X position
- Probe Y position
- Reset probe position
- Initial insert length
- Fast load length
- Unload length
- Unload cooling retract
- Unload ramming scale
- Reset load/unload
- Enable EEPROM save
- Reset M500 tuning
This release adds direct M851 X/Y controls:
- Probe X position
- Probe Y position
- Reset probe position
These are direct M851 X/Y values, not relative offsets.
Stock Prusa default:
M851 X23.00 Y5.00Recommended Bondtech LGX / LGX Shortcut value:
M851 X23.00 Y12.00Important:
M851 Z / Live-Z is not changed by these menu controls.
Do not blindly copy Z values from another printer. Z / Live-Z is printer-specific and must be calibrated on your own machine.
Example only:
M851 X23.00 Y12.00 Z-1.50Your Z value will likely be different.
Reset probe position resets only Probe X/Y to Prusa defaults:
M851 X23.00 Y5.00It does not change:
- M851 Z / Live-Z
- Load / unload values
- M500 tuning values
- E-steps
- Stepper current
- Axis direction
- Print finish melody
- EEPROM save setting
The following filament handling values are configurable from the Experimental menu:
- Initial insert length
- Fast load length
- Unload length
- Unload cooling retract
- Unload ramming scale
- Reset load/unload
Controls the first slow insert / load-to-gears movement.
Used by:
- Dashboard autoload
- Menu → Filament → Load
- M600 filament change during print
Controls the later hot fast-load movement.
This remains separate from Initial insert length.
Controls the unload distance.
The maximum value is capped to:
199 mm
Reason: testing showed that single unload moves around 200 mm and above can become unreliable.
Unload chunking is intentionally not included in v1.0.
Executed after ramming and before the remaining unload.
The duration is approximately 5 seconds. The selected distance controls the retract speed.
Examples:
5 mm = approx. 1 mm/s for 5 seconds
10 mm = approx. 2 mm/s for 5 seconds
15 mm = approx. 3 mm/s for 5 seconds
0 mm disables this step.
Range:
0–150 %
Behavior:
0 % = ramming disabled
1–150 % = scaled ramming
100 % = default behavior
Reset load/unload resets only these five values:
- Initial insert length
- Fast load length
- Unload length
- Unload ramming scale
- Unload cooling retract
It does not change:
- Probe X/Y
- M851 Z / Live-Z
- M92 E
- M500 tuning values
- Axis direction
- Enable EEPROM save
- Print finish melody
- PID settings
- Stepper current
- Native Prusa settings
The print-time filament change path now respects the custom filament handling values.
Affected values:
- Initial insert length
- Fast load length
- Unload length
- Unload cooling retract
- Unload ramming scale
This improves tuning for LGX / LGX Shortcut and similar third-party extruder setups.
Notes:
- The MK3.5 UI filament-change path uses the stubbed M600 / Pause FSM path.
- Auto Retract was not changed.
- Marlin M603 / M503 compatibility was preserved.
Adds an optional print finish melody.
Default:
Off
When enabled, the melody plays only after a successful print finish.
It does not play on:
- Cancel
- Abort
- Pause
- Filament change
- Crash
- Failed print
Melody sequence:
M300 S1200 P150
G4 P200
M300 S1500 P150
G4 P200
M300 S1800 P300
G4 P500This release includes safeguards and fixes for:
- preserving axis direction signs
- keeping M603 compatibility
- synchronizing terminal
M851 X/Ywith the menu - protecting
M851 Z/ Live-Z duringM502 - keeping Probe X/Y reset separate from Live-Z
- keeping load/unload reset separate from other tuning values
M502 resets runtime X/Y probe position to factory defaults but preserves the current Z / Live-Z value.
Example before:
M851 X23.00 Y12.00 Z-1.50Expected after M502:
M851 X23.00 Y5.00 Z-1.50So:
- X/Y return to Prusa factory defaults
- Z / Live-Z remains unchanged
For Bondtech LGX / LGX Shortcut:
Probe X position: 23
Probe Y position: 12
Then verify with:
M503Expected example:
M851 X23.00 Y12.00 Z<your Live-Z>Do not copy another printer’s Z / Live-Z value.
This release does not change extruder current.
A typical MK3.5 value seen in M503 is:
M906 T0 E490This means 490 mA and is within the typical practical range for LGX-style setups.
| Setting | Default |
|---|---|
| Probe X position | 23 |
| Probe Y position | 5 |
| Initial insert length | 45 mm |
| Fast load length | 45 mm |
| Unload length | 45 mm |
| Unload ramming scale | 100 % |
| Unload cooling retract | 0 mm |
| Print finish melody | Off |
| Enable EEPROM save | Off |
Save your current settings:
M503Keep a copy of the full output.
Important values to note:
- M851 X/Y/Z
- M92 E
- M906 E
- M603 L/U
- Live-Z / First Layer Calibration value
- Existing custom load/unload values
Run:
M503Check:
- Probe/M851 X/Y/Z
- Live-Z / First Layer Calibration
- Extruder steps
- Extruder current
- Load/unload values
For LGX / LGX Shortcut:
Probe X position: 23
Probe Y position: 12
Then run a small test print.
The orange custom menu options included in this mod were successfully and thoroughly tested.
Tested before release:
- Firmware boots
- Menu structure works
- Load / unload works
- M600 filament change during print works
- Probe X/Y menu works
- M851 X/Y synchronization works
- M502 preserves M851 Z / Live-Z
- Print finish melody works as optional feature
mk3.5_release_bootbuild completed successfully- Final test print completed successfully
No errors were found during testing of the orange custom mod options.
The following features are intentionally not included in v1.0:
- Microstep switching
- E-step / microstep menu
- Extruder current menu
- Speed / acceleration hardware-limit overrides
- Fan overdrive
- Fan startup boost
- Heater / thermistor selection
- Unload chunking above 199 mm
- Auto Retract changes
- Special “Off” text for 0 % ramming scale
Reason: v1.0 is intended to stay focused and stable.
Possible v1.1+ topics:
- Hotend heater selection
- Hotend thermistor selection
- Heatbed thermistor / sensor selection
- LGX preset profiles
- Third-party extruder profiles
- Extruder current tuning
- Microstep / E-step integration
- Advanced speed and acceleration limit controls
- Improved UI labels / help texts
- Optional unload chunking
Future custom options that are added before full real-world validation are planned to be shown in red until they have been thoroughly tested.
Heater and thermistor support is safety-critical and must be implemented carefully with correct temperature tables, limits, PID behavior and thermal runaway protection.
This project was only possible with the help of ChatGPT Plus and Codex as development assistance tools.
Additional developers, testers and contributors are welcome.
Feature requests, ideas and suggestions can be submitted through GitHub issues.
Please note that I currently only own and test with a Bondtech LGX Shortcut setup. Other extruders, hotends, heaters or thermistor configurations cannot be properly validated by me without access to the required hardware.
Support for additional hardware should therefore be developed and tested together with users or developers who actually own that hardware.
When reporting issues or requesting support, please include as much information as possible, for example:
- Printer model
- Extruder and hotend setup
- Firmware version used
- Relevant
M503output - Steps to reproduce the issue
- Photos or screenshots if helpful
I also publish related articles, guides and 3D printing projects on my blog:
If this firmware helps you, you can support the project here:
This custom firmware is based on the official open-source Prusa-Firmware-Buddy project by Prusa Research:
This is unofficial custom firmware.
It is not made, approved or supported by Prusa Research or Bondtech.
Use at your own risk.
Always verify your printer settings after flashing and run a small test print before normal use.



