# [SOLVED] Stepper motors making high pitched noise (squealing/whining) and not moving, troubleshooting suggestions?

Joined Sep 14, 2020
42

I made a PCB. I have 12 V supplied to VMOT. A1 and B1 are both 12V. It's wired like the diagram.

Fault pin is 4 V which is odd. 5 V is supplied to the Arduino. The 5 V output is about 4 V which is odd.

The program runs perfectly fine on a previous version of the PCB. I adjust the potentiometer, and the noise persists. Any suggestions?

I also ran it at 24 V (VMOT). I've had the PCB double checked by someone else, and we both tested voltages. Everything looks good except for the fault pin.

#### MrChips

Joined Oct 2, 2009
26,796
Assuming that the hardware is not faulty, here are possible faults:

1) Connections to the motor windings A1, A2, B1, B2 are incorrect.
2) STEP rate is too high.

Try slowing down the stepping speed.

#### atferrari

Joined Jan 6, 2004
4,651
Maybe you are in the critical speed where you need to bring it up or down.

#### bertus

Joined Apr 5, 2008
22,009
Hello,

The Fault and Home signals are open drain.
The voltage will depend on the pull up voltage:

Bertus

#### Attachments

• 1.8 MB Views: 2
• 1.7 MB Views: 1

Joined Sep 14, 2020
42
Assuming that the hardware is not faulty, here are possible faults:

1) Connections to the motor windings A1, A2, B1, B2 are incorrect.
2) STEP rate is too high.

Try slowing down the stepping speed.
I tried 1, 5, 10, 20, 50, 100, 200, 500, 1000, 2000 and some higher in microseconds:

digitalWrite(stepPinX, HIGH);
delayMicroseconds(5);
digitalWrite(stepPinX, LOW);

digitalWrite(stepPinY, HIGH);
delayMicroseconds(5);
digitalWrite(stepPinY, LOW);

It sounded slightly different with most delays. One stepper motor sounded like a slow/dying metronome. I'll try doing 500 microseconds and changing the wiring...

#### MrChips

Joined Oct 2, 2009
26,796
It would not hurt to start with a very long delay time, e.g. 2000μs. That should eliminate stepping speed problem.

Joined Sep 14, 2020
42
These captures are from 2000 us. Same model stepper driver, but plugged in the same motor to a different driver on the PCB for the second scope capture.

Last edited:

#### ericgibbs

Joined Jan 29, 2010
16,030
Is this PCB a different layout from the previous PCB that worked.?

Do you have photo shot of both the PCB's that you could post.
Mainly interested in the 0V ground tracks.

E

Joined Sep 14, 2020
42
Is this PCB a different layout from the previous PCB that worked.?
Just added the 100 uF capacitor and flipped the driver module to the other side of the shield.

Edit:
The nRESET pin, when driven active low, resets internal logic, and resets the step table to the home position. It also disables the H-bridge drivers. The STEP input is ignored while nRESET is active. The nENBL pin is used to control the output drivers and enable/disable operation of the indexer. When nENBL is low, the output H-bridges are enabled, and rising edges on the STEP pin are recognized. When nENBL is high, the H-bridges are disabled, the outputs are in a high-impedance state, and the STEP input is ignored. Driving nSLEEP low will put the device into a low power sleep state. In this state, the H-bridges are disabled, the gate drive charge pump is stopped, the V3P3OUT regulator is disabled, and all internal clocks are stopped. In this state all inputs are ignored until nSLEEP returns inactive high. When returning from sleep mode, some time (approximately 1 ms) needs to pass before applying a STEP input, to allow the internal circuitry to stabilize. Note that nRESET and nENABL have internal pulldown resistors of approximately 100 kΩ. The nSLEEP pin has an internal pulldown resistor of 1 MΩ. nSLEEP and nRESET signals need to be driven to logic high for device operation.

These default RESET and SLEEP states are ones that prevent the driver from operating; both of these pins must be high to enable the driver (they can be connected directly to a logic “high” voltage between 2.2 and 5.25 V
https://www.pololu.com/product/2133

Last edited:

#### ericgibbs

Joined Jan 29, 2010
16,030
The program runs perfectly fine on a previous version of the PCB. I adjust the potentiometer, and the noise persists. Any suggestions?
That PCB image is not helpful at all.
We need to see the tracks on both sides of the PCB.

E

Joined Sep 14, 2020
42
We need to see the tracks on both sides of the PCB.
The red traces are on the top. The blue traces are on the bottom. The image is both sides.

Here is the corresponding schematic:

VCC is 12 V

Last edited:

Joined Sep 14, 2020
42
The solution was changing the direction and step pins (which I didn't do after flipping the driver modules to the other side on the PCB).

The correct test code:

Code:
const int dirPinZ = 3;
const int stepPinZ = 2;

void loop() {

digitalWrite(stepPinZ, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPinZ, LOW);
}
Thanks everyone.

#### ericgibbs

Joined Jan 29, 2010
16,030