Repository navigation
Conversation
…ime, softening temps. Keep Edge's chamber_cooling_mode C++. Update strong/weak SET_PURIFIER_MODE values from Snapmaker Snapmaker#1005 in all five U1 machines including 0.4+0.6, add first-tool pre-extrude and M107/M106 around probing, and set U1 PLA/PETG/TPU/ ASA softening temperatures. Leave PET, Polymaker, 11x11 mesh and M109 tool change alone. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Delta port of OrcaSlicer #16590 (profile values from Snapmaker #1005). Edge already picks the purifier mode in C++.
Ported (all 5 U1 machine profiles, including Edge-only
0.4+0.6):MODE=1 DESIRE_TEMP=42 ALARM_TEMP=48(was ALARM 45)MODE=1 DESIRE_TEMP=45 ALARM_TEMP=51 FAN_SPEED=0.6 DELAY_OFF=0(wasMODE=3 DESIRE_TEMP=0)M104/T/M109/SM_PRINT_PREEXTRUDE_FILAMENT INDEX={initial_extruder}M107beforeG28 Z I140, beforeDETECT_BED_PLATE, afterWAIT_CHAMBER_TEMPand before bed levelingM106 S255at the start of deep cleanSnapmaker.jsonversion02.03.03.11→02.03.03.12Kept (do not take upstream):
chamber_cooling_modeC++ inGCode.cpp(0 keep warm, 1 weak, 2 strong). Did not switch tomin_vitrification_temperature.GCode.cppis untouched.M109+ PREEXTRUDE on tool change.fdm_U1.jsonrewrite (conflicts with Edge feat(mm): #15145 A — inventory, compaction, mapping config (U1 protocol) #117).Upstream SHA ported:
29f5dcf0(merge of Orca OrcaSlicer#16590); command values from Snapmaker Snapmaker#1005.Edge
mainat branch time:67353f9885(Release 2.4.6.2 / #624).U1 test print is required before merge (Lance).
Russ round 1 (report only; no G-code change)
F2 — first-tool pre-extrude twice? No. The new start block always runs
SM_PRINT_PREEXTRUDE_FILAMENT INDEX={initial_extruder}once, after auto-feed/flow cal.change_filament_gcodethen only emits PREEXTRUDE whenprevious_extruder != next_extruder and initial_extruder != next_extruder, so the first tool is skipped. After start G-code,GCode::set_extruder(initial_extruder_id, 0.)does run the tool-change template (U1 is not BBL, so the Bambu skip-first-toolchange path does not apply), but at that pointm_layer_indexis still-1, so the template also skips M109 vianot((layer_num < 0) and (next_extruder == initial_tool)). Same PREEXTRUDE gate exists on Edge before this port; upstream's start block is the same first-tool prime. Not a double pre-extrude that Edge uniquely introduced, so not fixed.F1 — U1 send path vs bed-temp-too-high warning: GCodeProcessor still writes
BED_TEMP_TOO_HIGH_THAN_FILAMENT/1000C001when bed ≥ vitrification (GCodeProcessor.cpp:5785-5795). Lowering PLA/PETG/TPU/ASA vitrification makes that fire more often. No U1 send path shows it. U1 send isSendFlow::SnapmakerConnect(WebPreprintDialog / SSWCP), which readsget_slice_result()for stats and filament mapping but never walkswarnings.SelectMachine.cpp:2189is the only send dialog that names this warning, and the enclosed-printer confirm is commented out.SendToPrinter,RemoteSend, and print-host dialogs do not read it.Plater::get_slice_warning_stringmaps the string but is only called from SelectMachine.Screenshots/Recordings/Graphs
N/A (machine start G-code and filament vitrification values).
Tests
No Catch2 coverage (profile / start-G-code strings). Catch2 binaries were not compiled here. Owed: Edge CI, then a G-code export inspection of the five U1 machines (including 0.4+0.6) for
SET_PURIFIER_MODE, first-toolSM_PRINT_PREEXTRUDE_FILAMENT, and the newM107/M106lines.U1 test-print checklist
MODE=1 DESIRE_TEMP=42 ALARM_TEMP=48; first-tool prime after calibration; fans off around probe (M107) andM106 S255at deep clean.MODE=1 DESIRE_TEMP=45 ALARM_TEMP=51 FAN_SPEED=0.6 DELAY_OFF=0.chamber_cooling_modeC++ (notmin_vitrification_temperature); first-tool prime still runs; no chamber-mode C++ regression.M109+ PREEXTRUDE (not upstreamM104). Mesh remains 11x11. Confirm the first tool is primed once (start block), not again on the post-start tool-change.Broker gate: job 323 (Windows, VM slot)
job 323: libslic3r_tests slic3rutils_tests fff_print_tests (+app/paho; VM slot, 36m47s), libslic3r_tests 2261/2264 passed (3 failed as expected) / slic3rutils_tests 1308 cases 17345 assertions passed / fff_print_tests 553 cases 337810 assertions passed, GATE_RESULT missing (comparator crash; manual per-case: identical=6 config_only=0 diff=0 expected=4), copy: none (gate-only test copy)Head 667dc5e. Baseline 6b47212 (60 commits behind main; the gap only adds Elegoo profiles, Showcase and the version bump, none of which the gate cases use).
--gate-cmp "--expect u1_cube,u1_benchy,u1_2col,u1_t4".All four U1 cases use Generic PLA @U1 0.4 (already 45 on main, so the mode stays strong). In each one, a manual diff of every non-comment line shows only:
ALARM_TEMP=45->48;M104 T0 S220,T0,M109 T0 S220,SM_PRINT_PREEXTRUDE_FILAMENT INDEX=0, plus one blank line;M107lines and oneM106 S255.The only header changes are the pre-extrude comment and the
machine_start_gcodeconfig line. These all match upstream Orca OrcaSlicer#16590.U1 presets whose purifier mode changes (7)
ASA, PETG-CF, PLA Glow and PLA Translucent children already had the new values on main, so their purifier modes don't change. Every child of the changed filaments has
compatible_printerslimited to U1 machines, and no other vendor or non-U1 printer inherits from them. The five machine files inheritfdm_U1and nothing else inherits from them.CLI spot checks (20 mm cube, main baseline vs PR):
MODE=3 DESIRE_TEMP=45 ... DELAY_OFF=600->MODE=1 DESIRE_TEMP=42 ALARM_TEMP=48 ....MODE=1 DESIRE_TEMP=45 ALARM_TEMP=51 ...; otherwise only the allowed lines above changed.Non-U1 check: J1
Snapmaker J1 (0.4 nozzle) + Snapmaker PLA @j1, 0.20 Standard, 20 mm cube, main baseline vs PR: byte-identical apart from the
; generated byheader line (version and timestamp). That is 2 of 10,351 lines.Arrange
ModelArrange.cppcopiestemperature_vitrificationintovitrify_temp, but the only scoring that would use it (Arrange.cpp635/639) is commented out, so arrange ignores it. Check: U1 + PLA @U1 with--arrange 1on main vs PR gives the same printed area (X 125.71-145.29, Y 126.21-145.79).Note: slice warning 1000C001
GCodeProcessorraisesBED_TEMP_TOO_HIGH_THAN_FILAMENT(1000C001) when the bed temperature is at or above the filament's softening temperature. With the new values it will fire on most U1 PLA, PETG and TPU plates (for example a 60 C bed vs 45, or 70 vs 70), which is the same as upstream. The warning is stored in the plate's slice info in the 3MF. Its only GUI use (the send dialog inSelectMachine.cpp) is commented out. It doesn't change any G-code.Clean rerun: job 329 (Windows, VM slot)
job 329: libslic3r_tests slic3rutils_tests fff_print_tests (+app/paho; Windows VM slot, build 704 s), libslic3r_tests 2261/2264 passed (3 failed as expected) / slic3rutils_tests 1308 cases 17344 assertions passed / fff_print_tests 553 cases 338104 assertions passed, GATE_RESULT identical=6 config_only=0 diff=0 expected=4 failed=0 missing=0, copy: none (gate-only test copy)Head 667dc5e, baseline 6b47212,
--expect u1_cube,u1_benchy,u1_2col,u1_t4,GATE_EXIT=0. The per-case table matches job 323 exactly: the four U1 cases are expected diffs (1 line removed, 12 added, 7 hunks each), and the six non-U1 cases are identical. This replaces the manual result above.