Nema 17 step motor + powerbank - voltage drop

Hi

Let's start from the components list:

  • DC-DC converter module Step-down 3-40V - adjustable 1.5-35V LM2596 (to reduce the input 5V to 4V)
  • Grove - I2C Motor Driver (TB6612FNG)
  • NEMA 17 Stepper Motor 42HM48-1206 400 steps 4,0V / 1,2A / 0,31Nm
  • MB102 Power Supply Adapter or direct USB connector
  • Arduino Micro + 2x16 display

The goal is to power the motor correctly - maybe I took wrong components.

I thought that the initial setup was ok - 5V 2.4A powerbank, step-down converter and 4V set as the otuput which powered the motor driver.
Arduino powered from the PC.

Results - the motor is working, I checked different speeds - looks ok. For micro steps the min/max speed is limited but it's ok. On half steps it works for minimal possible speed which I can set - good.

Next step - trying to make it more portable. Small change in Arduino power supplying - no micro USB usage, the VIN pin was for 7-12V input - so I connected the 5V from the powerbank to the 5V pin.
It's working ok - time to start the motor - and the issue starts. Looks like the display (and built-in LED) is blinking a little bit for very slow motor speed. For faster values I see no blinking but the light is a little bit darker.

I connected the Arduino to separate powerbank (no more blinking) but I also checked the voltages for the motor.
Results:

  • motor stopped - 5V on the converter input, 4V on the output
  • motor started - 4.5V on the converter input, 3V on the output
    Looks like the 2.4A powerbank is not enough but the converter takes up to 0.35A when the motor is running on lowest speed and 0.1A for higher speed (it's the motor only, no extra load etc.).

I checked also the travel charger AC 230V to 5V 2.4A - similar results.

I changed the power supply to MB102 Power Supply Adapter + AC 230V to 9V, 2A power supply.
Results (measured on the step-down converter input):

  • motor stopped - 5.05V
  • motor started - 4.95V and 0.35A-0.1A for low/high motor speed
    In this configuration looks like the voltage drop is very small - I suppose it should be ok.

Now the question - what's wrong with the powerbank? Should I just use something better - like 4A or more? I didn't see the higher values than 0.35A - is it something wrong with my measurement approach (or the results inerpretation)? Or maybe it's because of the simple multimeter usage - which doesn't show some very short peaks which are much bigger than 0.35A? Unfortunately I don't have the oscilloscope (sounds like nice reason to buy a new toy).

Deleted that post because I just realised you are using the wrong driver for that motor.
That driver is a common H-bridge, used for brushed DC motors.
You should have used a current controlled stepper driver for that motor, with a 12volt supply.
The A4988 is commonly used.
Leo..

Ok - I will try with the A4988 + 12V - looks like it will take much less space.

But is the current driver wrong just because it's not suited for this motor or it's just less effective and the standard TB6612FNG (without extra I2C communication) steals more pins (and requires more complex implementation)?

Please post a schematic because I cannot understand who power to motor/Arduino.

It is more reliable to use a driver matched to the motor, but I think that we don't have to use best way always because trial and error is fun.
However, it makes difficult to find answers.

The main problem is that the power supply to the Arduino is unstable, right?
Since there can be a large momentary voltage drop when the motor is running, why not connect a larger capacitor in parallel to the Arduino's power supply?

P.S. I personally recommend that even a cheap oscilloscope with one channel is useful enough for debugging.

That driver is just wrong for a modern low-impedance stepper motor.
It would have been sort-off ok with a 30ohm stepper, but only at low speeds.
A stepper driver keeps the current through the motor constant, for better performance.
Leo..

I may be unnecessary, but I will explain a bit.

The fact that the TB6612FNG allows the stepper to operate only at low speeds is due to the structure of the motor.
The motors targeted by the TB6612FNG are brush motors.
Brush motors can be rotated by simply applying a constant voltage/current.
On the other hand, Steppers can be rotated by applying a pulse of current.
In particular, when rotating a stepper at high speed, the current must be switched at high speed.
However, in a simple constant-voltage circuit such as TB6612FNG, the current cannot immediately follow the change in voltage and takes time to rise.
Therefore, TB6612FNG may not be able to supply enough current to the stepper.
So, stepper driver such as A4988 include a constant-current circuit that can improve the rise time of the current by making the added voltage variable.

Reference: What is a constant voltage drive for a stepper motor and when is it used?