I’m currently trying to use the A4988 driver to control a FSM0815-KD95 stepper motor. The problem I’m having is, even when the STEP pin is LOW, two of the four motor pins are receiving voltage. This, I believe, is causing the motor to overheat.
Is there any way to automatically reduce the voltage when the motor is in hold mode?
You should not have an overheating problem if your current limit is set appropriately. The stepper motor may get hot (even hot enough to burn you), but it should not be harmful to the motor or driver if it is running within its rated specifications. Can you tell me how you are measuring the temperature and what the temperature is (or how you know its overheating)? What is the current per phase rating of your stepper motor and the VREF voltage you configured the A4988 carrier to when you set your current limit?
Stepper motors are designed to be energized when hold a position; driving the STEP pin low does not stop current flow to the motors. With the A4988 stepper motor driver carrier you can drive the EN pin high to turn off the driver’s MOSFETs so the motor does not get any power. This would leave the stepper motors without any holding torque while the MOSFETs are turned off.
If you want a stepper motor driver that lets you adjust the current on the fly, you might consider our DRV8880 Stepper Motor Driver Carrier. It is the same form factor as our A4988 carrier and can also handle currents of up to 1A per phase. You can see more about the differences between the DRV8880 and the A4988 at the bottom of the DRV8880 product page I linked to above.