×

INDI Library v1.9.8 Released (29 Sep 2022)

Bi-monthly INDI Library released with new drivers and bug fixes.

INDI focuser driver for Waveshare Stepper Motor HAT for Raspberry Pi / Rock Pi

  • Posts: 1279
  • Thank you received: 222
I have two methods. For my RC I 3d printed a rudimentary dial indicator that magnified small movements. www.thingiverse.com/thing:4607036
I just had to also print a part that could hold in the focuser.

The other method uses my planetary camera and a star or artificial star. Start looping frames and the HFR graph will begin to populate with samples. It's then a matter of finding a backlash setting that returns to the same HFR after In-Out moves reliably.
INDI/KStars on Raspberry Pi 4, 4gb
Raspbian Buster with AstroPi3 script configuration
Skywatcher HEQ5 Pro Mount
Canon 600D Camera
Orion SSAG/ASI120mm @280mm Guide Scope
PHD2
Waveshare Stepper Motor Board - DIY Focuser
Adafruit GPS Module
Generic Bluetooth Joystick.
Startech 7 port powered USB Hub.
2 months 3 weeks ago #86146

Please Log in or Create an account to join the conversation.

  • Posts: 10
  • Thank you received: 0
Hey,
I'm using a nema17 and a DRV8825 with a breakout board. I connected the pins to the rock pi according to the waveshare scheme. The driver works but when I run some steps the Motor doesn't move a bit, but it only makes a beeping sound like a mosquito (I tried small steps but also up to 10'000 steps). The beeping stops, when the steps are executed, so as far as I understand the enable pin works. I tried delay settings from 20 up to 1000 microseconds but nothing changed. At this point I'm not sure what I did wrong, is there another adjustment which I missed?
2 months 2 weeks ago #86219

Please Log in or Create an account to join the conversation.

  • Posts: 414
  • Thank you received: 99
You're the first to use a breakout board. I've been wanting to try that actually. So hopefully we can get this working :)

There are only 2 things that come to mind. One is the delay, which you already tried. Does the delay seem to be taking effect? Like if you set the delay to 200, and execute a 1000 step move, does it actually take a while to execute? It should take somewhere around 6 seconds in that case.

If we're sure the delay is functioning as intended, then I can only think that the motor coils are wired incorrectly to the breakout board. If you give me the exact motor you're using, and the breakout board you're using, I can have a look and double-check you wired it correctly.

-- Kevin
2 months 2 weeks ago #86220

Please Log in or Create an account to join the conversation.

  • Posts: 37
  • Thank you received: 3
You should set "Delay per step" in a value between 50 and 200, or whatever works for you.

If you don't set this the motor will try and run as fast as physically possible, which results in it doing a whole lot of nothing because the torque is super low. I use around 150 or so, the docs say 200.

It might be good to default this value to 200 instead of 0 in the plugin.


EDIT : I missed that you tried the Delay, I thought you said motor speed.
Last edit: 2 months 2 weeks ago by radon199.
2 months 2 weeks ago #86221

Please Log in or Create an account to join the conversation.

  • Posts: 10
  • Thank you received: 0
Yes, the delay does indeed seem to be taking effect. When increasing the delay it takes much more time to execute the steps, other than that I notice no difference. Except, that the beeping sound maybe changes just a little.

I use the "wavgat extension board": de.aliexpress.com/item/32898982947.html?gatewayAdapt=glo2deu
The motor is a nema 17HS4401: www.cytron.io/p-nema-17hs4401-bipolar-stepper-motor
Here's how I connected the pins: (E-enable D-direction S-step)
https://ibb.co/bd1x4rJ
https://ibb.co/Fmb6QpT
Edit: Sorry for the links, I wanted to insert the images here.. basically they show how I connected the E, D and S pins.

Actually, before I had a raspberry pi 4 where I used the same focuser setup, just with the astroberry focuser driver, if that helps.. It worked after I played a little with the enable pin, since the driver is not made for the DRV8825.
Last edit: 2 months 2 weeks ago by Simon.
2 months 2 weeks ago #86222

Please Log in or Create an account to join the conversation.

  • Posts: 414
  • Thank you received: 99
