Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited

Stepper Motor Speed And Pwm

Hi guys, Here I am back in bewilderment land. I am trying to run a stepper motor with a Spark Fun Big Easy stepper motor driver. No problem except no matter what PWM I put in the motor runs at the same speed. About 24 RPM. I checked the PWM and it is doing exactly what the EZ-Bv4 tells it to do but the Big Easy just runs the motor at the same speed. Anybody know what is going on?

AI Support Bot
Related Content
Based on your post activity, we found some content that may be interesting to you. Explore these other tutorials and community conversations.
Can you post your code you are using to control it?
Hi @bookmaker32 where are you applying the PWM signal to on the Big Easy Driver?

From just an initial look, it seems if you apply a PWM signal to the "STEP" connection it probably won't work, but if you apply it to the "ENABLE" it may work.
Here is the Manual.
Big Easy Manual
I am driving it on the step input with PWM and it works fine, it just doesn't make any difference what the PWM is set at. It runs at the same speed.
I tried the Enable but that doesn't work. Does anyone have any experience with another driver? What speed can one expect to get out of a say Nema 14 Bipolar Stepper 7.5V 0.5A 23Ncm(32.6oz.in)?
I've been reading the manual and from what I'm reading it looks like the STEP pin is suppose to receive high low values, not necessarily PWM.

On page 3:
STEP: This input is tied high with a 20K Ohm resistor on the BED. Each rising edge of this input will cause the stepper driver to advance one step in the direction specified by the DIR input. The STEP input must be high for at least 1us, and low for at least 1us.
Someone (maybe a new EZ-Bit) needs to build a controller that takes the thought out of driving stepper motors. Every time someone posts about them, there seems to be a lot of confusion about what the EZ-B needs to send or even if it is capable of it. We need something that looks like a servo or H-bridge from the EZ-B side but converts the signals to step controls. I have searched a few times for Stepper controllers just out of curiosity (no plans to actually use one at this time), and I haven't seen anything that makes it simple.

On the Arduino hook up it says to connect to PWM. I made the assumption that it would be the same.
Hi @Bookmaker,

I don't have a good idea of what the Arduino Library is doing but looking directly at the datasheet it looks like you can take full control of the Big Easy Driver via the Enable pin. Here's what the Allegro chip datasheet says:

User-inserted image

You will still have to send a constant PWM signal to the STEP connection at the same time as the enable to make the driver move.

There is a pull down resistor on the board (R10) that keeps the driver constantly enabled so you'd really just have to send it a high pulse from the EZ-B when you want it to slow down.

Another option is to use the MS1, MS2, & MS3 ports to change the default settings from sixteenth step to a slower step pattern, they are all default high so you'll need to send them a low signal.

User-inserted image
@Bookmaker32.... Curious... Why a stepper motor?.... Surely a servo is much easier to use...? Are you using it for robot drive wheels?
@Jeremie, I am using all inputs mentioned. I could change the MS1, 2 and 3 for speed but I prefer not to. In addition the most I am getting out of the fastest setting is only about 24 RPM so going slower really isn't what I want to do.
@Richard R, I want to use steppers for a few different reasons. You are absolutely correct in that a servo or even a dc motor are much easier to use. I have been there and done that and have some ideas that I want to make happen. I have been building for several months in anticipation of the arrival of my v4 and I am way to far into it at this point to fail. I know I can run them with script and four ports if I must but using a driver seems the way to go.
On this thread I do mention a way to use an L298 H-bridge to control a stepper motor, but it would use the EZ-B to drive the "steps" so it would take up processing power to do it. Its another option but not a very efficient one I admit. I can't be certain but I do suspect you could drive a stepper pretty fast with this method.

@bookmaker32 have you had a chance to try PWMing both the Enable and STEP lines on the big easy driver?
Bookmaker no matter what you do you will not be happy with stepper motors. I went through this and ended up changing my whole design. In order to get it to work you will need to write a piece of code (very easy) like Jeremie has mentioned. No matter what I did to the code, (I ended up removing all sleep commands) the stepper motor just did not perform as expected. I never did find a board that accepts PWM to run a stepper motor driver board, also known as a chopper drive. It also seems there are many ideas of what PWM actually is. Good Luck in whichever direction you go.

I have managed to get my stepper questions answered by experimentation. I made a pulse generator from a 555 timer and I am using that rather than PWM. It works great. For speed control on the Big Easy I am using the M1 M2 and M3 stepper modes. All being controlled by my EZ-Bv4. I did have to add a switch as I did with Buster in his case H-bridges and in this case the Big Easy Stepper Driver, to keep the motors from running when you turn on the EZ-B prior to connecting to the WiFi. In my case I used a TTL solenoid rather than a transistor just because I had one. I used a toggle switch on Buster. If anyone needs help with steppers let me know. I have many hours invested now and feel fairly knowledgeable.
I haven't used one of these myself, but I bookmarked the page for future reference when I ran across it.

Radio Controlled Stepper Kit

It appears to be a Stepper controller that can be driven by an RC radio rig. Of course it could also work with the EZ-B in a robot which is why I bookmarked it.
I am not sure of this but I remember that DJ said sometime, somewhere that the PWM output from the EZ-B is not exactly the same as the PWM output of an RC. That being said I went with a true pulse generator which solved my issue using the EZ-B. Please correct me if I am wrong.
Bookmaker Im glad you found something that worked for you. No matter what method I tried I just couldn't get the speed I was looking for.

@kamaroman68, I can now reach very hi RPM,s with no trouble at all. The astable pulse generator I built is available on line very cheap.
Pulse generator
I read the reviews on that sparkfun controller and there are lots of complaints getting it to work properly and it breaking for seemingly no reason. I picked up some from pololu but havent played with them yet. They are the same kinds used on 3d printers and are increasingly popular
im happy to help if i can. can you be specific about how you intend to use the stepper. what is your goal rpm ? just to let you know higher voltage increases the response time of your stepper and higher rpm capability. typical voltage for best performance has a basic formula. 2.5 x rated amps x rated voltage = optimal operating high rpm voltage.