MarginallyClever / GcodeCNCDemo

a simple example of making a CNC machine from an Adafruit Motor Shield
213 stars 133 forks source link

Steppers don't turn, just vibrate #32

Closed MudrakBalazs closed 2 years ago

MudrakBalazs commented 2 years ago

Hi! First off, I just want to thank you for creating this awesome project, I really appreciate it! But unfortunately I have run into an issue.

I am using the GcodeCNCDemo4AxisCNCShield with Arduino Uno and a CNC Shield v3.0 When I send some GCODE to the Arduino with the Serial Monitor the motors don't turn, they just vibrate/buzz. And my question is, what could be causing that? Have I not configured something, did I miss a step somewhere? I have confirmed that the wiring and hardware works using GRBL, so that can't be the problem

Video: https://user-images.githubusercontent.com/33597575/152638911-0a5f1f6e-c925-4647-94f8-6572b7c71100.mp4 GCODE that was sent: G00 X0 Y100 Z100 E0 F10;

Thanks in advance for the help! :D

i-make-robots commented 2 years ago
  1. Motor wires crossed, coils fight each other.
  2. Stepping speed too high.
  3. Low power (unlikely)

What are you making?

On Feb 5, 2022, at 2:46 AM, Mudrák Balázs @.***> wrote:

 Hi! First off, I just want to thank you for creating this awesome project, I really appreciate it! But unfortunately I have run into an issue.

I am using the GcodeCNCDemo4AxisCNCShield with Arduino Uno and a CNC Shield v3.0 When I send some GCODE to the Arduino with the Serial Monitor the motors don't turn, they just vibrate/buzz. And my question is, what could be causing that? Have I not configured something, did I miss a step somewhere? I have confirmed that the wiring and hardware works using GRBL, so that can't be the problem

Video: https://user-images.githubusercontent.com/33597575/152638911-0a5f1f6e-c925-4647-94f8-6572b7c71100.mp4

Thanks in advance for the help! :D

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you are subscribed to this thread.

MudrakBalazs commented 2 years ago