If you had it working with the Astroberry driver, then your motor coils are probably wired correctly.

The only other thing that comes to mind that could explain what you're experiencing, is if you wired the Direction and Step wires backwards.

Your diagram all looks correct.

When I was running Armbian Bullseye on the Rock Pi, I had to blacklist one of the i2s modules, since it was interfering with the GPIO. But the symptom was nothing would happen, the motor wouldn't make a peep. Your symptom is different. Older version of Armbian was fine. As was their distro that you could download from their website.

So I'm kinda scratching my head. You wouldn't happen to have an oscilloscope that you could attach to the GPIO pins, would you? :)
2 months 2 weeks ago #86224

Please Log in or Create an account to join the conversation.

  • Posts: 414
  • Thank you received: 99
Actually, there's one more thing you could try. You could try my Waveshare driver on a Raspberry Pi instead of the Rock Pi, and see if it works.
2 months 2 weeks ago #86225

Please Log in or Create an account to join the conversation.

  • Posts: 37
  • Thank you received: 3
What is your motor micro-stepping set at? The plugin is hardcoded to 32 steps which is what the waveshare comes pre-configured with.
I would set your controller to a single step, and build the plugin again with the step size set to 1 as well, and try that.
2 months 2 weeks ago #86226

Please Log in or Create an account to join the conversation.

  • Posts: 10
  • Thank you received: 0
I checked the wiring multiple times and actually also switched the dir and stp wire, but had the same result. Is it possible that only single gpios don't work for a reason e.g. the step gpio pin?
I have not a great knowledge about steppers so this question might seem a little dumb but is the frequency directly controlled by the delay time or is there an additional parameter that can be tuned? Because it just seems to me that the motor brings up the torque needed (I tried turning it by hand when it was running/but not moving and it held position quite sturdy), but maybe it misses to hold up the frequency of the controller.
Sadly I don't have an oscilloscope, only a multimeter..
Setting it up with the raspberry pi would take quite a while, I would have to set up the whole OS new, but I'll give it a try if I don't get this to work sooner..
2 months 2 weeks ago #86227

Please Log in or Create an account to join the conversation.

  • Posts: 10
  • Thank you received: 0
I also thought about that and I actually tried it without success.. I tried the hardcoded 32 with the extension board set to 1 1 1 and also all other different configurations, and I changed the value in the script to 1 and set the extension board to 0 0 0 (also here I tried all other different configurations).
Last edit: 2 months 2 weeks ago by Simon.
2 months 2 weeks ago #86228

Please Log in or Create an account to join the conversation.

  • Posts: 414
  • Thank you received: 99
The frequency is directly controlled by the delay time. Nothing else.

You can use your multimeter to see if the step line is getting pulsed. You'll probably have to set it to AC mode.

If you think the step pin isn't getting properly pulsed, we can certainly try a different GPIO pin, in case something in the OS is interfering.

Before we try that, let's make sure the kernel module I was talking about isn't interfering with you. On my Rock Pi setup, I needed to blacklist snd_soc_rockchip_i2s

From the command line, try "sudo rmmod snd_soc_rockchip_i2s" and try the focuser, see if that makes any difference. Of course if you get an error that the module wasn't loaded in the first place, then that's definitely not the problem.
2 months 2 weeks ago #86229

Please Log in or Create an account to join the conversation.

  • Posts: 10
  • Thank you received: 0
Okay, I tried the command and it gave me an error that it is in use.. "sudo lsmod | grep snd_soc_rockchip_i2s" shows that it's used by snd_soc_rockchip_pcm and snd_soc_core. Is it safe to force remove it with "sudo rmmod -f snd_soc_rockchip_i2s"?

I used the multimeter to measure directly at the accessible soldering points of the DRV8825. I measured between the GND and STP pin in AC mode and while the motor should have been moving I got 0V in AC mode, interestingly in DC mode I measured ~0.120V while the motor was enabled/beeping and 0.02V while it was off. So GPIO_A5 (#35) where the STP pin is connected to, is sending a DC signal instead of pulses..
2 months 2 weeks ago #86231

Please Log in or Create an account to join the conversation.

Time to create page: 1.000 seconds