Requested

Skill For Controlling Waveshare Serial Servos Type ST Series Score 1821

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

Want to see this feature happen? Like it to increase the score.

ARC Pro

Upgrade to ARC Pro

Elevate your robot's capabilities to the next level with Synthiam ARC Pro, unlocking a world of possibilities in robot programming.

#1  

Question

Do they make more or less noise then a standard servo?

Thanks

PRO
Synthiam
#2  

I haven't heard anything about these servos - but you mention they're FeeTech compatible. You're experiencing an issue where the position cannot be read?

Maybe before we recreate the wheel if they're compatible, let's look at how you're connecting them and what kind of EZB is being used. This way, we can identify any potential connection issues that is preventing bi-directional communication. So, can you tell me these things..

  1. What kind of EZB are you using?

  2. Do you have the WaveShare signal-line connected to both the hardware RX & TX of the EZB? Remember, this must be using HARDWARE UART, not software uart on the EZB. So what ever EZB you are using, it must support hardware uart for bi-directional communication.

  3. Do you receive any errors or log messages in the feetech robot skill console window?

  4. Anything else you can think of adding or telling me so we can identify if it's a connection issue before allocating resources to develop a robot skill.

PRO
Germany
#3   — Edited

Update / Feedback to serial wave share servos.

@Mr Ball, the servos do not produce any noise even under high load and run smoothly to their target position via an acceleration and braking curve.

The servos of the ST-series (e.g. ST3025 or ST3215) can be addressed directly with Skill Feetech RS 485. The servos can be addressed by both the Waveshare and the Feetech UART controller. WS servos of the type SC-series (e.g. SC15) can be addressed via skill Feetech serial bus servos

There are two restrictions:

  1. Speed can only be controlled via Acceleration. Values between 1 and 20 make sense. Speed and velocity values have no effect.
  2. No positions can be read back. That's a shame, but it's probably due to the COM-xx connection. Here ARC indicates a connection error.

I now operate 28 ST-servos in my humaniod pib-robot and I am satisfied. Although position feedback would be great.

PRO
Synthiam
#4  

Robochess, I read your comment about speed and made me think. So I checked your diagnostic log and you’re running ARC Free but you’re a Pro user

Upgrade to ARC Pro to experience pro features.

PRO
Germany
#5  

Hi DJ Sures,

I already have a Pro annual license for two PCs. There seems to be something wrong with the diagnostic log, or it's because I sent my last post from a PC that actually only had a free version installed. If that was the cause, things should be different now. A Pro version is installed on this PC (my Robo-Labtop).

PRO
Synthiam
#6  

Okay perfect - can you answer these questions for me...

  1. What kind of EZB are you using?

  2. Do you have the WaveShare signal line connected to both the hardware RX & TX of the EZB? Remember, this must use HARDWARE UART, not software uart on the EZB. So what ever EZB you are using, it must support hardware uart for bi-directional communication.

  3. Do you receive any errors or log messages in the feetech robot skill console window?

  4. Is there anything else you can think of adding or telling me so we can identify if it's a connection issue before allocating resources to develop a robot skill?

PRO
Germany
#7  

I use a WS Serial Bus servo Driver Board and operate it directly via a USB C interface. In my case it reports via COM-17 via WIN. ARC cannot initially establish a connection to the port.

The error message is -Port Connectin Error-.

In the Feetech RS 485 Skill, at least the TX communication works weel and the servos can be addressed as described. Message from the Feetech skill is COM17 @ 1000000bps.

If it is better to use a PI, Arduino or ez-b v4, for example, I am free to do so. Everything is there so far.

Link: WaveShare servo Driver Board. https://www.waveshare.com/wiki/Bus_Servo_Adapter_(A)

PRO
Synthiam
#8   — Edited

Okay, if you can answer these questions, please.

  1. Do you have the WaveShare signal line connected to both the hardware RX & TX of the EZB?

  2. Also, RS485 robot skill seems to use different commands than the SerialBus robot skill. Can you verify that the SerialBus robot skill works for moving the servos?

PRO
Germany
#9  

Hi DJ Sures,  thank you very much for your support!!

To the questions.

  1. So far I have not used the discrete UART connections TX and RX, but rather connected the servo controller to the PC via USB.

I then tested the connection using the Python and Arduino programs provided by WaveShare. Both work well, even bidirectionally. The servo data such as position, temperature, etc. are sent and received. So far it looked good, even the connection in both dirictions.

  1. I tested the Feetech serial bus skill firsst. I assumed that this was the right skill. It only works with the WS servo series SC15 but I use servos from the ST series. Although these servos move with the Feetech serial bus skill, but the positioning is completely wrong. With the Feetech RS 485 skill, they run as they should. But without position feedback

No data is received from the servos in either skill

PRO
Germany
#10  

Hi Robo developers,

here is a small update on the topic of Control Waveshare Smart - Servos with ARC.

