Hi, Markus, thanks for sharing your printer.cfg flie. Looks like Andreas (@Andi85kuehn) says it works very well.
Have you updated/improved the printer.cfg file since December, and if so, would you mind sharing your current version?
Also, do you have any tips for setting up Klipper with an SV05 that you can share? I’m looking into trying this out and am entirely new to Klipper.
I recently found this SV05 printer.cfg file in the Sovol Facebook group Files section. I think it may be based on the printer.cfg file you posted. Wanted to share it here in case there is anything in it that might be interesting/useful.
Hopefully we can build some good information here for SV05 owners who would like to use Klipper!
# This file contains pin mappings for the stock 2022 Sovol SV05
# with the 32-bit Creality 4.2.2 board. To use this config, during
# "make menuconfig" select Enable "extra low-level configuration options", "STMicroelectronics STM32"
# with "STM32F103".
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed. Might need a renaming if printer dosnt flash.
# See docs/Config_Reference.md for a description of parameters.
[virtual_sdcard]
path: ~/printer_data/gcodes
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 # Adjust if needed
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 5
max_z_accel: 100
max_accel_to_decel: 500
square_corner_velocity: 3.0
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[safe_z_home]
home_xy_position: 74, 105 # Change coordinates to the center of your print bed
speed: 100
z_hop: 10 # Move up 10mm
z_hop_speed: 20
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 220
position_max: 220
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 220
position_max: 220
position_min: -4.5
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 300
[extruder]
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 7.394 # Adjust to youre needs
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 100.0
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
min_temp: 0
max_temp: 280
[bltouch]
sensor_pin: ^PB1
control_pin: PB0
z_offset: 1.3
x_offset: 40
y_offset: 5
[bed_mesh]
speed: 100
horizontal_move_z: 5
mesh_min: 40, 5
mesh_max: 220, 220
probe_count: 5, 5
algorithm: bicubic
fade_start: 2 # The Z height in which to start phasing out adjustment. It is a good idea to get a few layers down before starting the fade process.
fade_end: 10 # The Z height in which fade should complete
# Replace the slicer's custom start and end g-code scripts with
# START_PRINT and END_PRINT.
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}
# Start bed heating
M140 S{BED_TEMP}
# Wait for bed to reach temperature
M190 S{BED_TEMP}
# Set and wait for nozzle to reach temperature
M109 S{EXTRUDER_TEMP}
# Use absolute coordinates
G90
# Home the printer
G28
# reset extruder
G92 E0
[gcode_macro END_PRINT]
gcode:
# Turn off bed, extruder, and fan
M140 S0
M104 S0
M106 S0
# Use relative coordinates
G91
# Raise nozzle by 20mm
G1 Z20 F3000
# Move nozzle away from print while retracting
# Use absolute coordinates
G90
# reset extruder
G92 E0
#G1 X0 Y0 E-3 F3000
G0 X210 Y210 E-3 F3000
G90
# Disable steppers
M84
M106 S0
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
{% set X = params.X|default(220)|int %}
{% set Y = params.Y|default(220)|int %}
{% set Z = params.Z|default(10)|int %}
{% set E = params.E|default(1)|int %}
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
G91
G1 E-{E} F2100
G1 Z{Z}
G90
G1 X{X} Y{Y} F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% set E = params.E|default(1)|int %}
G91
G1 E{E} F2100
G90
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
BASE_RESUME
RESUME_BASE {get_params}
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
variable_park: True
gcode:
## Move head and retract only if not already in the pause state and park set to true
{% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%}
_TOOLHEAD_PARK_PAUSE_CANCEL
{% endif %}
TURN_OFF_HEATERS
CANCEL_PRINT_BASE
M106 S0
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2
[pause_resume]
Hi,
the config is not a 100% copy, but it should work in the same way.
These were my compilation instructions:
This file contains pin mappings for the stock Sovol SV05
with the 32-bit Creality 4.2.2 board (and GD32F303RET6 mcu). To use this config, during
“make menuconfig” select the STM32F103 with a “28KiB bootloader” and
serial (on USART1 PA10/PA9) communication.
you need to change the below serial: line in the mcu section to the value matching your printer
to go back to the original firmware follow the original firmware update instructions
I don’t have additional tips as the installation is straight forward if you follow i.e. the mainsailos howto.
Extruding is always an issue with this printer for me. I printed a top mounted spoolholder and removed the PTFE tube to bet a little bit better extrusion results.
Now I need to figure out a couple of things so I don’t break anything.
I had already calibrated my Z offset recently and would like to be lazy and not re-calibrate in Mainsail. Can I take my Marlin Z offset value (-0.62) and just enter that in Mainsail in the printer.cfg file? Or is that a dumb idea for some reason?
OK so I’m fully running Klipper know on my printer, and so far it’s been both more work and more difficult to set up than Ocotprint, by a good measure. I’d agree w/a 3D printing friend of mine that Klipper is for tweakers…if you just want “set it and forget it” with features like printing to your printer from the other room, monitoring job progress from your couch, etc., then Octoprint is the way to go. In some ways it’s better - it has a spool manager plugin that allows you to choose which spool you’re printing from at the start of each print, and then you can exactly monitory filmament usage on that spool and know when you’re going to run out, plan your last few prints on the spool so you don’t waste thread, etc. No such feature/add-on w/Klipper-Marlin-Fluid-Moonraker, unfortunately.
But overall Klipper looks like it will be a good platfor longer term, particularly because it means I don’t have to way for FW udpates to modify/update printer capabilities. And have to admit I enjoy futzing w/the setup, etc., now that I’ve got the basics in place.
Can you explain what you mean by “[wait] for FW [updates] to modify/update printer capabilities”?
I’ve had my SV05 for only a few hours and I’ve come across SOVOL’s GitHub where you can download the source code. From there one would make the changes they seek in something akin to PlatformIO, compile and load the firmware.bin. Am I missing something or were you not aware of that?
Or are you referring to Marlin not having features/capabilities Klipper may have?
Yes, and I’ve done that - I enabled several features in Marlin by downloading and modifying the source code from the Sovol GitHub. However, the Marlin version on their Github is not current, and updating the vanilla Marlin release to work w/the SV05 was a much more complicated and ultimately too difficult task for me. So to get the newer features and capabilities of the latest Marlin releases I would have had to wait for Sovol to update to the newer Marlin releases, which wasn’t happening.
Big news - there is an offical SV05 printer.cfg file on the Klipper Github! Happy day for those of you wanting to move to Klipper but waiting for an easier way to get started.
Hello! Thanks @Danabw for the printer.cfg - helps a lot when you are new like me to klipper and 3d printing in general.
But i am currently strugglng with the situation when the print ends.
My build plate is not moving down and the the nozzle keeps staying at the last position.
Any advice what to add to my config to get the build plate move down and shutdown everything like the printer does when not using klipper?