Max current/voltage on solderable breadboard?

Hi,

I'm running once stepper motor (intend to use two) on the breadboard below using a DRV8825 motor driver, will the breadboard be able to handle the current/voltage from one and then two stepper motors?

The steppers used:

Solderable breadboard with thick wire yes, solderless breadboard..... Let's say I am dubious but it possibly could. :thinking:

I have run steppers from a solderless breadboard, to do quick tests, with no trouble. I used A4988 and DRV8825 drivers set to no more than 1.0A coil current. That is with good quality solderless beadboard.

It is not something that I would do for long term use. Use ptoto board for that.

Do you have any links to any blank boards that would be more suitable for long term use?

For "permanent" prototypes I use these protoboards. The ones that I bought from Amazon have been good quality and easy to use.

If you are going to experiment with steppers I suggest that you look into an Uno or a Nano with a CNC shield. They are pretty cheap and make using steppers much easier.

The CNC shield V3.

CNC V3 with Uno.

CNC shield V4 with Nano

These might be something to look at doing, if not for this project, maybe for one coming up.

@LarryD @groundFungus @theeccentricgenius Thank you :slight_smile:

For those unaware, Larry's tips thread is a bottomless rabbit hole. You've been warned...
Thanks, Larry!

In a good way.

Hey, I've got my circuit in a working state now. I'd like to use the CNC V3 shield, over the weekend I tried experimenting with some supposedly useable code, didn't get anything I'd call a success though. Do you have any example code available?

I'm using a NEMA 17 stepper, so I'm thinking I'd set the potentiometer to 0.75A and take it from there. That seem reasonable?

Thanks again

DN

Sorry, but no. You should get a data sheet for your stepper motor and a data sheet for the stepper driver on the CNC shield.

Look up the rated current for the stepper motor. NEMA 17 ONLY refers to the standard for the dimensions for mounting of that (physical) size motor. NEMA 17 says nothing of the electrical or mechanical specifications for the motor.

Once you know the rated current, look at the driver data sheet to see how to calculate the Vref (if necessary) for the limit current and how to set the current limit.

Setting the coil current to less than the max is OK as long as the motor performs properly and does not miss steps. The motor and driver will run cooler and last longer.

If you want more detailed help, please provide the data sheet for the motor and stepper driver or at least the full part numbers of them so that we can see the specifications.

Yes you're 100% correct, its a 1.7A stepper as far as I remember, so I was going with 1.5 and dividing it by 2 giving 0.75. This was just so I didn't blow anything unintentionally. But in order to actually test it I'll need some code that'll work with the CNC shield. I'll look into this more tomorrow.

A simple test code using the CNC shield V3 X axis stepper. The code moves the motor 90° when the button is pressed and back to 0 when the button is released. Connect the button between ground and pin 9 ( X limit on the CNC shield). I like the MobaTools stepper library. It is easier, I think, to learn than Accelstepper, but still offers acceleration and non-blocking motion functions. The MobaTools library is available for installation through the IDE library manager.

#include <MobaTools.h>

const byte stepPin = 2;
const byte dirPin = 5;
const byte buttonPin = 9;

const byte motorStepsPerRev = 200; // full steps
const byte microstepMultiplier = 4; // x4 micro steps
const unsigned int stepsPerRev = motorStepsPerRev * microstepMultiplier;
unsigned int stepsFor90 = stepsPerRev / 4;

MoToStepper stepper( stepsPerRev, STEPDIR );

void setup()
{
   Serial.begin(115200);

   pinMode(buttonPin, INPUT_PULLUP);

   stepper.attach( stepPin, dirPin );
   stepper.setSpeed(1000);  // rpm * 10, 1000 = 100 RPM
   stepper.setRampLen(10);
   stepper.setZero();   
}

void loop()
{
   static bool lastButtonState = HIGH;
   static unsigned long timer = 0;
   unsigned long interval = 20;
   if (millis() - timer >= interval)
   {
      timer = millis();
      bool buttonState = digitalRead(buttonPin);
      if(buttonState != lastButtonState)
      {
         if(buttonState == LOW)
         {
            stepper.moveTo(stepsFor90);
         }
         else
         {
            stepper.moveTo(0);
         }
         lastButtonState = buttonState;
      }
   }
}