Developer Command Reference¶
The commands Command Reference leaves out -
individual loading/unloading steps and internal machinery, generated
the same way from the same real HELP_BRIEF/HELP_PARAMS/
HELP_SUPPLEMENT source. Not part of the supported user interface;
useful when working on Happy Hare itself.
_MMU_TEST specifically has its own deep-dive - see Developer Test
Command for what its ~25 sub-tests actually do
and which ones are safe to run casually. This page has only its flat
parameter list, same as every other command below.
STEPS¶
_MMU_STEP_HOME_EXTRUDER¶
User composable loading step: Home to extruder sensor or entrance through collision detection
Examples:
_MMU_STEP_HOME_EXTRUDER ...Home filament to the extruder entrance (sensor or collision detection)
_MMU_STEP_HOMING_MOVE¶
User composable loading step: Generic homing move
Parameters
(see MMU_TEST_HOMING_MOVE HELP=1 for options)
Examples:
_MMU_STEP_HOMING_MOVE MOVE=50 ENDSTOP=extruder STOP_ON_ENDSTOP=1 ...Home up to 50mm onto the extruder entry sensor
_MMU_STEP_HOMING_MOVE MOVE=100 MOTOR=gear ENDSTOP=encoder STOP_ON_ENDSTOP=1 ...Home the gear motor up to 100mm using the encoder
_MMU_STEP_LOAD_BOWDEN¶
User composable loading step: Smart loading of bowden
Parameters
LENGTH = mm Override the default calibrated bowden length)
START_POS = mm Postion of filament past the gate homing point at start of move
Examples:
_MMU_STEP_LOAD_BOWDEN ...Load the bowden using the calibrated length
_MMU_STEP_LOAD_BOWDEN LENGTH=650 ...Load 650mm of bowden instead of the calibrated length
_MMU_STEP_LOAD_GATE¶
User composable loading step: Move filament from gate to start of bowden
Examples:
_MMU_STEP_LOAD_GATE ...Load filament from the gate to the start of the bowden (used in custom load sequences)
_MMU_STEP_LOAD_TOOLHEAD¶
User composable loading step: Toolhead loading
Parameters
EXTRUDER_ONLY = [0|1] Extruder only load (e.g. when in bypass)
Examples:
_MMU_STEP_LOAD_TOOLHEAD ...Load filament from the extruder entrance into the nozzle
_MMU_STEP_LOAD_TOOLHEAD EXTRUDER_ONLY=1 ...Load the extruder only (e.g. when using bypass)
_MMU_STEP_MOVE¶
User composable loading step: Generic move
Parameters
(see MMU_TEST_MOVE HELP=1 for options)
Examples:
_MMU_STEP_MOVE MOVE=50 ...Move filament 50mm on the gear motor
_MMU_STEP_MOVE MOVE=100 MOTOR=gear+extruder ...Move filament 100mm with the gear synced to the extruder
_MMU_STEP_SET_ACTION¶
User composable loading step: Set action state
Parameters
RESTORE = [0|1] Set to restore previous action state
STATE = _state_ Set action state and save previous for restore operation
Examples:
_MMU_STEP_SET_ACTION STATE=1 ...Set the action state (e.g. 1 = Loading; values are ACTION_* constants) saving the previous
_MMU_STEP_SET_ACTION RESTORE=1 ...Restore the previously saved action state
_MMU_STEP_SET_FILAMENT¶
User composable loading step: Set filament position state
Parameters
STATE = _state_ Filament position state
SILENT = [0|1] Set to suppress logging of new position
Examples:
_MMU_STEP_SET_FILAMENT STATE=0 ...Mark filament as fully unloaded
_MMU_STEP_SET_FILAMENT STATE=10 SILENT=1 ...Mark filament as loaded without logging (values are FILAMENT_POS_* constants)
_MMU_STEP_UNLOAD_BOWDEN¶
User composable unloading step: Smart unloading of bowden
Parameters
LENGTH = mm Override the default calibrated bowden length)
Examples:
_MMU_STEP_UNLOAD_BOWDEN ...Unload the bowden using the calibrated length
_MMU_STEP_UNLOAD_BOWDEN LENGTH=650 ...Unload 650mm of bowden instead of the calibrated length
_MMU_STEP_UNLOAD_GATE¶
User composable unloading step: Move filament from start of bowden and park in the gate
Parameters
FULL = [0|1]
Examples:
_MMU_STEP_UNLOAD_GATE ...Unload filament from the bowden and park in the gate (fast, minimal homing)
_MMU_STEP_UNLOAD_GATE FULL=1 ...Unload with full homing distance (use when starting position is uncertain)
_MMU_STEP_UNLOAD_TOOLHEAD¶
User composable unloading step: Toolhead unloading
Parameters
EXTRUDER_ONLY = [0|1] Extruder only unload (e.g. when in bypass)
PARK_POS = mm The starting position of the filament in extruder (after tip forming / retraction)
Examples:
_MMU_STEP_UNLOAD_TOOLHEAD ...Unload filament from the nozzle back to the extruder entrance
_MMU_STEP_UNLOAD_TOOLHEAD PARK_POS=35 ...Unload assuming the tip is parked 35mm inside the extruder
_MMU_STEP_UNLOAD_TOOLHEAD EXTRUDER_ONLY=1 ...Unload the extruder only (e.g. when using bypass)
INTERNAL (CAUTION!)¶
CANCEL_PRINT¶
Internal wrapper around default CANCEL_PRINT command
CLEAR_PAUSE¶
Internal wrapper around default CLEAR_PAUSE command
PAUSE¶
Internal wrapper around default PAUSE command
RESUME¶
Internal wrapper around default RESUME command
_MMU_TEST¶
Internal Happy Hare developer tests
Parameters
HELP=1 Show this help
SYNC_STATE=['compression'|'tension'|'both'|'neutral'] Set the sync state ('loop' is disabled - it busy-waits and wedges the reactor)
SYNC_EVENT=[-1.0 ... 1.0] Generate sync feedback event
SEND_PRINTING_EVENT=[0|1] Send mmu:printing or mmu:not_printing event
ACTIVATE_FLOWGUARD=[0|1] Call the flowguard activation/deactivation hooks
WRAP_CURRENT=1 Test current wrapping and restore. Params; MOTOR=gear|extruder PERCENT=%
DUMP_UNICODE=1 Display special characters used in display
RUN_SEQUENCE=1 Run through the set of sequence macros tracking time. Params: ERROR=[0|1] FORCE_IN_PRINT=[0|1]
RUN_CHANGE_SEQUENCE=1 Run toolchange-style sequence. Params: PAUSE=[0|1] NEXT_POS=['last'|'next'] FORCE_IN_PRINT=[0|1]
GET_POS=1 Fetch the current filament position state
SET_POS={pos_state} Set the current filament position state
SET_RD={gear_rd} [GATE=] Update the specified gate's rotation distance
GET_POSITION=1 Fetch the current filament position
SET_POSITION={pos} Set the current filament position
GET_EXT_POSITION=1 Fetch the current extruder position
SET_ACTION={action} Set the current action state
SYNC_LOAD_TEST=1 Hammer stepper syncing and movement. Params: LOOP={n} ENDSTOP={name} SELECT=[0|1] WAIT=[0|1]
REALISTIC_SYNC_TEST=1 Load test normal stepper syncing and movement. Params: LOOP={n} ENDSTOP={name} SELECT=[0|1] SERVO=[0|1]
QUIESCE_TEST=1 Quick test of problematic sync changes
SEL_MOVE=1 Selector move. Params: MOVE={mm} SPEED={mm/s} ACCEL={mm/s^2} WAIT=[0|1] LOOP={n}
SEL_HOMING_MOVE=1 Selector homing move. Params: MOVE={mm} SPEED={mm/s} ACCEL={mm/s^2} LOOP={n} ENDSTOP={name}
SEL_LOAD_TEST=1 Load test selector movements. Params: LOOP={n} HOME=[0|1]
TTC_TEST=1 / TTC_TEST2=1 / TTC_TEST3=1 Provoke known TTC conditions. Params: LOOP={n} MIX=[0|1] DEBUG=[0|1] WAIT=[0|1]
STEPCOMPRESS_TEST=1 Provoke stepcompress error. Params: LOOP={n} MIX=[0|1] DEBUG=[0|1] WAIT=[0|1] SELECT=[0|1] MOTOR={name} STOP_ON_ENDSTOP=[-1|0|1]
NOTE_LOAD_TELEMETRY=1 Feed load telemetry to autotune. Params: GATE={n} LENGTH={mm} TRAVEL={mm} RATIO={f}
NOTE_UNLOAD_TELEMETRY=1 Feed unload telemetry to autotune. Params: GATE={n} LENGTH={mm} TRAVEL={mm} RATIO={f}
SYNC=[0|1|2|3|gear|gear+extruder|extruder|synced]
CALC_PURGE=1 Purge volume calculator quick tests
RUNOUT=[0|1] Enable/disable runout handling
SENSOR=1 Dump sensor path checks. Params: POS={n} GATE={n} LOADING=[0|1] LOOP=[0|1]
FILAMENT_POS={n} Set filament_pos state within sync wrapper
FILAMENT_DIR=[-1|0|1] Set filament_direction to unload|still|load
ADJUST_ENCODER={delta} Adjust the encoder distance reading by delta
SET_ENCODER={dist} Set the encoder distance reading to distance
DUMP_MCU_ENDSTOPS=1 Dump steppers registered on each MCU_endstop
DUMP_ACTIVE_SENSORS=1 Dump raw active sensors map
UPDATE_STATUS={dict} Force override (update) of mmu get_status() with supplied dict. 'OFF' to remove
NFC_READ=1 Simulate an NFC tag read. Params: UID={hex} DEEP=[0|1] GATE={n}(per-gate, else shared) UNIT={n} MATERIAL= BRAND= COLOR= DETAIL= MIN_TEMP= MAX_TEMP=
NFC_FIELD=1 Classify a tag UID against the gate map (no reader, no motion). Params: GATE={n} UID={hex}
__MMU_ENCODER_INSERT¶
Internal encoder filament insert detection handler
__MMU_ENCODER_RUNOUT¶
Internal encoder filament runout handler
__MMU_SENSOR_CLOG¶
Internal MMU filament clog handler
Parameters
EVENTTIME = #(float)
SENSOR = _sensor_name_
__MMU_SENSOR_INSERT¶
Internal MMU filament insertion handler
Parameters
EVENTTIME = #(float)
SENSOR = _sensor_name_
GATE = #(int)
__MMU_SENSOR_REMOVE¶
Internal MMU filament removal handler
Parameters
EVENTTIME = #(float)
SENSOR = _sensor_name_
GATE = #(int)
__MMU_SENSOR_RUNOUT¶
Internal MMU filament runout handler
Parameters
EVENTTIME = #(float)
SENSOR = _sensor_name_
GATE = #(int)
__MMU_SENSOR_TANGLE¶
Internal MMU filament tangle handler
Parameters
EVENTTIME = #(float)
SENSOR = _sensor_name_