Skip to content

backport: add IQEX multicolor copy/mirror modes (pmode 5/6) and resonance calibration#10

Open
cgarwood82 wants to merge 1 commit into
FORMBOT:mainfrom
cgarwood82:backport-iqex-multicolor
Open

backport: add IQEX multicolor copy/mirror modes (pmode 5/6) and resonance calibration#10
cgarwood82 wants to merge 1 commit into
FORMBOT:mainfrom
cgarwood82:backport-iqex-multicolor

Conversation

@cgarwood82
Copy link
Copy Markdown
Contributor

@cgarwood82 cgarwood82 commented May 23, 2026

Summary

Backports multicolor print mode support from the custom formbotXplorer firmware to the stock UpdateManager config, adding pmode 5 (MULTICOLOR_COPY01) and pmode 6 (MULTICOLOR_MIRROR01) for IQEX dual-extruder multicolor printing.

Changes

New print modes (pmode 5/6)

  • ACTIVATE_MULTICOLOR_COPY_MODE01 — copies T0 onto T1 with multicolor resonance shapers applied
  • ACTIVATE_MULTICOLOR_MIRROR_MODE01 — mirrors T0 onto T1 with multicolor resonance shapers applied
  • Both include G28 Y to reset dual carriage Y after homing, matching formbotXplorer behavior

Toolchange helpers

  • _MC_TOOL0 / _MC_TOOL1 — multicolor-aware tool activation that parks inactive extruders and applies the correct per-tool shapers
  • _MC_CALIBRATE_PARK_INACTIVES — parks inactive tools while keeping the active one for retraction
  • _RETRACT_IF_PRINTING — shared base macro that conditionally retracts while printing/paused

PAUSE / RESUME dual carriage state

  • PAUSE now saves dual carriage state (SAVE_DUAL_CARRIAGE_STATE NAME=PAUSE_DC) before BASE_PAUSE
  • RESUME restores it (RESTORE_DUAL_CARRIAGE_STATE NAME=PAUSE_DC MOVE=0) before the final state restore, preventing XY double-move after G28 Y in the pause park sequence

Resonance calibration

  • 8 new macros for X/Y resonance sweep on multicolor copy/mirror phases 0 and 1
  • 8 new gcode_shell_command entries referencing the shell scripts
  • 8 new shell scripts in .8_Scripts/ that parse calibration output and write shaper_type_xmccpt0, shaper_freq_xmccpt0, etc. into variables.cfg
  • RESONANCE_CALIBRATION_IQEX now chains all 8 multicolor resonance macros, so Printer_Calibrate runs a complete suite covering stock single-tool, IDEX, IQEX copy/mirror, and multicolor copy/mirror phases

Variables

  • 8 new calibration coordinates in Xp_Xplorer_Vars.cfg for multicolor copy/mirror X/Y shaper positions

Files modified

  • 01_Default_CFG/Xp_Xplorer_Vars.cfg — 8 new shaper variable definitions
  • 01_Default_CFG/Xp_Macros_Base.cfg_RETRACT_IF_PRINTING helper
  • 01_Default_CFG/Xp_V1.1_Macros_IQEX.cfg — activation macros, toolchange helpers, resonance calib, PAUSE/RESUME fix, SET_PRINT_MODE/START_PRINTING_MODE extensions
  • 01_Default_CFG/Xp_V1.1_Shell_Commands_IQEX.cfg — 8 new shell command entries
  • .8_Scripts/ — 8 new resonance shell scripts

Stock compatibility

Existing single-tool, IDEX COPY01/MIRROR01, and 4-tool COPY0123/MIRROR0123 modes are unchanged. All multicolor logic is additive and gated behind the new pmode values.

…ance calibration

- Add multicolor print modes: MULTICOLOR_COPY01 (pmode=5) and
  MULTICOLOR_MIRROR01 (pmode=6) to SET_PRINT_MODE and START_PRINTING_MODE
- Add ACTIVATE_MULTICOLOR_COPY_MODE01 and ACTIVATE_MULTICOLOR_MIRROR_MODE01
  activation macros with G28 Y and multicolor shaper application
- Add _MC_TOOL0 and _MC_TOOL1 for multicolor toolchange with
  _RETRACT_IF_PRINTING and _MC_CALIBRATE_PARK_INACTIVES
- Add PAUSE/RESUME dual_carriage state save/restore to preserve
  carriage positions across G28 Y
- Update ACTIVATE_COPY_MODE01 and ACTIVATE_MIRROR_MODE01 with
  G28 Y and multicolor shaper variable support
- Add 8 resonance calibration macros and shell commands for
  X/Y multicolor copy/mirror phase0/phase1
- Add 8 resonance shell scripts (mccpt0/1, mcmrt0/1)
- Add 8 shaper calibration variables to Xplorer_Vars
- Add _RETRACT_IF_PRINTING to Xp_Macros_Base
@cgarwood82 cgarwood82 force-pushed the backport-iqex-multicolor branch from e6844f8 to cf8d0e7 Compare May 23, 2026 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant