⑥Validate you hardware configuration
※Check endstops & Optional sensors
Verify that the necessary endstops are working and the polarity is correct. The recommended procedure is:
QUERY_ENDSTOPS
Validate that you can see:

Then manually press and hold the selector microswitch and rerun QUERY_ENDSTOPS
.
Validate that you can see mmu_sel_home:TRIGGERED
in the list.
If you have toolhead sensor, feed filament into the extruder past the switch and rerun QUERY_ENDSTOPS
.
Validate that you can see toolhead:TRIGGERED
in the list.
※Check motor movement and direction
Once pins are correct it is important to verify direction. It is not possible for the installer to ensure this because it depends on the actual stepper wiring. The recommended procedure is:
MMU_MOTORS_OFF
# move selector to the center of travel
MMU_HOME
# verify that the selector moves to the left towards the home position
If the selector doesn't move or moves the wrong way open up mmu_hardware.cfg
, find the section [stepper_mmu_selector]
:
If selector doesn't move it is likley that the pin configuration for step_pin
and/or enable_pin
are incorrect. Verify the pin names and prefix the pin with !
to invert the signal. E.g.
enable_pin: !mmu:MMU_SEL_ENABLE
# or
enable_pin: mmu:MMU_SEL_ENABLE
If the selector moves the wrong way the dir_pin
is inverted. Either add or remove the !
prefix:
dir_pin: !mmu:MMU_SEL_DIR
# or
dir_pin: mmu:MMU_SEL_DIR
Now repeat the exercise with the gear stepper:
MMU_MOTORS_OFF
# remove any filament from your MMU
MMU_TEST_MOVE MOVE=100 SPEED=50
# verify that the gear stepper would pull filament towards the extruder
MMU_TEST_MOVE MOVE=-100 SPEED=50
# verify that the gear stepper is push filament away from the extruder
If the gear stepper doesn't move or moves the wrong way open up mmu_hardware.cfg
, find the section [stepper_mmu_gear]
:
If gear doesn't move it is likley that the pin configuration for step_pin
and/or enable_pin
are incorrect. Verify the pin names and prefix the pin with !
to invert the signal. E.g.
enable_pin: !mmu:MMU_GEAR_ENABLE
# or
enable_pin: mmu:MMU_GEAR_ENABLE
If the gear moves the wrong way the dir_pin
is inverted. Either add or remove the !
prefix:
dir_pin: !mmu:MMU_GEAR_DIR
# or
dir_pin: mmu:MMU_GEAR_DIR
※Check Encoder
check that it is wired correctly. Run the command MMU_ENCODER
and note the position displayed.
MMU_ENCODER
Encoder position: 23.4
Insert some filament (from either side) and pull backwards and forwards. You should see the LED flashing. Rerun MMU_ENCODER
and validate the position displayed has increased (note that the encoder is not direction aware so it will always increase in reading)
If the encoder postion does not change, validate the encoder_pin
is correct. It shouldn't matter if it has a !
(inverted) or not, but it might require a ^
(pull up resister) to function.
[mmu_encoder mmu_encoder]
encoder_pin: ^mmu:MMU_ENCODER
※Check Servo
Ok, last sanity check. Check that the servo you have fitted is operational. Run this simple commmand. The servo should waggle somewhere short of the configured 'up' and 'down' positions. Don't worry yet about calibration. That comes next.
MMU_TEST_BUZZ_MOTOR MOTOR=servo
You can also try:
MMU_SERVO POS=down
MMU_SERVO POS=up
Last updated