How do I get faster top speeds from the motor shields when bitbanging - calling onestep()? I understand the v2's limiting factor is the i2c. the v1 shouldn't have that problem, but i still find the top speed is...painfully low. I see in the library that a lot of math is being done every step. On a RAMPS or RUMBA board all I have to do is flip the step pin. Can I do the same on the motor shield? I'm hope this isn't a stupid question - I haven't had the time to learn more yet. I really hope you know the answer already.
Thank you!
Top speed from motor shields?
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_mike
- Posts: 67485
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Top speed from motor shields?
The limiting factor for steppers generally isn't the logic, it's the power. The current flowing through the coil has to generate enough torque to pull the rotor to the next position in the specified amount of time. If it doesn't, you can get an aliasing effect, where the control signals end up lapping the rotor.
The L293Ds in the v1 Motor Shield have a maximum current rating of 600mA, which isn't all that much when you're talking about steppers. The RepRap Wiki has a list of driver chips and their peak current limits here: http://reprap.org/wiki/Stepper_motor_driver
The L293Ds in the v1 Motor Shield have a maximum current rating of 600mA, which isn't all that much when you're talking about steppers. The RepRap Wiki has a list of driver chips and their peak current limits here: http://reprap.org/wiki/Stepper_motor_driver
- adafruit_support_bill
- Posts: 88155
- Joined: Sat Feb 07, 2009 10:11 am
Re: Top speed from motor shields?
What speeds are you trying to achieve? What motors and power supply? There are many factors that govern the maximum step-rate.
Also, be sure that you are calling onestep() and not step(). The step() function has a delay built in based on the RPM setting. onestep() has no delay.
Also, be sure that you are calling onestep() and not step(). The step() function has a delay built in based on the RPM setting. onestep() has no delay.
Please be positive and constructive with your questions and comments.