×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

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

  • Posts: 983
  • Thank you received: 375
Hi Kevin, I'm glad you found my Astroberry AMH driver inspiring and base for your project. Great work!
I have just purchased Waveshare motor HAT and given it a try with Astroberry DIY , which is much more advanced focuser driver than Astroberry AMH.
It supports DRV8834 and A4988 stepper controllers, supports custom GPIO pins, uses kernel native libgpiod instead of bcm2835 or wiringpi, remembers focuser position between runs and provides focuser temperature compensation with DS18B20 sensor.
It uses typical DIR, STEP, SLEEP, M0, M1, M2 pins connected to Raspberry GPIO so I tested it with Waveshare motor HAT. Well, it works but I faced some issues with microstepping and sleeping a motor.

As you probably have much more experience with this device, I've got two questions:
1) It looks like the device does not handle software microstepping without touching hardware i.e. dip-switches. Am I right saying that you cannot control microstepping with software only?
2) Another issue is related to sleeping a stepper motor. Apparently hardware designers did not wired SLEEP pin of DRV8825 to any of Raspberry GPIO. Does ENABLE pin cut off step motor power circuit so it does not get hot?

Clear skies!
3 years 5 months ago #60858

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

  • Posts: 421
  • Thank you received: 102
Hey Radek!

Truth be known, I didn't know Astroberry DIY focus driver existed when I wrote this, I only knew about the AMH driver. I probably would have used yours had I known about it. :)

To answer your questions:

1. Correct, they haven't exposed the microstepping select pins to the GPIO pins. They were nice enough, though, to provide solder pads that can be jumpered so that you can select the desired microstepping via GPIO. Not sure why it isn't enabled without doing some soldering, though.
2. Yes, the ENABLE pin will turn off the motor, cutting all power to it, keeping it from getting hot. That's what I do in my driver, I shut down the motor as soon as the move is complete, so the motor doesn't get hot, and to save power, if you're running off battery power.

For some reason, the sleep pin is tied directly to 5V, and the Waveshare manual states: " Should keep High, otherwise chip will enter sleep mode, and module cannot work properly."

Make of that what you will.
3 years 5 months ago #60859

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

  • Posts: 983
  • Thank you received: 375
Thanks Kevin. I will give it a closer look then to add support for this device to Astroberry DIY
3 years 5 months ago #60860

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

  • Posts: 6
  • Thank you received: 0
Hello DYI astromotorists :)

I have jumped the gun and got Waveshare HAT, compiled the GIT and can find XML files as per Install_Manifest:
/usr/local/bin/indi_wmh_focuser
/usr/share/indi/indi_wmh_focuser.xml

But the Focuser driver doesn't show up in the KStars/EKOS drop down list.

My suspicion is that it is because INDIServer is started by Kstars, not manually and probably I have to add this driver somewhere, but there is nothing that suggests this in the INDI setup of KStars.

And since my Raspbian skills are pretty poor, I am a bit lost what to do. Any good ideas?

ps. I have checked usr/bin/ directory and there are bunch of familiar binaries with sort of driver names (indi_ccd and similar), this doesn't have wmh_focuser binary, should I move it from build to usr/bin? (sorry if dumb question)
3 years 5 months ago #61204

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

  • Posts: 215
  • Thank you received: 16
I noticed the stock compile for indi_wmh_focuser installed it in /usr/local/bin instead of /usr/bin with the indiserver stuff. Depending on the path setup, this may or may cause your problem. Open a terminal and type:
indiserver -vvv indi_wmh_focuser
and see what it shows. Don't start KStars or it will want to kill that iteration of indiserver and start its own.
Expect that it either runs, and shows happy wmh_focuser messages, or can't find the indi_wmh_focuser driver. or if there is a hardware issue it could try to restart several times and die. If it is "lost" on the drive, you can either leave it where it is and put a symbolic link to its compiled location in /usr/bin or actually move it to /usr/bin....or something else is going on entirely.

There is a method for adding "non-distribution" drivers to the lists in Ekos, but it would be good to verify the driver works first.
Last edit: 3 years 5 months ago by Jon Carleton.
3 years 5 months ago #61210

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

  • Posts: 215
  • Thank you received: 16
Since a power discussion has returned..after a fashion... I have made (and verified) an observation regarding the Waveshare board with the Pi4B. If you try to run the Pi4B by flipping the switch and powering the Pi from the Waveshare board, you'll suffer low voltage issues. This does not happen with a Pi3, as it seems very happy with the power output provided by the Waveshare board. Also, if you power the Pi4B via its own USB port, you must turn that switch on the Waveshare board to OFF or things tend to get unhappy. Running the Waveshare board with its own supply and the Pi4 with its own supply works very well as long as the switch is in the OFF position on the Waveshare board.

