Skip to content

Commit

Permalink
Add printer definitions for Sovol SV08.
Browse files Browse the repository at this point in the history
The SV08 (or SV-08; nomenclature is not completely consistent)
is a relatively new printed based on Voron 2.4, running Klipper.
This adds printer, extruder and material definitions for it,
based on the voron2_base definitions plus Sovol's published profiles
for Orca Slicer:

  https://drive.google.com/drive/folders/1KWjLxwpO_9_Xqi_f6qu84HRxZi26a_GN

Unfortunately, the included STL model for the platform does not have
texture coordinates, so we cannot use the platform texture (unless someone
goes to add them manually or otherwise adjusts the model).

The following settings were not carried over, mostly because I could not
find any obvious equivalent in Cura:

  - Machine:
    "retract_before_wipe": [ "0%" ],
    "machine_max_acceleration_extruding": [ "20000" ],
    "machine_max_acceleration_retracting": [ "5000" ],
    "retract_length_toolchange": [ "2" ],
    "wipe_distance": [ "2" ],
    "retract_lift_below": [ "343" ],
    "thumbnails_format": "PNG",
    "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0",

  - Filament (using ABS as an example; the exact values differ between
    the four material profiles):
    "nozzle_temperature_range_low": [ "190" ],
    "nozzle_temperature_range_high": [ "250" ],
    "overhang_fan_threshold": [ "25%" ],
    "temperature_vitrification": [ "60" ],  # Only used for arranging.
    "close_fan_the_first_x_layers": [ "3" ],
    "full_fan_speed_layer": [ "0" ],  # Inconsistent; effectively 4.
    # Enclosure fan (M106 P3 commands)
    "activate_air_filtration": [ "1" ],
    "complete_print_exhaust_fan_speed": [ "60" ],
    "during_print_exhaust_fan_speed": [ "100" ],

  - Process: A bunch (e.g. bridge_flow, elephant_foot_compensation,
    overhang_1_4_speed, etc. etc.), but it's unclear how many are
    printer-specific and how many are just Orca defaults where Cura wants
    to do things differently.

The start and end G-code are mostly copied over verbatim, except that it
leaves the printer in relative coordinate mode and Cura does not set this
explicitly back to absolute, so we need an explicit G90 at the end. (Also,
there seems to be a Klipper issue where G90 does not reset extrusion to
absolute as well, so we need to send an explicit M82.) We give
EXTRUDER_TEMP= and BED_TEMP= as parameters to the START_PRINT macro; the
Sovol stock macros ignore these, but the popular mainline Klipper
installation can use this to e.g. bed mesh at the correct temperature.

Unfortunately, Cura chooses SS_ as prefix instead of SV08_. I don't know
if there is a way to override this; the other Sovol printers seem to have
the same issue.

I've tested this with the standard 0.4mm nozzle and ABS/PLA, using the
Moonraker plugin. PETG and TPU are untested, in part because the current
nozzle is said to be unsafe for PETG. The time estimates from Cura are not
all that good, but klipper_estimator helps. (The Klipper object exclusion
plugin is also recommended, as it allows the printer to bed mesh a smaller
area.)

Future work would include supporting the 0.2mm, 0.6mm and 0.8mm nozzles.
There are separate profiles for them, with different layer height, support
settings, print speeds, etc. -- and then there is a specific PLA/0.2mm
profile with lower printing speed and higher fan settings. Also, it would
be really good to support the enclosure fan (M106 P3, known as
exhaust_fan in Orca) for printing ABS; it's possible that something could
be done using the Cura fan control plugin, but it would be better to
simply have it right in the filament settings. Similarly, the ABS/PETG
profiles want to turn off the fan entirely the first three layers
(to improve adhesion), but Cura can only ramp linearly starting from the
first layer, not hold the first few layers constant.
  • Loading branch information
Steinar H. Gunderson authored and sesse committed Sep 21, 2024
1 parent 424ae41 commit cba5ad7
Show file tree
Hide file tree
Showing 9 changed files with 203 additions and 0 deletions.
37 changes: 37 additions & 0 deletions resources/definitions/sovol_sv08.def.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"version": 2,
"name": "Sovol SV08",
"inherits": "voron2_base",
"metadata":
{
"visible": true,
"manufacturer": "Sovol 3D",
"preferred_variant_name": "0.4mm Nozzle",
"quality_definition": "sovol_sv08",
"variants_name": "Nozzle Size",
"platform": "sovol_sv08_buildplate_model.stl"
},
"overrides":
{
"machine_depth": { "default_value": 350 },
"machine_width": { "default_value": 350 },
"machine_height": { "default_value": 345 },
"machine_name": { "default_value": "SV08" },
"retraction_amount": { "default_value": 0.5 },
"machine_max_acceleration_x": { "default_value": 40000 },
"machine_max_acceleration_y": { "default_value": 40000 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_max_acceleration_e": { "default_value": 5000 },
"machine_max_feedrate_x": { "default_value": 700 },
"machine_max_feedrate_y": { "default_value": 700 },
"machine_max_feedrate_z": { "default_value": 20 },
"machine_max_feedrate_e": { "default_value": 50 },
"machine_max_jerk_e": { "default_value": 5 },
"machine_max_jerk_xy": { "default_value": 20 },
"machine_max_jerk_z": { "default_value": 0.5 },
"retraction_min_travel": { "default_value": 1 },
"retraction_hop": { "default_value": 0.4 },
"machine_start_gcode": { "default_value": "G28\nG90\nG1 X0 F9000\nG1 Y20\nG1 Z0.600 F600\nG1 Y0 F9000\nSTART_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}\nG90\nG1 X0 F9000\nG1 Y20\nG1 Z0.600 F600\nG1 Y0 F9000\nM400\nG91\nM83\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM104 S{material_print_temperature_layer_0} ;set extruder temp\nM190 S{material_bed_temperature_layer_0} ;wait for bed temp\nM109 S{material_print_temperature_layer_0};wait for extruder temp\nG1 E25 F300\nG4 P1000\nG1 E-0.200 Z5 F600\nG1 X88.000 F9000\nG1 Z-5.000 F600\nG1 X87.000 E20.88 F1800\nG1 X87.000 E13.92 F1800\nG1 Y1 E0.16 F1800\nG1 X-87.000 E13.92 F1800\nG1 X-87.000 E20.88 F1800\nG1 Y1 E0.24 F1800\nG1 X87.000 E20.88 F1800\nG1 X87.000 E13.92 F1800\nG1 E-0.200 Z1 F600\nM400\nG90 ;absolute positioning\nM82 ;absolute extrusion mode\n" },
"machine_end_gcode": { "default_value": "END_PRINT\n" }
}
}
19 changes: 19 additions & 0 deletions resources/extruders/sovol_sv08_extruder.def.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"version": 2,
"name": "Nozzle Size",
"inherits": "fdmextruder",
"metadata":
{
"machine": "sovol_sv08",
"position": "0"
},
"overrides":
{
"extruder_nr":
{
"default_value": 0,
"maximum_value": 1
},
"material_diameter": { "default_value": 1.75 }
}
}
Binary file added resources/meshes/sovol_sv08_buildplate_model.stl
Binary file not shown.
26 changes: 26 additions & 0 deletions resources/quality/sovol/ABS/sovol_sv08_0.4_ABS_standard.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[general]
definition = sovol_sv08
name = Standard Quality
version = 4

