Thumbnail

UBTECH Alpha Servos UBT-12HC

by UBTech

Control the UBTECH Alpha Robot Digital smart Servos (UBT-12HC) with ARC

Requires ARC v11 (Updated 2/27/2020)

How to add the UBTECH Alpha Servos UBT-12HC robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Servo category tab.
  5. Press the UBTECH Alpha Servos UBT-12HC icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the UBTECH Alpha Servos UBT-12HC robot skill.


How to use the UBTECH Alpha Servos UBT-12HC robot skill

Control the UBTECH Alpha Robot Digital smart Servos (UBT-12HC) with ARC. The servos must be powered appropriately, and connected to the EZ-B v4 or IoTiny with the respective port. Visit the Config menu of this plugin to view the port configuration.

The Virtual Ports (V0..V99) in ARC can be assigned to the UbTech servos.

UART Ports

  • 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 on IoTiny)

  • Hardware UART is for the EZ-B v4 only. Do not use software UART on EZ-B v4. View the EZ-B v4 datasheet to identify the UART ports (0, 1, or 2). EZ-B v4 datasheet can be found here: http://www.ez-robot.com/Tutorials/Lesson/18

  • Software UART should only be used with IoTiny

  • Default baudrate of UBTECH servos is 115,200

Bind To Virtual Servos

  • The configuration menu also provides an option to select the Virtual Ports, which correspond with the ID's of the UBTech servos. If the UBTECH servo ID #0 is connected, select V0. #1 = V1, #2 = V2, etc..

Additional Info

User-inserted image

Custom Bit Settings There are 3 bits that seem to not be understood for the protocol. Since UBTech does not release the protocol for their products, the community is working to better understand what the parameters are. The configuration menu of this plugin allows you to set hardcoded values for those bits. The bits are for 5, 6 & 7.

Custom servo Position Mapping The UB Tech servos have their own position range, and we don't know what it is. So, the configuration menu allows you to specify the min and max positions for the range. This will be mapped to the ARC servo position range. Meaning, if you set the range in this plugin, it will be mapped to the range for all ARC servo controls.

Protocol Packet Code Here's a copy and paste from the plugin code. This is how the packet is being assembled to be sent to each servo. The values specified by you in the configuration menu are b5, b6, b7, mapLow and mapHigh.

User-inserted image


ARC Pro

Upgrade to ARC Pro

Unlock the true power of automation and robotics by becoming a proud subscriber of Synthiam ARC Pro.

PRO
Synthiam
#65  

Synthiam doesn't make any hardware. You'd have to talk to the manufacturer of the product you're using. In this case, it's an EZ-B v4 made by EZ-Robot.

Synthiam makes software, called ARC.

#66   — Edited

I didn't know that   Synthiam   and Ezb were different things. I wondered why Ezb , I have known for years,  some time ago had decided to add this  new name to itself !... Now I know.

I discovered the cause of the hardware problem. EZB v4 and Iotiny have a current limiting resistor for each digital pin  (see datasheet) !!! This prevents excessive load. But the problem can  easily be solved by an extra chip in the robot.   No need to ask EZB. They probably didn't imagine the high load to output pins  caused by third party's hardware of all kinds.

#67   — Edited

Please, provide an option in the plug in , to use  Iotiny and its software uart   too. Latest plug in is  for ezb v4, with  hardware uart . Iotiny is very small ,  perfect for alpha robot ! This option is needed.

PRO
Synthiam
#68   — Edited

It has that function already. Please read the manual on this page. The description of using IoTiny and any other ezb is specified. This is already written in this manual for this plugin.

Please use the config screen to adjust settings...

User-inserted image

#69   — Edited

Bad news DJ !... I'm testing this plug in with iotiny. It seemed to work well,  but, in repeating actions ,  the further positions  of servos  tend to change in an apparently  random way....It's the same problem observed  with the  bluetooth plug in !

As you know , ubtech servos are bidirectional , i.e they send back their position, on the same control line. Ipothesis. Perhaps the servos need some validation of this feedback from the controller, to be able  to go to next positions ? To make a comparison, there is a plug-in for 4-wire serial bus servos (dynamixel). Did it use the feedback wire in some way ?

Of course to do something like that with ubtech servos,  hardware and software should be quite different,  but  this is not a problem, I think.

PRO
Synthiam
#70  

No, dynamixel servos do not require feedback. Additional information from the manufacturer is necessary to continue on these servos and with this robot. If you obtain information, let us know

#71  

Hi Dj. Despite the latest non promising events, i'm anyway going on investigating. I had seen that, in the auto movement window,  clicking  "execute" for the action , or  "transition to"  for the frames,  servos didn't  move correctly .  But now i discovered that, if i use  "Jump to" a frame , the movement is always correct and fast and never fails. Actions are actuated in a different way (delay, steps, speed). I changed these parameters in various ways, but i could't get the same speed  as in  "jump to". If  actions and frames were actuated as fast as in "Jump to " mode, everything might work. Please tell me if this is possible in some way.

Servos aren't permitted to move slowly, they must move fast , because they  seem to have a time-out . After some time, they stop , no matter if the final position is reached or not. Subsequent movement starts where they stopped , not from the right position, and all becomes  unexpected.

I looked at the the bluetooth protocol,  (command to position a single servo ). There are  parameters like "running time" and "interval between frames" inside the messages necessary to position the servo. Same parameters for the servos should be in the command bytes sent by the ezb uart. How are they set  ?

PRO
Synthiam
#72   — Edited

this is not the Bluetooth plugin. The servo protocol is. Or Bluetooth. Either way, all servo transmission commands are bytes. Computers only use bytes.

the question again is those parameters have no description to what the values are. I figured out the servo position value through trial and error with you. That’s there were so many plugin versions.

as it stands, the other parameters are a mystery.  Until there’s an idea of what the other parameters are, there’s nothing more I can do