In principle, I can live with the solution that was found. The advantages of the servos with a focus on position feedback for teaching movements and the use of multi-loop mode for gears, unfortunately still don't work. But that would be exactly the sensible application of these servos. I believe that smart servos will play an increasingly important role in the future. The prices for smaller servos of this type, without metal housing and with simple gear, are now in the region of 20.

PRO
Portugal
#11  

Nice servos. Precise and smoth movement.

PRO
Germany
#12  

Hi Dark Harvest,

thank you and yes, that looks pretty good at first glance, but I can't use yet the full potential of the servos under ARC as described.

The second video shows what is possible, when the servos are addressed directly with the right commands from Python or Arduino C. You can also see, how useful the multi-turn mode is, in conjunction with a gear.

With a printed planetary gear, ratio of 10:1, for example, there is plenty of torque and speeds that are suitable for a large robot.

PRO
Germany
#13  

Is it possible to upgrade the Python version provided in ARC to, for example, Python 3.11? My goal is to integrate more complex Python programs and modules into Python scripts, thereby expanding the capabilities and limits of ARC.

PRO
Synthiam
#14  

They look like nice servos - but the issue is there is no real way to program them outside of their libraries. They haven't published any API docs or protocol docs. Several similar-priced servos work with arc, such as fintech. There isn't much Synthiam can do when the company doesn't want anyone to use their products Shrug. You can reach out to them and ask them to create a robot skill. My advice is: bug them - the squeaky wheel gets the cheese.

PRO
Germany
#15  

OK, I understand.:(

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;)

PRO
Synthiam
#16  

I moved your Python question here because it concerns this robot skill you want. The Python version in ARC is compatible with any Python you'd want to write. The issue you're facing is that you're misinterpreting a "Python program " as a " Python code within ARC."

ARC is already a framework that the library you're asking about isn't aware of. That library from Waveshare has no idea what ARC is. It can't communicate with ARC because it is made for someone who wants to write a program from scratch.

Since you're their customer, I'd recommend bugging Waveshare and asking them to create a robot skill. You paid money for their product and want to use it, but they're making it impossible. Their competitors, such as robotis, feetech, and others, have robot skills created for arc. They should as well.

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

PRO
Germany
#25  

Sorry, the servo didn't move in any of the test cases. It was always released.

This is the case with and without the RTS signal. Since the Scill has a kind of terminal, I simply copied the displayed feedback for the respective test cases. This way you can see whether and, if so, how it went. Sorry if that was misleading

PRO
Synthiam
#26  

Hmm okay - let me take a look at a few more things tomorrow if I can squeeze in some time.

Next time you paste stuff, put it in the code tag is always a good one. that's with the [ code ] and the [ / code ] . that is useful. otherwise it gets squished all together

PRO
Synthiam
#28   — Edited

The documents you shared are for BUS SERVOS, and you're not using a bus servo. You are using an RS485 servo, so those documents do not apply.

According to this, the ST servos are compatible with the dynamixel AX series protocol. So maybe use the dynamixel robot skill?

Waveshare servos are rebranded feetech.

User-inserted image

PRO
Germany
#29  

Ok, thanks, I'll try that out tomorrow. I'm using an Arduino UNO for that. Do I understand that correctly? RX and TX are connected in one wire? That seems unusual to me?

PRO
Synthiam
#30   — Edited
  1. you should be using a dongle or USB controller made for the servos. If you're not, that's also why you can't get them to be fully functional. RX and TX are both required

  2. if you're using an EZB, you need to have TX and RX connected together because the single wire uses bidirectional

  3. if your servos are rs4285 4 wire, you need to use a serial to rs4285 converter

PRO
Germany
#31  

Yes, of course the servos are addressed via a USB controller. Here is a schematic diagram to clarify the current setup.

User-inserted image

I will try the Dynamixel skill today, by using the ez-b v4 for this.

I am very excited to see if it really works.

PRO
Germany
#32  

Feedback on the Dynamixel skill with Waveshare servos

Servos cannot be addressed. There is no connection to the servos, ping fails. Voltage is correct, addresses are correct, ezb is running and can be addressed.

Test with PWM standard servos works.

User-inserted image

User-inserted image

PRO
Synthiam
#33  

Do not use the ezb. Use the USB controller. If you use the EZB, you're introducing extra points of failure.

You also have to ensure the baud rate is correct.

PRO
Germany
#34  

... this is probably a stupid question, but how can you select a USB port in the Dynamixel skill?

User-inserted image

It looks completely different in the Feetech skill.

User-inserted image

Sorry and thank you very much

PRO
Synthiam
#35  

Ah, oh boy - that's because it's missing! We'll have to add that:)

Also - does your servo work with the Feetech bus servo skill? or only the rs485 skill?

PRO
Germany
#36  

No, I have now tested all servo skills.

The servos can only be controlled with Feetech rs485 skill.

There are some reports online that indicate that Feetech and Waveshare should actually be identical?

It is indeed the case, that there are some servos whose name and specification are the same for Waveshare and Feetech. This includes the ones I use. That gives me hope.

I have now also ordered a few Feetech servos. I can then test whether they provide position feedback and can also be used in multi-loop mode.