Asked

Skill For Controlling Waveshare Serial Servos Type ST Series

These servos are high quality and the type ST3215 is also quite inexpensive. The type ST3025 (BL / metal housing) is suitable for semi-professional use. Robots for show cases and longer operating times could be equipped with this. The servos can already be activated with the Feetech RS RS485 skill. The two communication protocols are probably very similar. However, no positions feedback can be read back. I think this can be achieved with an appropriate modification of the exisiting Feetech skill. This makes it a Feetech / Waveshare skill. Certainly very useful with probably little effort


ARC Pro

Upgrade to ARC Pro

Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.

PRO
Synthiam
#17  

Quote:

I have already tried to access the servos with the correct Python commands and sc_servo_sdk from ARC. But it seems that the Python version in ARC has to be upgraded to e.g. 3.11. I have already asked about this possibility before. The protocol is extremely similar to that of the Feetech servos. My experience with Waveshare support gives me little hope that they will develop a skill. But I am happy to try. My hope is more on a work around
As I said in my last post, their library in Python is for a complete standalone Python program. That means you'd load up Notepad or whatever, create a MyProgram.PY, and start writing Python.

Poke them and see what they say about a robot skill. Most companies are generally positive and respond well to creating one because it means more customers. Consider this: you're having issues using their servos, so imagine all of the other people having the same issues with them. My philosophy is that if someone has a problem, it most likely means everyone else is as well. I clicked and clicked and clicked around their website looking for information about accessing their servos; there's so little there. They have libraries but no published protocol documentation and such.

For fun, I might make a robot skill to test the waveshare and see if I can reverse engineer their Arduino library. I don't have much time today, but I can give it a quick experiment. If we can read and write to their servo, at least I can modify an existing robot's skill to use it. Let me see what I can come up with.

PRO
Germany
#19  

First of all, thank you very much for the extremely quick response!

love

I will start testing it immediately. I wrote to Waveshare earlier.

There is no capacity available until February 4th, I suspect because of Chinese New Year. We'll see if anything happens after that.

PRO
Synthiam
#20  

new robot skills can take some time to show up too. to force it, I think you can do this...

  1. close arc

  2. navigate to C:\ProgramData\ARC

  3. delete the file "AvailablePluginsList.txt"

  4. load arc

User-inserted image

PRO
Germany
#21   — Edited

The servo does not move with the skill yet. In my case it is addressed via COM 7 and Servo-Adress is #1

Here is the feedback

Case 1 without RTS

This will move the servo between positiosn 250, 750, 250, 750 with 1 second delay
moving to position 250
moving to position 750
moving to position 250
moving to position 750
done

Case 2 with RTS on

This will move the servo between positiosn 250, 750, 250, 750 with 1 second delay
moving to position 250
moving to position 750
moving to position 250
moving to position 750
done

Set Speed RTS on and off

1 second delay
set speed 300
moving to position 250
moving to position 750
moving to position 250
moving to position 750
set speed 0 (Fastest)
done

Release RTS on and off

This will release the servo so you can move it by hand.
done
 servo is allways released

Get Position RTS on and off

This will get the position of the servo. If you release it first, you can move the servo by hand and press this button to see the position.

System.Exception: Error: read timeout has occurred
   bei WaveshareServo.ReadResponse(Int32 length) in C:\My Documents\SVN\Developer - Controls\In Production\Waveshare\Waveshare Bus Servos\MY_PROJECT_NAME\Waveshareservo.cs:Zeile 62.
   bei WaveshareServo.GetPosition(Byte id) in C:\My Documents\SVN\Developer - Controls\In Production\Waveshare\Waveshare Bus Servos\MY_PROJECT_NAME\Waveshareservo.cs:Zeile 124.
   bei WaveshareBusServos.MainForm.btnShowPosition_Click(Object sender, EventArgs e) in C:\My Documents\SVN\Developer - Controls\In Production\Waveshare\Waveshare Bus Servos\MY_PROJECT_NAME\MainForm.cs:Zeile 180.

Summary

Servo #1 is always released and shows no reaction. For feedback, see the list above.

PRO
Germany
#22  

For testing purposes, I used the Feetech RS485 skill again. Also COM7, servo #1. T he servo is immediately responsive, with the limitations discussed.

PRO
Synthiam
#23   — Edited

Sorry I don’t understand the results. Can you try explaining again?

Edit: maybe use the formatting options in the editor or markdown to structure the reply. I’m struggling to understand it every time I reread it:)

PRO
Synthiam
#24  

I edited your post and i think I formatted it by what you meant. I'm not sure how to understand the results still. Here's my only question...

  1. does the Set Position button move the servo? Check with both the RTS on and RTS off

Answer that and it will be useful