Redundant M109 inserted after tool change on Snapmaker U1, even when already present in Filament Change G-code #403

Closed
opened 2026-04-05 16:20:36 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @designtandy on 3/8/2026

Is there an existing issue for this feature request?

  • I have searched the existing issues

When slicing models with tool/extruder changes on the Snapmaker U1, OrcaSlicer forcibly inserts a duplicate line of code:
M109 S*** T* ; set nozzle temperature and wait for it to be reached

This is unnecessary because the Filament Change G-code template already includes logic to handle temperature waiting:

if wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then
"
";
"; " + layer_num + "
";
if layer_num == 0 then
"M109 S" + first_layer_temperature[next_extruder] + " T" + next_extruder + "
";
else
"M109 S" + temperature[next_extruder] + " T" + next_extruder + "
";
endif
endif

The redundant M109 line causes duplicate temperature-waiting steps during tool changes on the Snapmaker U1, leading to unnecessary printing delays and inefficient workflow.

Image Image

Which printers will be beneficial to this feature?

Klipper

Describe the solution you'd like

  1. Fix the duplicate M109 insertion on the Snapmaker U1 to avoid redundant temperature waits during tool changes.
  2. Alternatively, add a user-configurable toggle switch in the printer/extruder settings to enable/disable automatic M109 insertion on tool change, allowing Snapmaker U1 users and others to control this behavior based on their hardware and workflow needs.

Describe alternatives you've considered

  1. Manually editing the generated G-code to remove the redundant M109 line after each slice for the Snapmaker U1, which is time-consuming and error-prone.
  2. Using post-processing scripts to globally delete all M109 lines, which can be risky if other critical M109 commands are needed for the Snapmaker U1.
  3. Rewriting the entire Filament Change G-code template to avoid the automatic insertion, which requires advanced knowledge and breaks compatibility with default Snapmaker U1 settings.

Additional context

This issue significantly impacts multi-extruder workflows on the Snapmaker U1, where tool changes are frequent and temperature waiting is already handled by custom printer macros. The redundant M109 adds unnecessary delays and reduces printing efficiency for Snapmaker U1 users.

*Originally created by @designtandy on 3/8/2026* ### Is there an existing issue for this feature request? - [x] I have searched the existing issues ### Is your feature request related to a problem? When slicing models with tool/extruder changes on the Snapmaker U1, OrcaSlicer forcibly inserts a duplicate line of code: `M109 S*** T* ; set nozzle temperature and wait for it to be reached` This is unnecessary because the **Filament Change G-code** template already includes logic to handle temperature waiting: if wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then " "; "; " + layer_num + " "; if layer_num == 0 then "M109 S" + first_layer_temperature[next_extruder] + " T" + next_extruder + " "; else "M109 S" + temperature[next_extruder] + " T" + next_extruder + " "; endif endif The redundant M109 line causes duplicate temperature-waiting steps during tool changes on the Snapmaker U1, leading to unnecessary printing delays and inefficient workflow. <img width="728" height="519" alt="Image" src="https://github.com/user-attachments/assets/7dcf4ff1-ef35-4d48-9503-4544eb94087f" /> <img width="667" height="645" alt="Image" src="https://github.com/user-attachments/assets/7374c9ca-9ac0-4038-8dc4-647e56360f17" /> ### Which printers will be beneficial to this feature? Klipper ### Describe the solution you'd like 1. Fix the duplicate M109 insertion on the Snapmaker U1 to avoid redundant temperature waits during tool changes. 2. Alternatively, add a user-configurable toggle switch in the printer/extruder settings to enable/disable automatic M109 insertion on tool change, allowing Snapmaker U1 users and others to control this behavior based on their hardware and workflow needs. ### Describe alternatives you've considered 1. Manually editing the generated G-code to remove the redundant M109 line after each slice for the Snapmaker U1, which is time-consuming and error-prone. 2. Using post-processing scripts to globally delete all M109 lines, which can be risky if other critical M109 commands are needed for the Snapmaker U1. 3. Rewriting the entire Filament Change G-code template to avoid the automatic insertion, which requires advanced knowledge and breaks compatibility with default Snapmaker U1 settings. ### Additional context This issue significantly impacts multi-extruder workflows on the Snapmaker U1, where tool changes are frequent and temperature waiting is already handled by custom printer macros. The redundant M109 adds unnecessary delays and reduces printing efficiency for Snapmaker U1 users.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#403