MrYsLab / telemetrix

A user-extensible replacement for StandardFirmata. All without the complexity of Firmata!
GNU Affero General Public License v3.0
68 stars 26 forks source link

28BYJ-48 Stepper motor with ULN2003 not working properly #61

Closed MrYsLab closed 1 year ago

MrYsLab commented 1 year ago

The motor vibrates but does not turn using this motor/controller combination. Using a NEMA 17 12-volt motor with a TB6600 controller works correctly.

I tried using an external high-current supply for the ULN2003, which did not solve the problem.

This will take further investigation to determine the cause.

MrYsLab commented 1 year ago

@diegormsouza I have figured out what is going on, but unfortunately, the 28BYJ-48 can't be supported by telemetrix.

The reason is that there is a timing issue. When one runs an AccelStepper sketch (non-telemetrix) and an AccelStepper method such as the distanceToGo method is called, the value is available very quickly.

When using telemetrix, however, there is a delay when sending the command to the Arduino and another delay in the returning reply. The run method, therefore, is not being called quickly enough.

When using a controller such as the TB6600, this disparity in timing is internally masked, and things magically work.

I will remove the reference to the 28BYJ-48 in the stepper examples and add a note that the 28BYJ-48 is not supported.

I am closing this issue, but please feel free to leave any further comments here.

diegormsouza commented 1 year ago

Thanks for verifying that @MrYsLab !

I understand. I'll test a TB6600 controller when I have the opportunity.