# ⑥Validate you hardware configuration

### &#x20;※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:

<figure><img src="https://3855363247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcs6QyzgclSdyKWWV05Sb%2Fuploads%2FxKm9PCnaA8v9VjneevcQ%2F%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20241022162741.png?alt=media&#x26;token=cea7892b-68d3-406d-9dca-8ecf3f7838d5" alt=""><figcaption></figcaption></figure>

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.

{% hint style="info" %}
If the status remains unchanged, check if the endstop switch is functioning properly and whether the wiring is correct.
{% endhint %}

### &#x20;※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
```

### &#x20;※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
```
