feat(profiles): add Lulzbot Mini 1 (#15476)

Adds the LulzBot Mini 1 (single extruder, 0.5 mm nozzle, 2.85 mm filament)
to the existing Lulzbot vendor, which previously shipped only TAZ models.

Values are taken from LulzBot's own current slicer configuration
(github.com/lulzbot3d/CuraLE) rather than estimated:

  - geometry and custom g-code from resources/definitions/single_mini_mini_1.def.json
    and resources/gcodes/mini_1/{mini_1_start,mini_1_end}.gcode
  - filament temperatures and cooling from resources/materials/*.xml.fdm_material,
    overridden by resources/quality/single_mini/<material>/*.inst.cfg

The start g-code reproduces the Mini's nozzle wipe and four-washer G29 probe,
with the filament-type temperature conditionals used by the sibling TAZ profiles.

One deliberate departure from current CuraLE: the pre-wipe retract is 30 mm,
the value used by Cura LE 4.13.x, rather than the 4 mm current CuraLE uses.
The Mini probes by electrical contact between nozzle and washer, so the nozzle
must stay clean through the wipe and all four touches. At 4 mm the melt zone
stays full and can ooze onto a washer, which caused auto-levelling failures on
hardware; 30 mm empties it. The cost is a ~24 s purge at print start.

The three filament presets follow docs/HLSD/filament_id.md rule 4: a vendor
tuning a generic material inherits Generic X @System, keeps the Generic X base
name and declares no filament_id, so identity stays with OrcaFilamentLibrary.
Their compatible_printers is the Mini alone, disjoint from Generic X @Lulzbot
(TAZ only) as rule 3 requires. They exist because temperature is a filament-scope
setting, so LulzBot's values need printer-scoped presets. All six plate types
carry the same temperature, because the Mini has a single bed and curr_bed_type
can hold a stale value carried over from another printer.

Strictly additive: no existing profile is modified, so TAZ behaviour is
unchanged and no migration is required. Lulzbot.json is bumped to 02.04.00.05.

Verified with scripts/orca_profile_tool.py check and scripts/check_profile.sh
on the full tree (profile tool, system validation, slice, filament subtypes and
custom-preset fixtures all pass), by diffing sliced output against LulzBot's own
Cura LE g-code for the same model and filament (temps, retraction, speeds and
the full wipe/probe sequence match), and by printing a 3DBenchy on a Mini 1 over
OctoPrint.


Claude-Session: https://claude.ai/code/session_012aLyqsXB7FKqwQdE2QF7Et

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
This commit is contained in:
Joel Wood
2026-09-22 23:53:15 +08:00
committed by GitHub
co-authored by Claude Opus 5 SoftFever
parent 37b3f9b0b5
commit a337064b5d
9 changed files with 472 additions and 1 deletions
+29 -1
View File
@@ -1,10 +1,14 @@
{
"name": "Lulzbot",
"url": "https://ohai.lulzbot.com/group/taz-6/",
"version": "02.04.00.04",
"version": "02.04.00.05",
"force_update": "0",
"description": "Lulzbot configurations",
"machine_model_list": [
{
"name": "Lulzbot Mini 1",
"sub_path": "machine/Lulzbot Mini 1.json"
},
{
"name": "Lulzbot Taz 4 or 5",
"sub_path": "machine/Lulzbot Taz 4 or 5.json"
@@ -27,6 +31,10 @@
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "0.25mm Standard @Lulzbot Mini 1",
"sub_path": "process/0.25mm Standard @Lulzbot Mini 1.json"
},
{
"name": "0.25mm Standard @Lulzbot Taz 4 or 5",
"sub_path": "process/0.25mm Standard @Lulzbot Taz 4 or 5.json"
@@ -43,6 +51,10 @@
"name": "0.25mm Standard @Lulzbot Taz Pro S",
"sub_path": "process/0.25mm Standard @Lulzbot Taz Pro S.json"
},
{
"name": "0.18mm High Detail @Lulzbot Mini 1",
"sub_path": "process/0.18mm High Detail @Lulzbot Mini 1.json"
},
{
"name": "0.18mm High Detail @Lulzbot Taz 4 or 5",
"sub_path": "process/0.18mm High Detail @Lulzbot Taz 4 or 5.json"
@@ -65,13 +77,25 @@
"name": "Generic ABS @Lulzbot",
"sub_path": "filament/Generic ABS @Lulzbot.json"
},
{
"name": "Generic ABS @Lulzbot Mini 1",
"sub_path": "filament/Generic ABS @Lulzbot Mini 1.json"
},
{
"name": "Generic PETG @Lulzbot",
"sub_path": "filament/Generic PETG @Lulzbot.json"
},
{
"name": "Generic PETG @Lulzbot Mini 1",
"sub_path": "filament/Generic PETG @Lulzbot Mini 1.json"
},
{
"name": "Generic PLA @Lulzbot",
"sub_path": "filament/Generic PLA @Lulzbot.json"
},
{
"name": "Generic PLA @Lulzbot Mini 1",
"sub_path": "filament/Generic PLA @Lulzbot Mini 1.json"
}
],
"machine_list": [
@@ -79,6 +103,10 @@
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "Lulzbot Mini 1 0.5 nozzle",
"sub_path": "machine/Lulzbot Mini 1 0.5 nozzle.json"
},
{
"name": "Lulzbot Taz 4 or 5 0.5 nozzle",
"sub_path": "machine/Lulzbot Taz 4 or 5 0.5 nozzle.json"
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,68 @@
{
"type": "filament",
"name": "Generic ABS @Lulzbot Mini 1",
"inherits": "Generic ABS @System",
"from": "system",
"setting_id": "vYckNG6HUwmwixlF",
"instantiation": "true",
"filament_diameter": [
"2.85"
],
"filament_density": [
"1.06"
],
"filament_max_volumetric_speed": [
"6"
],
"nozzle_temperature": [
"240"
],
"nozzle_temperature_initial_layer": [
"245"
],
"cool_plate_temp": [
"110"
],
"cool_plate_temp_initial_layer": [
"110"
],
"eng_plate_temp": [
"110"
],
"eng_plate_temp_initial_layer": [
"110"
],
"hot_plate_temp": [
"110"
],
"hot_plate_temp_initial_layer": [
"110"
],
"textured_plate_temp": [
"110"
],
"textured_plate_temp_initial_layer": [
"110"
],
"fan_min_speed": [
"40"
],
"fan_max_speed": [
"60"
],
"compatible_printers": [
"Lulzbot Mini 1 0.5 nozzle"
],
"textured_cool_plate_temp": [
"110"
],
"textured_cool_plate_temp_initial_layer": [
"110"
],
"supertack_plate_temp": [
"110"
],
"supertack_plate_temp_initial_layer": [
"110"
]
}
@@ -0,0 +1,68 @@
{
"type": "filament",
"name": "Generic PETG @Lulzbot Mini 1",
"inherits": "Generic PETG @System",
"from": "system",
"setting_id": "zcgAqKXFHMgCJr2q",
"instantiation": "true",
"filament_diameter": [
"2.85"
],
"filament_density": [
"1.24"
],
"filament_max_volumetric_speed": [
"6"
],
"nozzle_temperature": [
"230"
],
"nozzle_temperature_initial_layer": [
"235"
],
"cool_plate_temp": [
"80"
],
"cool_plate_temp_initial_layer": [
"80"
],
"eng_plate_temp": [
"80"
],
"eng_plate_temp_initial_layer": [
"80"
],
"hot_plate_temp": [
"80"
],
"hot_plate_temp_initial_layer": [
"80"
],
"textured_plate_temp": [
"80"
],
"textured_plate_temp_initial_layer": [
"80"
],
"fan_min_speed": [
"40"
],
"fan_max_speed": [
"60"
],
"compatible_printers": [
"Lulzbot Mini 1 0.5 nozzle"
],
"textured_cool_plate_temp": [
"80"
],
"textured_cool_plate_temp_initial_layer": [
"80"
],
"supertack_plate_temp": [
"80"
],
"supertack_plate_temp_initial_layer": [
"80"
]
}
@@ -0,0 +1,65 @@
{
"type": "filament",
"name": "Generic PLA @Lulzbot Mini 1",
"inherits": "Generic PLA @System",
"from": "system",
"setting_id": "xjWvBH3Qyc46iwAi",
"instantiation": "true",
"filament_diameter": [
"2.85"
],
"filament_density": [
"1.25"
],
"filament_max_volumetric_speed": [
"8"
],
"nozzle_temperature": [
"205"
],
"nozzle_temperature_initial_layer": [
"210"
],
"cool_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
],
"fan_min_speed": [
"75"
],
"compatible_printers": [
"Lulzbot Mini 1 0.5 nozzle"
],
"textured_cool_plate_temp": [
"60"
],
"textured_cool_plate_temp_initial_layer": [
"60"
],
"supertack_plate_temp": [
"60"
],
"supertack_plate_temp_initial_layer": [
"60"
]
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "Lulzbot Mini 1",
"model_id": "Lulzbot-Mini-1",
"nozzle_diameter": "0.5",
"machine_tech": "FFF",
"family": "Lulzbot",
"bed_model": "",
"bed_texture": "lulzbot_logo.svg",
"hotend_model": "",
"default_materials": "Generic PLA @Lulzbot Mini 1;Generic ABS @Lulzbot Mini 1;Generic PETG @Lulzbot Mini 1"
}
@@ -0,0 +1,12 @@
{
"type": "process",
"name": "0.18mm High Detail @Lulzbot Mini 1",
"inherits": "0.25mm Standard @Lulzbot Mini 1",
"from": "system",
"setting_id": "2FKMCpTJ1Ptv1wLD",
"instantiation": "true",
"layer_height": "0.18",
"compatible_printers": [
"Lulzbot Mini 1 0.5 nozzle"
]
}
@@ -0,0 +1,108 @@
{
"type": "process",
"name": "0.25mm Standard @Lulzbot Mini 1",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "bqY8CEHwvUYnLRPe",
"instantiation": "true",
"reduce_crossing_wall": "0",
"layer_height": "0.25",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_layers": "5",
"bottom_shell_thickness": "0",
"bridge_flow": "0.85",
"bridge_speed": "25",
"brim_width": "0",
"brim_object_gap": "0",
"compatible_printers_condition": "",
"print_sequence": "by layer",
"default_acceleration": "0",
"outer_wall_acceleration": "0",
"top_surface_acceleration": "0",
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "0.5",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.5",
"infill_direction": "45",
"sparse_infill_density": "20%",
"sparse_infill_pattern": "crosshatch",
"initial_layer_acceleration": "0",
"travel_acceleration": "0",
"inner_wall_acceleration": "0",
"initial_layer_line_width": "0.50",
"initial_layer_print_height": "0.425",
"infill_combination": "0",
"sparse_infill_line_width": "0.50",
"infill_wall_overlap": "25%",
"interface_shells": "0",
"ironing_flow": "15%",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"detect_overhang_wall": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "20",
"overhang_3_4_speed": "15",
"overhang_4_4_speed": "10",
"inner_wall_line_width": "0.50",
"wall_loops": "2",
"print_settings_id": "",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "3",
"skirt_height": "1",
"skirt_loops": "2",
"minimum_sparse_infill_area": "10",
"internal_solid_infill_line_width": "0",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "0",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_style": "grid",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.19",
"support_filament": "0",
"support_line_width": "0.5",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "-1",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "0.2",
"support_speed": "40",
"support_threshold_angle": "30",
"support_object_xy_distance": "60%",
"tree_support_branch_angle": "40",
"tree_support_wall_count": "0",
"detect_thin_wall": "1",
"top_surface_pattern": "monotonicline",
"top_surface_line_width": "0.5",
"top_shell_layers": "5",
"top_shell_thickness": "1.0",
"initial_layer_speed": "35%",
"initial_layer_infill_speed": "35%",
"outer_wall_speed": "40",
"inner_wall_speed": "45",
"internal_solid_infill_speed": "40",
"top_surface_speed": "30",
"gap_infill_speed": "30",
"sparse_infill_speed": "60",
"travel_speed": "175",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "30",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"compatible_printers": [
"Lulzbot Mini 1 0.5 nozzle"
]
}