Andy627
Germany
Asked
— Edited
Hello, I have a question .
I have these servos in my robot and have now bought the EZ-B V4.
But if it does not get to work, can the Ez b control these servos?
The servos are all connected and the controller only has 1 cable
greetings
Can you post more details:
Servo brand and model ?
or
Product/Kit details ?
Hey, thanks for your answer.
It is the Ubtech Alpha s1
Data of the servo:
UBTECH Alpha 1S Robot Parts Digital servo UBT-12HC
description:
Model UBT-12HC Communications: Serial communication Speed: 6.5V: 0.238sec / 60 ° 8.5V: 0.198sec / 60 ° Torque: 6.5V: 8kg.cm 8.5V: 12kg.cm Gear: Copper alloy gear Bearing: Ball Bearings Angle range: 0-180 °, Adjustable Dimensions (mm): 44 * 22.5 * 29 Weight (g): 42 Amount of operating voltage (V): 7.4V Stable Current: 2.5A Operating temperature range: 0-55 ? Protection: Over Voltage, Over Current Dead bandwidth (no reaction zone): 0 Feedback: Position / angle feedback
If there's a data sheet for the serial communication protocol, then it would be an easy implementation as a plugin. Post the datasheet and I'll take a look.
I can't find the datasheet that contains communication protocol. Can anyone else find it? Maybe ubtech customer support has it
There is no contact to get with ubtech.there is not even a forum.
Can not find anything to unfortunately That's a shame I was so happy to test my ezb.
Is it possible to read the datasheet of the servo via the Ubtech Pc software?
not with the standard program from alpha1 and 2 this is the only link i can google.
ubtech
Does the Alpha 1 Series PC communication proto continue to help?
i didn get any contact with UB on there site or FB or skype.they dont just respond.
Alan
I have also ubtech times now hopefully they have an answer. Or do you have any idea Dj Sures?
Which data do we need exactly?
Serial protocol for the servos.
Alan
And that is not enough? Sorry for the questions I'm newbie
No, that is not enough. Most servos use a standard communication method called PWM (see hte servo tutorial in the learn section of the web site). These are custom servos that use Serial communication, and probably a proprietary instruction set. Dynamixel servos also do this, but they publish the instruction set so DJ was able to write a plugin. For anyone to write a plugin for these, we need the data rate and other connection properties, and the instructions and responses of the communication protocol.
Very unlikely UB is going to provide this.
Alan
Okey, I have no hope. Then I'll have to resell the Ubtech again
andy627
what is it what you try to do ?
@Nomad 6R Read post #1
RR
he wanted to use the UB servo's on ezbv4 ? or does he wanted to make a robot ?
@Nomad... He wants to control those servos with the ezb4... But without the communication protocol he won't be able to...
Have received an answer from Ub:
Hi Andy , that information is confidential and we can´t share it.
amazing you get respons from UB witsh adres did you use if i may ask.
YES: D I wrote a message today at noon on Facebook page and 2 hours later I had the answer
yes they have a few FB off UB
The protocol can easily be reverse engineered using a logic analyizer. I use saleae logic 16
after getting 2 reasonably cheap ubtech Alpha 2 robots I'd also love to be able to use ezb to control them
I've been able to find the following,
from https://alexsonea.com/2017/10/15/jimu-hacking-the-communication-protocol/ For the time being here is a summary of the finds:
the communication is at 115,200bps packages are send separately by servo; it doesn’t seem to be a bulk send instruction the package has the following structure: byte 1 and 2 = preamble = 0xFA 0xAF byte 3 = servo ID byte 4 = Command; for go to command we have = 0x01; we will try to find some other commands shortly byte 5 8 = Command parameters; for command = 0x01 (go to) they are: byte 5 = position = 120 + desired position in degrees byte 6 = duration = duration in ms / 20 byte 7 = 0x00 (? we don’t know what this is yet) byte 8 = 0x01 (? we don’t know what this is yet) byte 9 = checksum = sum(byte 3 through 8) mod 256 byte 10 = closure = 0xED (from END?) the servo returns one byte that seems to contain something specific to the ID of the servo (for ID 1 it answers with 0xAB, for 5 it answers with 0xAF; the content could be a status information where each bit has a meaning, similar to the status packet in the Dynamixel protocol
https://www.thanksbuyer.com/ubtech-alpha1s-digital-servo-built-in-avr-develop-board-6v-9v-ubt12hb-55166Protocol analysis method:(need robot)
FA AF 01 04 00 00 00 00 05 ED switch on led light FA AF 01 04 01 00 00 00 06 ED switch off led light Write servo:FA AF id 01 angle ? ? ? SUM ED Servo response:FA AF id AA ? ?real angle sum ED Read data:FA AF id 02 00 00 00 00 SUM ED Present experiment order (CD order is modification servo ID.) Order can do experiments in 01..FF sequence. Frame header:FA AF;frame ender:ED,SUM=ID+order+parameter,get the lowest 1 byte Frame header (2 byte) ID(1 byte) order(1 byte) parameter (4 byte) SUM(1 byte)frame ender(1 byte) Communicaton protocol format (length:10 byte) Initialization,electricity is on.And then separate it and control single servo with computer TTL. Connect computer TTL serial to the servo port.The computer (sscom32 serial software) can record it to the file when playing robot. Protocol analysis method:(need robot)
Modify ID:FA AF ID CD 0 newid 0 0 SUM ED
being able to control this LED eye with ezb would also be very cool ( https://alexsonea.com/2017/11/19/jimu-led-light-breakdown/ ) unfortunately I don't have the skills to create a plugin, but would be more than happy donate some $ to someone who can
Dj can you do something with it?
I can. I won’t be able to test but I can whip something up. Stay tuned
thanks DJ, more than happy to test whatever you come up with
Thank you DJ you are the best
hey one question yet these servos run but without problems with the Ez-b v4?
They should. From what I could find, they are 7.4v, so OK to use a 2s LiPo battery (recommended for EZ-B) to drive them directly from an EZ-B without worrying about alternate power or voltage regulators.
Alan
Thanks Alan
they have a robot too.robo soul.
robo soul
i tested these servo's today.wiht a lipo 1300 mah you do some 12 minites then your batt is empty.if you want to build a complete robot you need a batt, aleast 2500 mah
nomad - what servos are those? 12 minutes is not very long!
hi dj sorry late respond.i bouth this on ebay.here is the link.
servo robot
i forgot the robot has a 2800 mah batt.
Hello Nomad I'm just building my EZb in an almost same robot. Do you have more videos? Can you let him go? If so, can I get the script?
he's charging now.i try the walk later and post a video. you will need to adjust a lot.all standard jd have to go. and make your own.
Ok thanks , i am excited to look the Video
here an update metal robot.you can choose for original jd movement do, you have to adjust everything.also calibrate everthing with the levers and horns, off.the problem with raising arms is solved,found that one. now hope i get the walking and sit down and so.
The frame assigned to the STOP action in Auto Position has his arms raised.
Edit the frame that is assigned to the STOP action and move his arms into the position that you wish.
Locate the name of the frame that is assigned to STOP action...
Edit that frame...
hi dj
i found this .sofar ok but walking will be really diff.
Andy/Nick anyone... can you try this? This is a quick script i created to test moving the servos based on the info you provided. I'll use this as an EZ-Script test before making it a plugin.
Great robot!
I love the work you're doing and the community's help with your project.
Scott
Hi DJ,
I should be able to test out the script tonight, sorry for the late reply just got back from holidays.
Nick
Hi DJ,
Great news the script works, tested on ubtech servo's for alpha 2 and the Jimu robot set
thank you so much for taking the time to create a plugin for these servos I really appreciate it
Nick
Okay, can you try something for me? I’ll need to know the range. The documentation says it’s 120+position. The maximum value is 255.
So does that mean the position is between 120 and 255?
Can you remove the GetRandom() and change it to some values to find the max and min positions values for me?
both servos can move from 0 - 252
Interesting, so adding +120 to the desired position from the documentation is incorrect?
yes it appears so, I inputed the values directly into $data[4] anything above 253 actually comes up with an error
is there a tutorial how to do this what you did with the servo nick777 ?
Hi Nomad,
all I did is connect the positive and negative of the servo to D0 and the control wire to TX from uart0
ah i can use D23 too the control wire is the signal white wire ?too TX
yes I meant signal wire
what do i need to adjust in the script from dj? i have an alpha2 too and a metal robot. thanks
got it .i have 151 to 216 not alpha2 but the mettal robot
Patrick,
The script was just for testing. DJ is going to write a plugin based on the results. You don't need to do anything with the script and should not use it.
Alan
ah thanks alan.
Here: https://synthiam.com/redirect/legacy?table=plugin&id=240
Thanks so much DJ, can't wait to give it a try tonight
nick777
did you open your alpha 2.?
Hi DJ,
just had an opportunity to try the plugin but can't get it to work
added the plugin to a new project with the following settings Hardware uart0 two virtual servos checked V1 and V2 plugin shows Connected Events UART 0 @ 115200bps added a Movement Panel and added the 2 virtual servos tried moving the servos but nothing happens?
the script still works fine
running windows 10 with latest updates
The id’s of the servos are V1 and V2? They need to match. In the test code I sent earlier, the ID was 0 (zero). Can you try with that servo again, on V0?
What Movement Panel did you add?
the plugin removed the 120+position as we discussed. To clarify, in your testing you also removed the 120+? So you tested with 0 and 252? Not adding 120 to anything?
Also, can you try it with only one Servo?
the id's on the servos are 1 and 2, I changed your test script to match. I don't have any servos with id 0
I tried both
3)yes I removed the 120 from your script and inputed the values from 0 - 252 directly into $data[4]
also noticed that once I remove the Ubtech plugin from a project and try to add it again it crashes the plugin on startup and the only way to get it to load again is by restarting windows. Unfortunately I was unable to get a screen shot of it last night, will post later.
I will load ARC on a another computer and try that just in case
Nomad, have you had a chance to try the plugin ?
No not
Okay thanks. I’m trying in the dark here without servos to test with, so thanks for your patience!
alan said not to use it?
I said that you should let others help with the test script and wait for the plugin. We are now talking about the plugin. You should try it.
Alan
ok alan.
the plugin is for UB tech servo's only.?
Nick, can you try the plugin with only one V port selected. Meaning, only attempt to move one servo. And, use this script...
And tell me if the servo moves using the plugin and this script - thanks!
Also - update to the latest ubtech plugin in ARC please. Thanks!
Plugin link: https://synthiam.com/redirect/legacy?table=plugin&id=240
@Nick - any word on the updated plugin?
Hi DJ,
Sorry no, been away from home on business since last Thursday, back Friday will be able to test then.
I’d be more than happy to send you a Jimu robot kit with servo’s from amazon if it would make things easier ? Just email me a shipping address
Either way I’ll do the tests you’ve asked for by Friday
Nick
Let’s try the plugin first. I had a few mistakes that I didn’t notice when I first published it. Thanks for the offer though.
Hey Nick, how did the plugin work for you?
Hi DJ,
The plugin works great, had problems initially with it crashing on startup but this seems to be resolved after a windows reload
tested so far with 3 different types of ubtech servos chained together, working really well.
I know I'm pushing my luck but a feature request would be to add an option to read a set of linked servos and get it to automatically generate a frame in the auto-position plugin, my reason for requesting this is to make it easier for younger kids to be able to use it to make robot skits.
Thanks again, now I just to give the Alpha 2 an EZB brain transplant
Nick
Great to hear!
Latest update fixes a crash of ARC when adding the control with ez-b already connected.
Cool, I just got a 16 servo Jimu robot off ebay. It needs an EZ Robot upgrade! They make a set to build a humanoid robot, but it can't hear, see or talk. If I want it to walk forward then I need to make my own walk cycle for it. It can't move its head and no lights for eyes. I just really wanted the 16 servos to use for another EZ Robot! If they sold these sets with an EZ Robot brain and a camera they would have something super cool. It would still need a few more servos so it could look around and hands to pick things up. Glad I have a JD robot, he does everything right out of the box.
Contact ubtech and let them know
Andy627 did you get the Ubtech servos to work. ? I want to do the same thing
So if I understand we can replace all the alpha 1 electronics with your board and have a fully custom alpha?
ruallapeira. Thats exactly what I want to do farley@voltex.co.za
Hi guys:
I am thinking how would I use the IOTiny with this and I only see this line on wiring:
"all I did is connect the positive and negative of the servo to D0 and the control wire to TX from uart0 " (guess this is with the EZ-B V4)
Do we have specific info on how to do the following with the IoTiny:
"This plugin requires the RX signal wire of the servo be connected to TX of the selected UART or digital port (if Software UART is selected)"
I dont mind buying some EZ-B but I rather stick with a way to use IoTiny if possible.
The help in the plugin explains how to use it with iotiny. Simply use any of the digital ports for the connection. And specify the correct port in the plugin. Read the blue question marks and the plugin help beside options and it’ll make senses
thanks I will acquire a couple of boards... probably with the board in my hand it will be obvious
[color=#442e5f][size=3][font=OpenSans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"]hi raullapeira
[color=#442e5f][size=3][font=OpenSans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji]do you have any video about this project with the ubt robot? [/font][/size][/color]
[/font][/size][/color]
Hi all guys ! I see that the alpha 1S issue is intriguing many people . I have it and of course I'd like to control it by ezb v4. I need to know more about interfacing its servos. I saw there's a plug-in and some hardware information. I need to know, (I hope somebody in the forum has experienced these matters) :
Hardware : I'm attaching a photo, where 4 3-pin JST plugs can be seen. I think each of them drives , by 4 independent serial buses, some of the servos . Which pins are +,-, rx/tx pin ? how to connect these 4 buses to ezb ? I saw in the forum a simple scheme, but more detail is needed.
Software: the plug-in I found in this forum is designed for such 4-bus hardware , so to control , by ezb, each servo separately ?
attachment
I downloaded the plug in. It's an old PC, with win 7, non recent ezb version. I got this error.
What's going on ?
here is a sharper image
Update the ARC.
What's going on?
It looks like the plugin uses a more recent or non existent class/object in an older ARC version.
Keep your ARC updated, is a good recipe to avoid trivial issues.
Is the last ezb release (jan 2019) compatible with win 7 ? if not, I might have a problem with this old PC.
Ptp is correct. In order to add new features, the software continues to grow.
The latest ARC beta will technically run on Windows 7 but it’ll give a warning because it’s not recommended. Windows 7 was discontinued by Microsoft and no longer supported. This means new features of ARC are absolutely impossible to be supported in Windows 7 because Microsoft doesn’t support it.
*note: do not duplicate post.
Yes, I got the warning you say in the win 7 PC, but everything seems to work. I intend to test alpha 1S servos with ezb v4. The servo plugin seems to work. Now I have only this old PC available for this test. I need information about the hardware connection of those 16 servos to ezb. I asked for this in another post. Can you help ?
Wish I could help - but i do not have a servo or that robot to test with. In this conversation thread, there is someone way way up there who had a link to someone who reverse engineered the protocol. Maybe they showed how to connect the wires? I also believe Nink got them working, as he stated above. I would recommend browsing this conversation thread. There's 92 comments on that developed this thread - with great help i hope
I posted in this thread a photo of the robot controller, showing 4 JST plugs connecting to 4 serial buses to the servos. The servos work connected to a common line, addressed by their specific address , the way it happens in a serial I2C bus. Somebody has certainly tested this connection, but I don't know how to communicate with him. I hope he will reply to this post.
It isn't i2c. It's UART, as stated everywhere in this thread AND the plugin description. All you need to do is identify the Data, GND and Power wires of the servo connector. Follow the instructions on the ubtech plugin page here: https://synthiam.com/Software/Manual/UBTECH-Alpha-Servos-UBT-12HC-16022
If you read this conversation thread as i stated, you will find that there is a link that discusses the ID's and how it works. You will need to put a little leg work in to get it rock'n. Each servo has an ID. The lowest ID is 1. I'm sure the UB Tech software shows what ID is for what servo. If not, you'll have to experiment and try.
Connect them as described by the plugin. To the UART that you choose and power and gnd. I don't have a servo, but it would be pretty easy to look and see what wires are for what. Or, use google to research and find it. That's all i can do to help
I know it's not I2C. I meant that those servos work on a common bus (like I2C does), instead of individual connections like usual PWM servos.
I think all the 16 servos should work on a single control line. I'll study the plugin information , looking for details., i.e.:
I hope that experienced members could explain . In lack of information , I'll look at the control pins with an oscilloscope a let everybody know.
Yes one control line can control all 16 of the servos all at once. The timing is set so the servos and the EZ Robot board always send and receive at the right times. You can use the IO Tiny with a camera to make this robot do much more than it could before.
Thanks, mcsdaver. Alpha robot has 4 jst plugs with 4 separate 3-wire cables to the servos (as you can see in a previous post of mine). I think they are separated only for mechanical convenience of wiring, but probably they are all connected together in the pcb. I see no logic reason to control several groups of servos independently by the controller. I assume that the ezb v4 (uart or digital pin) can drive the common line of all the 16 ubtech servos. Do you know which jst pins are +,-, rx/tx ?
I don't have the same servos that you have, so I am not sure how to connect them to the V4 or IO Tiny.
Yah - they would be separated for mechanical reasons. The left side is probably one wire and the right side is another wire. But they all group together at the same place to the same connections on the PCB.
I looked around and can't seem to find any info on which wire is + or GND or signal. I'm guessing you can figure it out by looking at the board OR probing the connector with a volt meter
I discovered the voltages with a volt meter: 7,5 v power is center oin , one side is GND, other side is 5 V (control wire, high logic level ). I connected one of the jst plugs and tested the ezb plugin . It was able , by the real time control in the frame screen, via UART and V3,V4,V5, the 3 servos of one arm. The other plugs are probably for the other arm and the two legs. The movement is slow and weak. Those servos, when operated from their controller, are quite fast and strong. I made an action with 2 different frames alternating , pausing for of 500 ms, but it doesn't work. The servos remain in one of the frames. I haven't found in this thread someone who has done such tests. I'd like to hear from someone who did . I hope that DJ could have one servo and some time to do a test , to understand what happens.
Hi all, here is my research and what I found :
Baud rate:115200 Data bit:8 Stop:1 Check:0 Flow control:NONE TTL multi-layer connection,shared-bus ID:1-240 Feedback:position:deviation adjustment,version information
Serial parameter:115200,8,n,1,1
Protocol analysis
EMBEDDED LED // FA AF 01 04 00 00 00 00 05 ED switch on led light // no LED on mine // FA AF 01 04 01 00 00 00 06 ED switch off led light// no LED on mine RESPONSE AA + id // not tried yet as I cannot see with my proto board
GET VERSION FC CF {id} 01 00 00 00 00 {sum} ED // not tried yet RESPONSE FC CF {id} {V-1} {V-2} {V-3} {V-4} {sum} ED this can be used to check if servo exist in a loop "for id"
MOVE SERVO // FA AF {id} 01 {angle} {time} {T1} {T2} {sum} ED whre T1=0 and T2= {time}= TIME to execute in ms / 20 0 to 255(FF) ie 5.12 second to execute RESPONSE AA + id // not tried yet as I cannot see with my proto board
GET POSITION // FA AF {id} 02 00 00 00 00 {sum} ED // not tried yet REPONSE FA AF {id} 00 {angle} 00 {real} {sum} ED // not tried yet as I cannot see with my proto board
SET OFSET ANGLE // FA AF {id} D2 00 00 {A1} {A2} {sum} ED where A1 adjValue/256 and A2 adjValue%256 // not tried yet RESPONSE FA AF {AA + id} 00 00 00 00 {sum} ED
GET OFSET ANGLE // FA AF {id} D4 00 00 00 00 {sum} ED // not tried yet RESPONSE FA AF {AA + id} D4 00 00 {A1} {A2} {sum} ED where A1 adjValue/256 and A2 adjValue%256
All works now, just think to cross wire in the daisy chain, else GND become DATA on next servo and block all transmission....
hey guys, just wondering if this protocol will be compatible with this old UBTech servos... I think those are Pre-Alpha version servos...
Any hint? Thanks!
Only one way to find out Give it a try!
I have some Arduino, SN74LS241N (for communications though one wire), Dynamixel control board and some raspberry Pi around. Any hint how to try it? Those motors I commented about are from the UBTECH ALPHA MINI robot, which came later than the Alpha 1 and 2, hopefully they use the same code!
hi
there are no updates for win7