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

Discover the limitless potential of robot programming with Synthiam ARC Pro – where innovation and creativity meet seamlessly.

PRO
Synthiam
#57  

The servos move correctly with this plugin?

#58  

It moves with this plug in, but I tested with one servo only . I'm arranging for more servos,

PRO
Synthiam
#59  

And for speed of movement is faster than you had said it was before?

#60  

It's difficult to compare plug in speed with ubtech actions I had seen. I made a comparison with ubtech specs provided by  a member , somewhere in this discussion, For a 180 no load  travel @8,5 V  it's rated  0,594 seconds. With auto movement control I measured about 1 second.

#61  

I have tested more servos. I tested 1, 2,   and 5 servos all together. All servos  moved well.  However ,  with 5 servos  connected,   the low digital level on TX pin increased from 0,2 V to 0,8 V. When I connected 10 servos (both legs) it became 1,32 V as you can see here , and no servo moved any more.

User-inserted image

I already noted this fact in previous tests. Some hardware addition is needed (CMOS buffer/driver Cd 4050)

#62   — Edited

I added a CD 4050  chip , powered by +3,3V from EZB, and now all servos work . Low digital level , with 16 servos  connected,   is  0,16 V. Note. Servos not specified  in ezb controls  are released. Is this normal ?

PRO
Synthiam
#63  

Yes, if a servo isn't specified it doesn't have a position. You can't expect them to have a position when the servos haven't been instructed to have a position. Things only do something when they're asked to do something. Otherwise, they don't do something.

#64   — Edited

OK, I understand.  What about the hardware problem I have found (posts 61 and 62)? Perhaps a future ezb might have some buffer inside to be able to drive many third party servos  on that line.