⑥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.

If the status remains unchanged, check if the endstop switch is functioning properly and whether the wiring is correct.

※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