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.
Question
Do they make more or less noise then a standard servo?
Thanks
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..
What kind of EZB are you using?
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.
Do you receive any errors or log messages in the feetech robot skill console window?
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.
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:
I now operate 28 ST-servos in my humaniod pib-robot and I am satisfied. Although position feedback would be great.
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.
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).
Okay perfect - can you answer these questions for me...
What kind of EZB are you using?
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.
Do you receive any errors or log messages in the feetech robot skill console window?
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?
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)
Okay, if you can answer these questions, please.
Do you have the WaveShare signal line connected to both the hardware RX & TX of the EZB?
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?
Hi DJ Sures, thank you very much for your support!!
To the questions.
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.
No data is received from the servos in either skill
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.
Nice servos. Precise and smoth movement.
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.
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.
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.
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
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.
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.
Here try this: https://synthiam.com/Support/Skills/Servo/Waveshare-Bus-Servos?id=22623
Make sure you read the manual on how to use it. report back
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.
new robot skills can take some time to show up too. to force it, I think you can do this...
close arc
navigate to C:\ProgramData\ARC
delete the file "AvailablePluginsList.txt"
load arc
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
Case 2 with RTS on
Set Speed RTS on and off
Release RTS on and off
Get Position RTS on and off
Summary
Servo #1 is always released and shows no reaction. For feedback, see the list above.
For testing purposes, I used the Feetech RS485 skill again. Also COM7, servo #1. T he servo is immediately responsive, with the limitations discussed.
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
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...
Answer that and it will be useful
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
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
I found another document from Waveshare about the protocol. I hope it helps.
Waveshare documentation
..and here the comparable document from Feetech
Feetech Smart servo Communication Protocol Manual.pdf
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.
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?
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
if you're using an EZB, you need to have TX and RX connected together because the single wire uses bidirectional
if your servos are rs4285 4 wire, you need to use a serial to rs4285 converter
Yes, of course the servos are addressed via a USB controller. Here is a schematic diagram to clarify the current setup.
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.
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.
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.
... this is probably a stupid question, but how can you select a USB port in the Dynamixel skill?
It looks completely different in the Feetech skill.
Sorry and thank you very much
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?
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.