I also recommend a case (if you can find one) for a Pi4 with a side mounted fan when using the Waveshare board. The board blocks the flow from a top mounted fan and a bottom mounted fan is just useless from the start. You really need a fan with a Pi4, even running separate power supplies and plastering heat sinks all over the place.
The following user(s) said Thank You: Dainius Urbanavicius
3 years 5 months ago #61212

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

  • Posts: 6
  • Thank you received: 0
Thanks Jon for your insights. I have already noticed low voltage warning, but was sure it was due large USB dock that I have attached during the SD card upgrade. If the power voltage issue is real, then half of the convenience powering everything with 12V plug via Pegasus Power Box is going straight to the trashcan... I will try your solutions later today and see if this works. Thanks again!
3 years 5 months ago #61228

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

  • Posts: 6
  • Thank you received: 0

Jon, you were right - the binary sits in usr/local/bin... I have started INDI as you recommended here is what I got, but even if I try starting EKOS the driver is not in the list:

stellarmate@stellarmate:~ $ indiserver -vvv indi_wmh_focuser
2020-10-08T13:50:34: startup: indiserver -vvv indi_wmh_focuser
2020-10-08T13:50:34: Driver indi_wmh_focuser: pid=1576 rfd=3 wfd=6 efd=7
2020-10-08T13:50:34: listening to port 7624 on fd 4
2020-10-08T13:50:34: Driver indi_wmh_focuser: sending msg copy 1 nq 1:
<getProperties version='1.7'/>

2020-10-08T13:50:34: Driver indi_wmh_focuser: read defSwitchVector Waveshare Motor HAT Focuser CONNECTION Idle rw
CONNECT='Off'
DISCONNECT='On'
2020-10-08T13:50:34: Driver indi_wmh_focuser: read defTextVector Waveshare Motor HAT Focuser DRIVER_INFO Idle ro
DRIVER_NAME='Waveshare Motor HAT Focuser'
DRIVER_EXEC='indi_wmh_focuser'
DRIVER_VERSION='1.0'
DRIVER_INTERFACE='8'
2020-10-08T13:50:34: Driver indi_wmh_focuser: read defSwitchVector Waveshare Motor HAT Focuser DEBUG Idle rw
ENABLE='Off'
DISABLE='On'
2020-10-08T13:50:34: Driver indi_wmh_focuser: read defNumberVector Waveshare Motor HAT Focuser POLLING_PERIOD Idle rw
PERIOD_MS='1000'
2020-10-08T13:50:34: Driver indi_wmh_focuser: read defSwitchVector Waveshare Motor HAT Focuser CONFIG_PROCESS Idle rw
CONFIG_LOAD='Off'
CONFIG_SAVE='Off'
CONFIG_DEFAULT='Off'
CONFIG_PURGE='Off'
3 years 5 months ago #61242

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

  • Posts: 215
  • Thank you received: 16
The good news on that test is that indiserver is finding the driver and it seems to be loading properly. I don't use Ekos anymore, but I'll fire it up and see if I can remember what you have to do to load an "unknown driver." I seem to remember there was a process.

I no longer have my voltage alerts on the Pi4 since I separated the power for the HAT and the Pi board. Another thing to look out for, since you mentioned USB, Certain powered USB3 hubs cause some issues with WiFi connectivity when plugged into the USB3 port. This seems to be intermittent, so it may be limited to my setup. I switched USB hubs and the problem seemed to pass, but I am still not sure my WiFi performance is what it once was.

I'll report back on the Ekos setup.
3 years 5 months ago #61270

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

  • Posts: 215
  • Thank you received: 16
Yeah...there is a Custom Driver tab in Ekos. You have the [+] icon for adding profiles, next right is the [pencil] for editing profiles, then [-] for deleting profiles and THEN, [[some odd square thing] which invokes the Custom Driver Setup.

In my version of KStars/Ekos, the Waveshare Motor HAT Focuser is already there, but that may just be due to my installing it some time ago. I've slept since then. Anyway, putting in a new driver is fairly logical.

3 years 5 months ago #61272
Attachments:

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

  • Posts: 6
  • Thank you received: 0
Jon, many thanks! Adding custom driver didn't work, but you gave me idea to copy driver from usr/local/bin to usr/bin and it appeared in the list and WORKED! Super thanks for your help! Now off to get a motor and tuning the setup :)
3 years 5 months ago #61293

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

  • Posts: 1309
  • Thank you received: 226
Thank you for your work. I have been inspired to upgrade my motor controller board from the Adafruit HAT to this new one from Waveshare.
Question: Kaczorek pointed out that is can "remember focuser position between runs". Does this mean it stores stepper position on the board? Will it therefore know the position in the focus module when started, or when recovering from a crash?
I have been frustrated by restarting after the occasional crash and the focuser position being reset to zero. Requiring me to intervene to give it room to work with.
3 years 5 months ago #61313

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

Time to create page: 0.887 seconds