mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-12-29 10:40:34 -07:00
Add printer definitions for Sovol SV08.
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 (by copying, so as to stay independent of voron2_base is changed) 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. We also use the new Cura 5.8 conditionals to reduce the extrusion amount for finer nozzles than 0.4mm, as we get Klipper errors otherwise. 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.
This commit is contained in:
parent
2a45cf3274
commit
1ca58824ac
9 changed files with 297 additions and 0 deletions
131
resources/definitions/sovol_sv08.def.json
Normal file
131
resources/definitions/sovol_sv08.def.json
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Sovol SV08",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "See voron2_base",
|
||||
"manufacturer": "Sovol 3D",
|
||||
"preferred_variant_name": "0.4mm Nozzle",
|
||||
"quality_definition": "sovol_sv08",
|
||||
"variants_name": "Nozzle Size",
|
||||
"platform": "sovol_sv08_buildplate_model.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"exclude_materials": [],
|
||||
"first_start_actions": [ "MachineSettingsAction" ],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"machine_extruder_trains": { "0": "voron2_extruder_0" },
|
||||
"preferred_material": "generic_abs",
|
||||
"preferred_quality_type": "fast"
|
||||
},
|
||||
"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 ; Move to zero\nG90 ; Absolute positioning\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 ; Absolute positioning (START_PRINT might have changed it)\nG1 X0 F9000\nG1 Y20\nG1 Z0.600 F600\nG1 Y0 F9000\nM400\nG91 ; Relative positioning\nM83 ; Relative extrusion\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\n{if machine_nozzle_size >= 0.4}\n; Standard Sovol blob and purge line.\nG1 E25 F300 ; Purge blob\nG4 P1000 ; Wait a bit to let it finish\nG1 E-0.200 Z5 F600 ; Retract\nG1 X88.000 F9000 ; Move right and then down for purge line\nG1 Z-5.000 F600\nG1 X87.000 E20.88 F1800 ; Purge line right\nG1 X87.000 E13.92 F1800\nG1 Y1 E0.16 F1800 ; Small movement back for next line\nG1 X-87.000 E13.92 F1800 ; Purge line left\nG1 X-87.000 E20.88 F1800\nG1 Y1 E0.24 F1800 ; Small movement back for next line\nG1 X87.000 E20.88 F1800 ; Purge line right\nG1 X87.000 E13.92 F1800\nG1 E-0.200 Z1 F600\n{else}\n; The default start G-code uses too high flow for smaller nozzles,\n; which causes Klipper errors. Scale everything back by\n; (0.25/0.4)^2, i.e., for 0.25mm nozzle. This should be good\n; enough for 0.2mm as well.\nG1 E8 F300 ; Purge blob\nG4 P1000 ; Wait a bit to let it finish\nG1 E-0.078 Z5 F600 ; Retract\nG1 X88.000 F9000 ; Move right and then down for purge line\nG1 Z-5.000 F600\nG1 X87.000 E8.16 F1800 ; Purge line right\nG1 X87.000 E5.44 F1800\nG1 Y1 E0.063 F1800 ; Small movement back for next line\nG1 X-87.000 E5.44 F1800 ; Purge line left\nG1 X-87.000 E8.16 F1800\nG1 Y1 E0.094 F1800 ; Small movement back for next line\nG1 X87.000 E8.16 F1800 ; Purge line right\nG1 X87.000 E5.44 F1800\nG1 E-0.078 Z1 F600\n{endif}\nM400 ; Wait for moves to finish\nG90 ; Absolute positioning\nM82 ; Absolute extrusion mode\n" },
|
||||
"machine_end_gcode": { "default_value": "END_PRINT\n" },
|
||||
"acceleration_enabled": { "default_value": false },
|
||||
"acceleration_layer_0": { "value": 1800 },
|
||||
"acceleration_print": { "default_value": 2200 },
|
||||
"acceleration_roofing": { "value": 1800 },
|
||||
"acceleration_travel_layer_0": { "value": 1800 },
|
||||
"acceleration_wall_0": { "value": 1800 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"alternate_extra_perimeter": { "default_value": true },
|
||||
"bridge_fan_speed": { "default_value": 100 },
|
||||
"bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" },
|
||||
"bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" },
|
||||
"bridge_settings_enabled": { "default_value": true },
|
||||
"bridge_wall_coast": { "default_value": 10 },
|
||||
"cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" },
|
||||
"cool_fan_full_layer": { "value": 4 },
|
||||
"cool_fan_speed_min": { "value": "cool_fan_speed" },
|
||||
"cool_min_layer_time": { "default_value": 15 },
|
||||
"cool_min_layer_time_fan_speed_max": { "default_value": 20 },
|
||||
"fill_outline_gaps": { "default_value": true },
|
||||
"gantry_height": { "value": 30 },
|
||||
"infill_before_walls": { "default_value": false },
|
||||
"infill_enable_travel_optimization": { "default_value": true },
|
||||
"jerk_enabled": { "default_value": false },
|
||||
"jerk_roofing": { "value": 10 },
|
||||
"jerk_wall_0": { "value": 10 },
|
||||
"layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" },
|
||||
"line_width": { "value": "machine_nozzle_size * 1.125" },
|
||||
"machine_acceleration": { "default_value": 1500 },
|
||||
"machine_endstop_positive_direction_x": { "default_value": true },
|
||||
"machine_endstop_positive_direction_y": { "default_value": true },
|
||||
"machine_endstop_positive_direction_z": { "default_value": false },
|
||||
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-35, 65],
|
||||
[-35, -50],
|
||||
[35, -50],
|
||||
[35, 65]
|
||||
]
|
||||
},
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_steps_per_mm_x": { "default_value": 80 },
|
||||
"machine_steps_per_mm_y": { "default_value": 80 },
|
||||
"machine_steps_per_mm_z": { "default_value": 400 },
|
||||
"meshfix_maximum_resolution": { "default_value": 0.01 },
|
||||
"min_infill_area": { "default_value": 5.0 },
|
||||
"minimum_polygon_circumference": { "default_value": 0.2 },
|
||||
"optimize_wall_printing_order": { "default_value": true },
|
||||
"retraction_combing": { "value": "'noskin'" },
|
||||
"retraction_combing_max_distance": { "default_value": 10 },
|
||||
"retraction_hop_enabled": { "default_value": true },
|
||||
"retraction_prime_speed":
|
||||
{
|
||||
"maximum_value_warning": 130,
|
||||
"value": "math.ceil(retraction_speed * 0.4)"
|
||||
},
|
||||
"retraction_retract_speed": { "maximum_value_warning": 130 },
|
||||
"retraction_speed":
|
||||
{
|
||||
"default_value": 30,
|
||||
"maximum_value_warning": 130
|
||||
},
|
||||
"roofing_layer_count": { "value": 1 },
|
||||
"skirt_brim_minimal_length": { "default_value": 550 },
|
||||
"speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" },
|
||||
"speed_roofing": { "value": "math.ceil(speed_print * 0.33)" },
|
||||
"speed_slowdown_layers": { "default_value": 4 },
|
||||
"speed_topbottom": { "value": "math.ceil(speed_print * 0.33)" },
|
||||
"speed_travel":
|
||||
{
|
||||
"maximum_value_warning": 501,
|
||||
"value": 300
|
||||
},
|
||||
"speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" },
|
||||
"speed_wall": { "value": "math.ceil(speed_print * 0.33)" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" },
|
||||
"speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" },
|
||||
"travel_avoid_other_parts": { "default_value": false },
|
||||
"wall_line_width": { "value": "machine_nozzle_size" },
|
||||
"wall_overhang_angle": { "default_value": 75 },
|
||||
"wall_overhang_speed_factor": { "default_value": 50 },
|
||||
"zig_zaggify_infill": { "value": true }
|
||||
}
|
||||
}
|
||||
19
resources/extruders/sovol_sv08_extruder.def.json
Normal file
19
resources/extruders/sovol_sv08_extruder.def.json
Normal file
|
|
@ -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 }
|
||||
}
|
||||
}
|
||||
BIN
resources/meshes/sovol_sv08_buildplate_model.stl
Normal file
BIN
resources/meshes/sovol_sv08_buildplate_model.stl
Normal file
Binary file not shown.
|
|
@ -0,0 +1,26 @@
|
|||
[general]
|
||||
definition = sovol_sv08
|
||||
name = Standard Quality
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_abs
|
||||
quality_type = standard
|
||||
setting_version = 25
|
||||
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
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
[general]
|
||||
definition = sovol_sv08
|
||||
name = Standard Quality
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_petg
|
||||
quality_type = standard
|
||||
setting_version = 25
|
||||
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
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
[general]
|
||||
definition = sovol_sv08
|
||||
name = Standard Quality
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_pla
|
||||
quality_type = standard
|
||||
setting_version = 25
|
||||
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
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
[general]
|
||||
definition = sovol_sv08
|
||||
name = Standard Quality
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_tpu
|
||||
quality_type = standard
|
||||
setting_version = 25
|
||||
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
resources/quality/sovol/sovol_sv08_global.inst.cfg
Normal file
30
resources/quality/sovol/sovol_sv08_global.inst.cfg
Normal file
|
|
@ -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
resources/variants/sovol/sovol_sv08_0.4.inst.cfg
Normal file
13
resources/variants/sovol/sovol_sv08_0.4.inst.cfg
Normal file
|
|
@ -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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue