/sovol-sv06-plus-firmware

A fork of Sovol's Marlin firmware for the SV06 Plus 3D printer

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Sovol SV06 Plus firmware

This is a customized version of Sovol's Marlin firmware for the SV06 Plus 3D printer.

Disclaimer

This firmware is experimental. Using any third party or custom software carries risks, including damage to your printer. I am not responsible for any undesired behavior or damage this firmware may cause. If you are not comfortable with these risks, do not use this firmware.

New features

  • On bed leveling (G29) completion, return the LCD to the leveling screen. Originally the LCD would get stuck displaying the final leveling grid with no option to exit if G29 were invoked via serial.

  • Using M73, display progress and remaining time on the LCD just like when printing from the SD card. The LCD's print cancel button now works to stop the print, so long as the client supports the cancel host action (which Octoprint does). This is adapted from the LCD branch of daleye's fork.

Photo of Sovol SV06 Plus LCD showing progress during USB print

Branch information

This main branch is Sovol's Marlin changes for the SV06 Plus merged into upstream Marlin, with additional custom functionality.

The main-upstream branch is similar but without new additional features.

Repository structure

Sovol's firmware for the SV06 Plus is based on Marlin 2.0.9.2. It is published within the MarlinSV06Plus directory within their SV06 Plus repository.

This repository merges the official Marlin repository with Sovol's changes, with additional features on top.

Two additional branches are available to identify Sovol's changes from Marlin 2.0.9.2:

  • sovol-marlin-merged: A simple merge of Marlin 2.0.9.2 and Sovol's firmware source code, preserving all changes
  • sovol-marlin-merged-minimal: A reduced merge of Marlin 2.0.9.2 and Sovol's firmware source code, removing non-functional changes and whitespace errors to produce a minimal set of functional changes.

Some upstream Marlin paths have been renamed to avoid collisions:

Building the firmware

The firmware (Marlin) is built with a tool called platformio, which is a Python package. Install this tool with pip (or similar tool such as pipx):

pip install platformio

Build the firmware:

platformio run -e STM32F103RET6_sovol_maple

The built firmware is in .pio/build/STM32F103RET6_sovol_maple/ named using the format firmware-YYYYMMDD-HHMMSS.bin.

Installing the firmware

The firmware is updated using a microSD card.

Sovol has an official firmware update video. While the video says the microSD card must be formatted as FAT32 with a 4KiB (4096 byte) block size, I could not get the firmware to update on my printer with my microSD card formatted this way. However, using my microSD cards' default formatting of FAT32 with a 512 block size worked fine, so long as the card was 16GiB or less.

Update steps:

  • Remove all other files and folders from the microSD card.
  • Copy the built firmware .bin file to your microSD card.
    • Important note: The printer's mainboard remembers the file name from the previous firmware update, so ensure the new firmware file is named differently from the previous update (e.g. use fw2.bin if fw1.bin was used last time). The board only seems to remember the single previous filename. Also note that for this comparison, the board may be using only the first 6-8 characters of the file name (e.g. ancient MS-DOS filename shortening, long_file_name.bin -> long_f~1.bin).
  • Unmount / eject / safely remove the microSD card from your computer.
  • Turn off your printer.
  • Insert the microSD card into your printer's microSD card slot.
  • Turn on your printer.

The SV06 Plus LCD will show the Sovol logo, which will appear to freeze for several seconds. When the firmware update is complete, the LCD animation of the extruder printing Sovol's logo will continue as normal. If the LCD remains frozen for more than 30 seconds or so, the firmware update process has failed.

Firmware restoration / recovery

If the firmware update process fails, the board will need to be re-flashed with a working firmware such as Sovol's official SV06 Plus firmware. The process is the same as above, but using Sovol's official firmware image file.

Sovol publishes firmware updates here. Their SV06 Plus firmware link points to this Google Drive folder. As a last resort, I am including a copy of Sovol's official SV06 Plus firmware (version 1.1.5) in this repository as .static/SV06 Plus_V1.1.5_0324.bin.

License

The Sovol SV06 Plus firmware is based on Marlin and is licensed under the GNU General Public License v3.0.