From 30b3666c4759661c85f6e28219887ef8c0ce44ad Mon Sep 17 00:00:00 2001 From: Eric McCann Date: Fri, 18 Sep 2026 07:24:32 -0400 Subject: [PATCH] U1 HF: Resolve nozzle mismatch on-screen warning Emit U1 nozzle flow metadata through profile end G-code Append filament_volume_type footer comments through the standard and High Flow U1 machine profiles. Generate one comma-separated value per logical filament using existing placeholder expressions, preserving the existing end commands. Mixed-diameter standard profiles inherit the standard footer. Bump the Snapmaker bundle to 02.04.00.17. No C++ or filament-schema changes. Validation intentionally not run at user request. Co-authored-by: Codex --- resources/profiles/Snapmaker.json | 2 +- .../Snapmaker/machine/Snapmaker U1 (0.2 High Flow nozzle).json | 3 ++- .../profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json | 2 +- .../Snapmaker/machine/Snapmaker U1 (0.4 High Flow nozzle).json | 3 ++- .../profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json | 2 +- .../Snapmaker/machine/Snapmaker U1 (0.6 High Flow nozzle).json | 3 ++- .../profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json | 2 +- .../Snapmaker/machine/Snapmaker U1 (0.8 High Flow nozzle).json | 3 ++- .../profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json | 2 +- 9 files changed, 13 insertions(+), 9 deletions(-) diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index d415c7dadd..7f2aaa2881 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.16", + "version": "02.04.00.17", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 High Flow nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 High Flow nozzle).json index 9afb250476..6c3a2ff7ae 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 High Flow nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 High Flow nozzle).json @@ -14,5 +14,6 @@ "Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle" ], - "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 High Flow nozzle)" + "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 High Flow nozzle)", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json index 0eb1746895..46273a7f44 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json @@ -34,7 +34,7 @@ "0", "0" ], - "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n", "machine_max_jerk_z": [ "3", "0.4" diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 High Flow nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 High Flow nozzle).json index f8b8d44e10..cd54aae644 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 High Flow nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 High Flow nozzle).json @@ -14,5 +14,6 @@ "Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle" ], - "default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 High Flow nozzle)" + "default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 High Flow nozzle)", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json index f30fbe9813..d65d549d77 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json @@ -34,7 +34,7 @@ "0", "0" ], - "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n", "machine_max_jerk_z": [ "3", "0.4" diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 High Flow nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 High Flow nozzle).json index 53c0d682cd..12f91c71cd 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 High Flow nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 High Flow nozzle).json @@ -14,5 +14,6 @@ "Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle" ], - "default_print_profile": "0.30 Standard @Snapmaker U1 (0.6 High Flow nozzle)" + "default_print_profile": "0.30 Standard @Snapmaker U1 (0.6 High Flow nozzle)", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json index 0067f3d087..b48d528074 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json @@ -34,7 +34,7 @@ "0", "0" ], - "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n", "machine_max_jerk_z": [ "3", "0.4" diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 High Flow nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 High Flow nozzle).json index ded207ffbf..2f9ecca19e 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 High Flow nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 High Flow nozzle).json @@ -14,5 +14,6 @@ "Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle" ], - "default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 High Flow nozzle)" + "default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 High Flow nozzle)", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json index 390cc54281..e3ffac2bb8 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json @@ -34,7 +34,7 @@ "0", "0" ], - "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", + "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n", "machine_max_jerk_z": [ "3", "0.4"