[metadata]
material = generic_abs
quality_type = standard
setting_version = 23
type = quality
variant = 0.4mm Nozzle

[values]
cool_fan_enabled = True
cool_fan_speed = 10
cool_fan_speed_max = 30
cool_min_layer_time_fan_speed_max = 30
cool_min_layer_time = 4
cool_min_speed = 10
material_flow = 98
material_max_flowrate = 21
material_print_temperature = 270
material_print_temperature_layer_0 = 280
material_bed_temperature = 95
bridge_settings_enabled = True
bridge_fan_speed = 30
26 changes: 26 additions & 0 deletions resources/quality/sovol/PETG/sovol_sv08_0.4_PETG_standard.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[general]
definition = sovol_sv08
name = Standard Quality
version = 4

[metadata]
material = generic_petg
quality_type = standard
setting_version = 23
type = quality
variant = 0.4mm Nozzle

[values]
cool_fan_enabled = True
cool_fan_speed = 10
cool_fan_speed_max = 30
cool_min_layer_time_fan_speed_max = 30
cool_min_layer_time = 5
cool_min_speed = 10
material_flow = 98
material_max_flowrate = 17
material_print_temperature = 235
material_print_temperature_layer_0 = 250
material_bed_temperature = 75
bridge_settings_enabled = True
bridge_fan_speed = 70
26 changes: 26 additions & 0 deletions resources/quality/sovol/PLA/sovol_sv08_0.4_PLA_standard.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[general]
definition = sovol_sv08
name = Standard Quality
version = 4

[metadata]
material = generic_pla
quality_type = standard
setting_version = 23
type = quality
variant = 0.4mm Nozzle

[values]
cool_fan_enabled = True
cool_fan_speed = 50
cool_fan_speed_max = 70
cool_min_layer_time_fan_speed_max = 50
cool_min_layer_time = 5
cool_min_speed = 10
material_flow = 98
material_max_flowrate = 21
material_print_temperature = 220
material_print_temperature_layer_0 = 235
material_bed_temperature = 65
bridge_settings_enabled = True
bridge_fan_speed = 100
26 changes: 26 additions & 0 deletions resources/quality/sovol/TPU/sovol_sv08_0.4_TPU_standard.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[general]
definition = sovol_sv08
name = Standard Quality
version = 4

[metadata]
material = generic_tpu
quality_type = standard
setting_version = 23
type = quality
variant = 0.4mm Nozzle

[values]
cool_fan_enabled = True
cool_fan_speed = 80
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 50
cool_min_layer_time = 5
cool_min_speed = 10
material_flow = 98
material_max_flowrate = 3.6
material_print_temperature = 240
material_print_temperature_layer_0 = 235
material_bed_temperature = 65
bridge_settings_enabled = True
bridge_fan_speed = 100
30 changes: 30 additions & 0 deletions resources/quality/sovol/sovol_sv08_global.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[general]
definition = sovol_sv08
name = 0.20mm Standard
version = 4

[metadata]
global_quality = True
quality_type = standard
setting_version = 23
type = quality

[values]
layer_height = 0.2
speed_print = 600
speed_wall_x = 300
speed_wall_0 = 200
speed_infill = 200
speed_travel = =speed_print
skirt_brim_speed = 80
speed_ironing = 15
speed_layer_0 = 30
speed_slowdown_layers = 3
acceleration_enabled = True
acceleration_print = 20000
acceleration_wall_0 = 8000
acceleration_wall_x = 12000
acceleration_roofing = =acceleration_wall_0
acceleration_topbottom = =acceleration_wall
acceleration_layer_0 = 3000
acceleration_travel = 40000
13 changes: 13 additions & 0 deletions resources/variants/sovol/sovol_sv08_0.4.inst.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[general]
definition = sovol_sv08
name = 0.4mm Nozzle
version = 4

[metadata]
hardware_type = nozzle
setting_version = 23
type = variant

[values]
machine_nozzle_size = 0.4

0 comments on commit cba5ad7

Please sign in to comment.