Thanks for the reply! The wiring is good, everything worked with GRBL all the motors worked fine The motors get sufficient power. It probably is the stepping speed. How can I adjust that? What variable do I have to change? (Sorry I'm not a coder, I barely ever touch code) I am using this stepper: https://www.aliexpress.com/item/32665922113.html?

I'm building an open-source photogrammetry 3D scanner and I think it'll be pretty cool when it's finally finished :D image

I am in the process of building it, the frame and the camera rotator mechanism is done.

i-make-robots commented 2 years ago

When you send a move command add an F value for feed rate. M114 will tell you the current position and feed rate.

Without a background for reference points it will be very hard to stitch the images. Might be easier to move the camera around the subject and use the image exit data like normal stitching apps.

On Feb 6, 2022, at 2:39 AM, Mudrák Balázs @.***> wrote:

 Thanks for the reply! The wiring is good, everything worked with GRBL all the motors worked fine The motors get sufficient power. It probably is the stepping speed. How can I adjust that? What variable do I have to change? (Sorry I'm not a coder, I barely ever touch code)

I'm building an open-source photogrammetry 3D scanner and I think it'll be pretty cool when it's finally finished :D

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you commented.

MudrakBalazs commented 2 years ago

Hi! Sorry for the late reply I had a busy day. I have figured out what's wrong: There is no delay between setting the step_pin HIGH, and setting it low So originally it's:

digitalWrite(motors[motor].step_pin,HIGH); digitalWrite(motors[motor].step_pin,LOW);

but this doesn't work, because there is no delay between the two states. So the correct way is:

digitalWrite(motors[motor].step_pin,HIGH); delayMicroseconds(500); digitalWrite(motors[motor].step_pin,LOW);

You can of course put whatever number you want instead of 500. It is still possible that I'm missing something, but the interpreter is working perfectly.

The turntable will have a non-repeating patter. (example) We(a mate and I) done previous scans with a white background and Meshroom handled it great. I'll reach out to you once we have something that's in a mostly working state if you are interested. :D Current state: 20220207_200534

Thanks a lot for the project and the help!

i-make-robots commented 2 years ago

Mmm... the driver may activate on the falling edge (when going high to low). if you want a certain number of steps/s A then you need a delay value of ~1000/A. At low momentum A cannot be very big, and as the system starts moving A can rise to take advantage of momentum. in a 200 step stepper motor a full turn in one second - with no microstepping - is 5ms per step. if you have typical 1/16 microstepping then you need delayMicroseconds() BUT in fast moving systems the digitalWrite is the bottleneck.

On Mon, Feb 7, 2022 at 11:07 AM Mudrák Balázs @.***> wrote:

Hi! Sorry for the late reply I had a busy day. I have figured out what's wrong: There is no delay between setting the step_pin HIGH, and setting it low So originally it's:

digitalWrite(motors[motor].step_pin,HIGH); digitalWrite(motors[motor].step_pin,LOW);

but this doesn't work, because there is no delay between the two states. So the correct way is:

digitalWrite(motors[motor].step_pin,HIGH); delayMicroseconds(500); digitalWrite(motors[motor].step_pin,LOW);

You can of course put whatever number you want instead of 500. It is still possible that I'm missing something, but the interpreter is working perfectly.

The turntable will have a non-repeating patter. (example) https://i.pinimg.com/originals/f5/0a/ac/f50aac16a5deb91a367827f0b83a137c.png We(a mate and I) done previous scans with a white background and Meshroom handled it great. I'll reach out to you once we have something that's in a mostly working state if you are interested. :D Current state: [image: 20220207_200534] https://user-images.githubusercontent.com/33597575/152854894-c68eb6ac-8e7b-4f48-b94b-f7a5427ef55b.jpg

— Reply to this email directly, view it on GitHub https://github.com/MarginallyClever/GcodeCNCDemo/issues/32#issuecomment-1031816512, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALFRBQ34M6I24BLQX6IDGTU2AKAFANCNFSM5NTZEVZQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

--

Dan Royer

Owner

1 (604) 259 9564 <16042599564> @.*** www.marginallyclever.com https://www.facebook.com/MarginallyClever/ https://www.instagram.com/imakerobots/ https://www.youtube.com/channel/UCfbRxqjuOgE2EzRKxcePArw https://twitter.com/MarginallyC https://github.com/MarginallyClever/

i-make-robots commented 2 years ago

Also shameless plug for our new gearbox: https://www.marginallyclever.com/products/mcr-gearbox-13-70-78-135-109-a-diy-kit/ Might make for a good turntable. The brain board runs Marlin 3d printer firmware so you know it's fast and accurate.

On Mon, Feb 7, 2022 at 12:24 PM Dan Royer @.***> wrote:

Mmm... the driver may activate on the falling edge (when going high to low). if you want a certain number of steps/s A then you need a delay value of ~1000/A. At low momentum A cannot be very big, and as the system starts moving A can rise to take advantage of momentum. in a 200 step stepper motor a full turn in one second - with no microstepping - is 5ms per step. if you have typical 1/16 microstepping then you need delayMicroseconds() BUT in fast moving systems the digitalWrite is the bottleneck.

On Mon, Feb 7, 2022 at 11:07 AM Mudrák Balázs @.***> wrote:

Hi! Sorry for the late reply I had a busy day. I have figured out what's wrong: There is no delay between setting the step_pin HIGH, and setting it low So originally it's:

digitalWrite(motors[motor].step_pin,HIGH); digitalWrite(motors[motor].step_pin,LOW);

but this doesn't work, because there is no delay between the two states. So the correct way is:

digitalWrite(motors[motor].step_pin,HIGH); delayMicroseconds(500); digitalWrite(motors[motor].step_pin,LOW);

You can of course put whatever number you want instead of 500. It is still possible that I'm missing something, but the interpreter is working perfectly.

The turntable will have a non-repeating patter. (example) https://i.pinimg.com/originals/f5/0a/ac/f50aac16a5deb91a367827f0b83a137c.png We(a mate and I) done previous scans with a white background and Meshroom handled it great. I'll reach out to you once we have something that's in a mostly working state if you are interested. :D Current state: [image: 20220207_200534] https://user-images.githubusercontent.com/33597575/152854894-c68eb6ac-8e7b-4f48-b94b-f7a5427ef55b.jpg

— Reply to this email directly, view it on GitHub https://github.com/MarginallyClever/GcodeCNCDemo/issues/32#issuecomment-1031816512, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALFRBQ34M6I24BLQX6IDGTU2AKAFANCNFSM5NTZEVZQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

--

Dan Royer

Owner

1 (604) 259 9564 <16042599564> @.*** www.marginallyclever.com https://www.facebook.com/MarginallyClever/ https://www.instagram.com/imakerobots/ https://www.youtube.com/channel/UCfbRxqjuOgE2EzRKxcePArw https://twitter.com/MarginallyC https://github.com/MarginallyClever/

--

Dan Royer

Owner

1 (604) 259 9564 <16042599564> @.*** www.marginallyclever.com https://www.facebook.com/MarginallyClever/ https://www.instagram.com/imakerobots/ https://www.youtube.com/channel/UCfbRxqjuOgE2EzRKxcePArw https://twitter.com/MarginallyC https://github.com/MarginallyClever/