Custom Firmware v1.0 for Original Prusa MK3.5 / MK3.5S

This article is part of the Prusa XL Technical Series on INVESTEGATE.de

All guides assume that the Prusa XL Fundamentals are correct.
If not, start here: Prusa XL Basics – Technical Fundamentals

mk35s custom firmware

Why I Built This Firmware

I am proud to introduce my first custom firmware release for the Original Prusa MK3.5 / MK3.5S.

The main reason I started working on this project was simple: the filament load and unload behavior always bothered me on my modified setup.

On a normal printer, this may not be a big issue. But with my Bondtech LGX Shortcut setup, the stock filament handling did not always feel ideal. I could work around it manually by using Move Axis to load or unload filament by hand. That works when the printer is idle.

But during a print, especially during an M600 filament change, that workaround is not really available.

In my case, this sometimes caused filament jams, failed filament changes and even failed prints when I could not unload or reload the filament properly. That was the point where I wanted better control directly from the printer firmware.

This v1.0 release is the first result of that work. It adds menu-based tuning options for filament load, unload and M600 behavior, especially for LGX / LGX Shortcut and similar third-party extruder setups. And it also adds M500 save feature via terminal of Octoprint or Pronterface

It is based on the official Prusa-Firmware-Buddy v6.5.3 – This firmware is unofficial. It is not made, approved or supported by Prusa Research or Bondtech.

Download

The v1.0 release is available on GitHub:

Download here on GitHub

Important Warning

This is unofficial custom firmware.

Use it at your own risk.

Before flashing, save your current printer settings and calibration values. After flashing, verify all important settings and run a small test print before using the printer normally again.

At minimum, save the full M503 EEPROM output.

Appendix Seal and Custom Firmware Flashing

For MK3.5 / MK3.5S custom firmware flashing, the appendix seal on the xBuddy board must be broken first.

According to Prusa, breaking this seal does not void the printer warranty. However, unofficial custom firmware is still used at the user’s own risk, and Prusa does not take responsibility for damage caused by unknown or unverified custom firmware.

Official Prusa instructions: Flashing custom firmware

Installation Overview

The easiest way to transfer the firmware to the printer is via Prusa Connect.

USB flashing is also possible.

When the flashing process starts, the printer will show a warning that unsigned firmware was detected. Select Ignore to continue.

In my testing, previous calibration values were retained after flashing and also after downgrading again. Still, do not rely on that. Save your values first.

Recommended process:

  1. Save your current M503 output.
  2. Save your Live-Z / First Layer Calibration value.
  3. Transfer the .bbf firmware file to the printer.
  4. Start the firmware update.
  5. Confirm the unsigned firmware warning with Ignore.
  6. After flashing, check M503, M851.
  7. Test and set filament load, unload distances in the experimental menu.
  8. Run a first layer check.
  9. Run a small test print.

Opening the Experimental Menu

On the printer:

  1. Open Settings.
  2. Press and hold Return.
  3. Keep holding until Experimental Settings opens.

Menu Color Coding

The custom Experimental menu uses color coding to separate different types of options:

All orange options included in v1.0 were tested thoroughly on my own setup. No errors were found during testing.

Main Features

Extra Experimental Menu Entries

v1.0 adds several new entries to the Experimental menu:

  • 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

These options are mainly intended for advanced users and modified printer setups.

Direct M851 X/Y Controls

This firmware adds direct M851 X/Y controls in the printer menu.

These are direct M851 X/Y values, not relative offsets.

Stock Prusa default: (Reset defaults)

Bondtech LGX Shortcut target used by me:

Important:

Do not copy another printer’s Z value. Your Live-Z must be calibrated on your own printer!

Load / Unload Tuning

This release adds adjustable values for filament handling:

  • Initial insert length
  • Fast load length
  • &
  • Unload length
  • Unload cooling retract
  • Unload ramming scale

These settings are useful for LGX / LGX Shortcut and similar third-party extruder setups where the stock filament handling may not fit perfectly.

Initial Insert Length

Controls the first slow insert / load-to-gears movement.

Used by:

  • Dashboard autoload
  • Menu → Filament → Load
  • M600 filament change during print

Fast Load Length

Controls the later hot fast-load movement.

This remains separate from Initial insert length.

Unload Length

Controls the unload distance. 0 to 199mm

Unload Cooling Retract

Executed after ramming and before the remaining unload.

The duration is 5 seconds. The selected distance controls the retract speed.

Examples:

0 mm disables this step. Up to 20mm.

Unload Ramming Scale

Controls ramming behavior during unload.

Typical behavior:

The print-time filament change path now respects the custom filament handling values.

Persistent Storage via M500

This firmware adds support for persistent saving of the custom tuning values via M500.

That means the custom menu values can be saved permanently instead of being temporary runtime values only.

Screenshots

Recommended LGX / LGX Shortcut Values

Recommended starting values for my Bondtech LGX Shortcut setup:

Prusa Stock Defaults

Default values:

Test Status

All orange custom options included in v1.0 were tested thoroughly on my setup.

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_boot build completed successfully
  • Final test prints completed successfully

No errors were found during testing of the orange custom mod options.

Hardware Limitation of My Testing

I only have a Bondtech LGX Shortcut setup.

That means I cannot properly test other extruders, hotends, heaters or thermistors myself.

Additional hardware support should be developed and tested together with users or developers who actually own that hardware.

This is especially important for heater and thermistor support. That area is safety-critical and must be handled carefully with correct temperature tables, limits, PID behavior and thermal runaway protection.

Not Included in v1.0

The following features are not included in v1.0:

  • No Revo-specific support
  • No heater / thermistor profiles
  • No hotend temperature limit changes
  • No extruder current menu
  • No microstep switching menu
  • No motion limit profile system
  • No automatic extruder profile selection

v1.0 is intentionally focused on a smaller feature set that could be tested properly.

Planned Future Ideas

Possible future topics:

  • Better third-party extruder profiles
  • Possible hotend / thermistor support if tested on real hardware
  • More motion / acceleration related controls
  • Better UI grouping
  • Red color for new untested experimental options until tested

These are ideas, not promises.

Future custom options that are added before full real-world validation should be marked clearly until they have been tested properly.

Reporting Issues and Feature Requests

If you report an issue or suggest a feature, please include as much information as possible.

Feature requests and suggestions can be submitted here on GitHub.

Additional developers and testers are welcome! 🙂

- 💌 -Don’t miss these tips!

We don't send spam! By registering, you agree to receive our email newsletter and agree to our privacy policy.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Nach oben scrollen