Repository Summary
Description | Unofficial Firmware for the Prusa 32 Bit Boards |
Checkout URI | https://github.com/snake-edition/p32-fw.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-17 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
magic_enum | 0.9.5 |
README
Snake Mini
Wanted
FW developer, testers, and graphic designers are welcome.
Unofficial Firmware for the Prusa Mini and Mini+
Alternative FW for the Prusa Mini. There’s quite few improvements:
-
Hotend fan speed: Adds a menu option to unlock the hotend fan speedand increase it from the Prusa Firmware’s default 38% to anywhere from 50-100%. -
Skew compensation: Turns on skew compensation in Marlin and allows it to be configured with
M852
. -
OctoPrint screen: Adds support forM73
(print progress) andM117
(LCD messages). - ~~ PID tuning: ~~
- Max Temps: Raises the maximum bed temperature from 100C to 110C and nozzle temperature from 275C to 285C (use with caution!).
- Settings during print: You can change Snake settings during printing.
-
Faster nozzle cooling: If you wait for nozzle cooling before MBL, you can call
M109 R170 C
which uses print fan to speed up cooling. - Game: Instead of printing you can enjoy simple game.
Bigger time: Printing and remaining time is now bigger.-
Selftest check: Now you can select
Ignore
to immediately pass all selftests. Temperature calibration: You can calibrate PID temperature control for your hotend/bed directly from the menu. Calibration does 5 cycles.Total time: Elapsed, Remaining and Total or End time are shown during printing.- Change filament: Change of filament in Tune menu is moved to submenu to avoid unwanted interruption.
- Adjust brightness: You can change brightness of the display. It does not dim the light but draws darker colors.
- Cold mode (min.temp.): If you enable Cold Mode, temperatures (once set) won’t drop below 30°C. For safety reasons cold mode must be enabled after every start of the printer.
-
Show MBL and tilt: After mesh bed leveling (G29) you can go to
Snake Settings
and see the MBL Z levels at the measured points and check the tilt of the axes. Levels are shifted to avoid negative numbers. - Speed up: Parking, unparking and other moves are done faster.
- Different printers: Next to a standard version, other version are released:
- coreXY
- i3 MK3.3 (i3 MK3 with MINI board, MINI display, Z motor split, and mosfet on heating)
- Different languages
- Avoid display flashing: Some displays flash with original FW.
- High geared extruder: Allow up to 2000 steps/mm for extruder.
- Adjustable bed size: FW can be used for arbitrary bed size. This includes long bed HW.
Feed the Snake
This FW is developed in spare time. If you like it, please consider supporting further development and updates by becoming a patron.
Installing
Jailbreak your Mini
You will need to cut out Prusa’s appendix to install custom firmware. Follow the instructions here. This is irreversible and voids the warranty, although in the US you are protected by the Magnuson-Moss Warranty Act.
Of course you could always buy a second Buddy board and run it on that one.
Alternatively, if you are good at very fine pitch soldering, you could lift the BOOT0 pin off the board entirely and make your own jumpers to connect it directly to 3.3V or GND as you need (the appendix merely shorts BOOT0 directly to GND).
Once you have done that, you can live and let live-stock.
Flashing
Whenever you install new firmware, it’s good practice to make a note of your settings first, particularly your Live Z Offset and your skew coefficients. Not all FW changes keep settings saved.
Download the latest release here.
Copy the .bbf
file to the root of your USB flash drive.
Follow the instructions here
to install the firmware. The bootloader will warn you the signature is
incorrect - select “Ignore”.
First Run
If you lose your Prusa EEPROM settings during the upgrade process, when you first run the firmware, Prusa will send you to the initial calibration wizard. This can be a problem if you need to set custom e-steps before printing anything. Just skip the initial setup wizard, use the Snake Settings menu to configure your e-steps, and then rerun the setup wizard manually.
Livestock to Stock
Download Prusa’s stock firmware here. Press knob at printer startup to force-install the firmware or go to the Settings menu, scroll down to “FW Upgrade”, and change the option to “On Restart Older” (this option is only available in Snake firmware).
To reflash the board in DFU mode, see below.
Configuration
To configure Snake settings, open the Settings menu and select “Snake Settings”.
Configuring E-steps
New in v1.0.7: This can now be done using Prusa’s own “Experimental Settings” menu.
Configuring Skew Compensation
The Prusa Mini+ is inherently prone to skew, by virtue of its cantilever design. It is normal to see skew on all three axes. This affects the precision of any parts you print. All three skew compensation coefficients are available for use - I for XY, J for XZ, and K for YZ.
Note it is always preferable to remove as much skew as possible through physical adjustments before using firmware skew compensation. For excellent instructions, read this post on Prusa’s forum.
See the section below for a guide on how to measure skew
and compute the coefficients. You can use the jog wheel to set
the coefficients in this menu, or use M852
. Either way, the settings
will automatically be saved to EEPROM - you do not need to use M500
.
Be sure to set Skew Correct
to On
for the settings to be used.
Be careful with large skew correction factors - it is possible to go past
the min or max travel on the X and Y axes while printing or even during
mesh bed leveling. A skew factor of e.g. 0.01 equates to
0.01 * 180mm = 1.8mm
of movement at the far end of the bed,
so your usable print area will be reduced accordingly.
Configuring PID Parameters
Prusa disabled M303 PID Autotune due to memory restraints, this may be brought back in future releases.
Calibrating Skew
Measuring skew on all three axes at once can be done by simply printing this compact calibration tower:
Use a normal layer height (0.15 or 0.2 mm) and no supports. Do not rotate the model in your slicer - it must be printed in the same orientation as supplied in the STL.
Open this spreadsheet.
Use calipers to measure the six diagonals,
conveniently labeled A to F, and type the measurements
into the spreadsheet. It will calculate your three skew correction factors.
Add the M852
command with the factors to the start G-code in your slicer.
If you want to check your calibration is accurate, print the same tower with skew correction enabled. The diagonals should then all have the same length (within measurement error of course). If not, update the table and the factors.
Flashing in DFU Mode
If the bootloader refuses to accept firmware from a USB flash drive, it’s possible to flash the board directly in DFU mode.
Compile the firmware and build a DFU file:
$ python3 utils/build.py --generate-dfu --bootloader yes
If you built it from another machine, copy it to your Pi:
$ scp build/mini_release_boot/firmware.dfu <user>@<pi-host>:~/
Put your Buddy board in DFU mode by placing a jumper across the relevant pins and resetting. If you have a 3-pin header next to the appendix (older versions of the board), put the jumper between BOOT0 and 3.3V. If you have a 2-pin header, just add a jumper.
Then flash from your Pi:
$ lsusb
Bus 001 Device 010: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
$ sudo apt install dfu-util
$ dfu-util -a 0 -D firmware.dfu
Don’t forget to remove the jumper before resetting.
Attribution
Snake FW is
- based on Llama Mini Firmware
- based on Prusa Firmware Buddy
- based on Marlin Firmware
Precise information of who did what can be obtained by git blame
command or by Blame
button in the Github file reader.