Control UBTech Alpha robot via bluetooth
How to add the Ubtech Alpha 1 Bluetooth robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Movement Panels category tab.
- Press the Ubtech Alpha 1 Bluetooth 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 1 Bluetooth robot skill.
How to use the Ubtech Alpha 1 Bluetooth robot skill
Control UBTech Alpha robot via bluetooth and control servos. The Virtual Servos in ARC will control the UBTech Alpha robot servos. Use the configuration button on this skill to configure what servos are to be used. The Vx servos in ARC correspond to the servo IDs of the UBTech Alpha robot.
For example:
Main Window
1. COM Port Drop-down Select the Bluetooth COM port that corresponds with the Alpha1 robot connected to your PC.
2. Connect Button Once the proper COM ports is selected, press the Connect button to connect ARC to the Alpha1 3. Init Button Initiates communication with the Alpha1 robot.
4. Status Display Displays text corresponding to what actions are happening with the skill.
Configuration
1. Virtual servo Checkboxes Check (enable) each virtual servo that corresponds to the servo ID's you have on your Alpha1. If you would like to control the servo, it will have to be enabled.
How to Use UBtech Alpha1 Bluetooth Skill
Connect your PC to the Alpha1 robot via Bluetooth.
Add the UBtech Alpha1 Bluetooth skill to your ARC project (Project -> Add Skill -> Movement panels -> UBtech Alpha1 Bluetooth).
Select the Bluetooth COM port for the Alpha1 robot and select CONNECT.
Use the configuration menu of this skill to select the servos you wish to control. Place a check in the box beside each servo to control.
Now that you have the skill configured, you may use any skills in ARC that support servos to move the Alpha1 robot. This includes Auto Position, Camera, Joystick, and more.
*Note: When editing scripts in other skills, use the Cheat Sheet or right-click in the editor to see available ControlCommand of this skill. You may connect, disconnect, and control LEDs.
I'm happy to collaborate with you ! I added the plug in . I 'm sending a photo of the screen. I clicked on com4 and on connect. "connect" became "disconnect". I don't know if this confirms the existence of an actual connection. Clicking test 1,2,3 caused no movement in the robot , only"test done" in the control box.
For some unknown reason the clipboard below says "it's windows NT" . Indeed it's win7. I know win7 is not recommended, but until now i never had problems with ezb with win7. Unfortunately now I have no win10 PC. I hope this is not a problem.
Do you have a servo connected to the alpha one that is on ID #1?
All 16 servos are connected to alpha native controller. Each servo has a label with its own id number . Numbers range from ID# 1 to ID#16. #1 is right shoulder.
I am reflecting about the fact that alpha and ezb work in a very different way.
EZB: frames and actions are programmed and stored in the PC . When you activate the control, each position is sent , at the right time, by wi-fi, to the robot controller that actuates each servo as required.
Alpha: frames and actions are programmed and saved in the PC in special files (.aesx files) that contain all the information required to perform the action. Such files must be transferred to the SD card in the robot (via usb cable or bluetooth). The robot controller only reads this card and actuates the servos as required to perform the action. The SD card may even be changed with another one containing different actions. Bluetooth is used to specify which action is to be activated or to transfer the files.
So how can you move the servos by bluetooth ? The controller can only move the servos executing the .aesx file in the memory card. I think you have to work around these files and their transfer to the robot.
Try the latest plugin please. Report any log messages as per previous instructions. Specifically, try the buttons for servo LEDs ON/OFF and see if the leds turn on or off when pressed.
Hi DJ. Here's what I see on the PC screen. A sequence of bytes is displayed with turn on, nothing is displayed with turn off. Nothing is added in the debug window. Nothing happens to the robot leds. All leds in the servos keep blinking and changing colors , as usual. The blue light in the head is always on. Leds always behave this way whenever they have 7,4 v power on them , even if non connected to a control signal. .
Have you read my post #4 ? what about it ?
Your post #4 doesn’t apply. The Bluetooth protocol documentation specifies servos can be moved individually, contrary to your experience with their app. The challenge I’m having is the documentation is poor and online examples are open source broken with evident errors that contradict the documentation.
I’ll try new changes with this plugin to see if there’s progress. Stay tuned
btw, that last test is great. The numbers are actually from the alpha. That’s the alpha responding to my commands. I have to take a look and see what they mean.
It seems there’s information that yield left out. Appears to be multiple versions of this robot. Each version has different command protocol. I need to know the version your robot. Is it alpha 1. Alpha 1s. Alpha 2. Alpha pro? Alpha blah blah...
You're too great, DJ. I wanted to help with my experience with the alpha. I confirm that servos can me moved individually when alpha is connected via usb cable for programming frames and action, as it happens with EZB. This seems not to happen when it's connected via bluetooth to a tablet with their app. But if you have a specific protocol for that it's surely possible ! I'll stay well tuned awaiting your next plug in. Btw. I noticed that when it's connected via bluetooth with a tablet with the ubtech app, the robot confirms the connection with a sound , and the blue light in its head begins to blink. This doesn't happen when it's connected to the PC with the plug in.
I know there are many versions. I had trouble to download the right software. Even the appearance of the screen is different Mine is alpha 1S
Try this new plugin.
And please do not send screenshots anymore. I added a button (Which i highlighted in green for you) that copies the log to clipboard. Simply paste that clipboard after pressing the button in a message here. Thanks!
OK, I'll let you know . After this test I'll do the test with ezb .
DJ, You're capable of great things ! Everything seems working. Handshake blinks the head light. Tests 1,2,3 move very slowly servo #1 clockwise less than 90 from rest position and then backwards to rest position (are these these the movements you expected ? ) . All servo lights actually switch on and off. Software version was given. All ok ???
Windows version: Microsoft Windows NT 6.1.7601 Service Pack 1 Screen Resolution: 1280x800 (96x96 dpi) ARC Version: 2020.01.05.00 Handshake 251-191-13-1-65-108-112-104-97-32-49-83-152-237- 251-191-15-49-98-116-95-108-105-110-107-49-50-51-185-237- Test 1 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 3 251-191-7-34-1-0-42-237- servo lights on 251-191-6-13-0-19-237-251-191-7-10-3-1-21-237- servo lights off 251-191-6-13-0-19-237-251-191-7-10-3-0-20-237- servo lights on 251-191-6-13-0-19-237-251-191-7-10-3-1-21-237- servo lights off 251-191-6-13-0-19-237-251-191-7-10-3-0-20-237- servo lights on 251-191-6-13-0-19-237-251-191-7-10-3-1-21-237- Test 1 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 3 251-191-7-34-1-0-42-237- Test 1 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 1 251-191-7-34-1-0-42-237- Get software version 251-191-15-17-50-48-49-54-49-48-51-48-48-49-14-237- Test 2 251-191-7-34-1-0-42-237- Test 3 251-191-7-34-1-0-42-237- Test 1 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 2 251-191-7-34-1-0-42-237- Test 3 251-191-7-34-1-0-42-237- EZB 0: 2020/01/16 10:12:40 +01:00 Error uploading log file: Server was unable to process request. ---> Invalid username/password.
EZB 1: EZB 2: EZB 3: EZB 4: Windows version: Microsoft Windows NT 6.1.7601 Service Pack 1 Screen Resolution: 1280x800 (96x96 dpi) ARC Version: 2020.01.05.00
Surely we will early have a complete movement control ! Have you in mind something to control the native speaker ?
The speaker can never be used because the controller doesn't work that way. It plays files from an SD card, it doesn't allow streaming audio.
Try the latest plugin update and please describe to me the response and difference of servo Test 1, 2 and 3 buttons
1)Ok. However, by the Android app in my tablet and bluetooth, I can start actions and music previously stored (by ubtch software and/or windows itself ) in the sd card. You might send , by ezb, the same messages sent by the tablet by bluetooth, so to have, at least, a limited control of the audio system. The protocol should provide the messages for this purpose.
2) I 'll send another post about servo movements I'm going to examinate.
"0" means center position ,"+" means CW, "-" means CCW tests starting at "0" test1: +60 test2: -45 test3: +60 test1: -45 test2: -50 test3: -45 test1: -10 few seconds after this last command it went to "0" by alone without any further commands . Command "handshake" resets to center position from any position produced by tests 1 or 2, but , when previous test was test3., sometimes (not always) it doesn't reset . Handshake command execution is confirmed by sound and head led blinking, but servo doesn't move. Repeating the above sequence starting at "0" the results are completely different.
My brain is melting down.....It's hard for me to find some logic reason for these results. You know what you expected from those tests. Perhaps you'll understand. I'm here for any other test.
the Test servo buttons should move into random positions. this appears to be correct.
Are the servos moving faster in this test than the previous when you said they’re moving really slow?
do the servos always go back to center after the servos move with Test servo buttons?
how long before the servos move back to center?
They are quite random, as you say. It was impossible to make a list.
1)they're much faster than before. It looks like a normal servo speed. Perhaps it may be even faster, as I seem to have seen in ubtech actions.
they don't go back to "0". After the test they don't move anymore. But once, only once, after test3, I saw (with surprise) the servo go back to "0" without any command, alone, after 2-3 seconds. " send handshake" command resets (almost always) to "0" from any position ( but sometimes it doesn't ).
speed for the return to center (caused by handsake) is much slower, it depends on how many degrees it has to go. maximum is about 3 seconds.
Some news about this ?
Try this latest plugin and use the trackbar to slide and see if the servo moves. You may need to press the handshake first.
installing the new plug in I had this Dos window, where i don't see the usual message I've always seen , i.e. : "installation successful".
Is it installed or not this way ?
It’s be use your have the control already added when trying to update.
restart ARC and update the control when it’s not added to the project.
Ok I'll try . Now I can't do it , because I'm testing the servos connected to ezb, without ubtech pcb inside. I'm sending a report in the other thread.
Hi DJ. I installed and tested the plug- in with a slider. ( your post #21). It works well . Response is very quick. When robot is switched on, the servo goes to its center position (0). No handshake needed. Slider effect : all at left: -90, CCW all at right : +10, CW Handshake : goes to center position. Moving the slider now, the limit positions return as above.
Try this latest plugin (Version #9). Connect to the robot and assign Vx servos. Use servo controls to move them.
Tell me if you get the correct range of servo movement.
It doesn't connect !...the button at left of "connect" button is blank , it can't be written , it only turns blue or white. What's it for ?
Oooops - forgot to load the port list in the drop down. Try the latest version #10
OK, plug-in works. Servos perform whole range . -90 : ezb=1 0 : ezb= 72 (about) +90 : ezb= 147 . Exceeding this value servo stalls and may release (internal protection ?) Init centers all servos correctly.
previous test was done moving servos with"real time update " in auto movement control (frames programming). I created 2 frames and an action with them , but execute, jump, transition don't work.
Try version #11 and let me know about the ranges.
ezb=90 : center (exact) ezb=180 : turns CW : + 90 (exact) ezb=0 : turns CCW : almost -90 ( not exact, maybe 87-88 )
Actions not working, as said in post #30.
The Auto Position currently requires an ezb connection to operate. Connect to either the ezb emulator or an ezb during operation for the time being. I’ll change that Auto Position the next release of ARC
OK, I understand. An update is needed to make ez b work with bluetooth only. I tested with an ezb connected , all works.
Can you make a refinement for ezb=0 to goto 90 exactly (my post #32 ) ? May I suggest (posts 15 and 16.1) , to have a partial control on alpha's audio, to provide a command to start / stop specific mp3 files already stored in the sd card ? The bluetooth protocol should have messages for that.
Everything that can be done is done with the plugin. The protocol document is incomplete by UBtech. There is no complete information on how to trigger audio files from the sd card. servo positions are done as well. No additional work can be done with the incomplete documentation from ubtech. Contact UBTech to obtain complete command set and perhaps more can be done.
Never mind ! This plug-in is a great tool to hack alpha and its good servos. All other functions can be obtained adding EZB v4 or Iotiny. Please, provide in the plug in a command for internal leds on/off (this function is no more in the latest version of plug-in).
DJ, I edited my last post , asking for a command for ubtech leds, that was in previous test version of the plug in but not in the latest..
Added. It's a ControlCommand() and documentation has been updated.
I'm testing this plug-in. It's necessary to connect an ezb v4, as you said in a previous post, otherwise actions don't work. Is a new version of ezb already available to fix this ? Note 1: init resets all servos. Ezb initial position is 90 for all servos , but servos go to various unpredictable different positions. Note 2: if robot is switched off, ezb crashes, and PC must be restarted.
blue.EZB
This is the program i'm using to test the plug in. There is an action that should move servo n.1 between 1 and 180 and then repeat for ever. But it doesn't repeat this exact sequence for ever. After one cycle, positions aren't always the same, for example they are 45 or 135, sometimes 180, and even pauses seem to be different in each cycle. The message sent to a servo for going to a specific position seems not to have always the same effect. Remember also that, if you switch off the robot for some reason, EZB crashes and the PC must be restarted.
Hi DJ. I'm sure you are busy on many issues, but I hope , when it'll be possible for you, you'll go back working on this one .
I'm not sure what else can be done. It seems the servos only respond when they want to respond. I'll try another update with experimental settings as usual, and see if that helps. But unless they update the documentation for the robot, i'm shooting in the dark.
I understand, there's lack of information about bluetooth protocol. lt's a non promising work.
@DJ. A new idea. We have experimented direct command of servos with bluetooth plug-ins, but they don't work correctly. As you said, and i agree, further trials to drive servos directly are shots in the dark. We might try another path, i.e. using ezb software and also ubtech software, but only to move the servos. The procedure could be:
I'd make such experiments . Do you agree ? I need some tool to send (and receive) bytes via bluetooth (by ezb or PC). Please help with this.
Referring to my previous post, can you help providing or suggesting some tool to send (and receive) bluetooth messages for my experiments ?
Was this made for Alpha 1s or Alpha 1p?
I have an Alpha 1s and whilst he does connect (flashes lights and plays little tune) I can not make him move. I have read all instructions and all posts here but no joy.
As I have only recently 'adopted' my Alpha, I was hoping to use him as a learning tool before moving up to the EZB and modifying him. I am a mechanical design engineer and was really wanting this to be my first step into robotic programming.
Hey Icy - as far as i know, the skill was created to work with the alpha 1s. Unless a recent firmware update has voided the communication protocol, it should still work.
You'll need to select the Vx servos that correspond to the servo IDs of the alpha. Then, you can add other robot skills and ensure you select those Vx servos in those skills as well. Specify the min and max of those servos or they will not move.
There's a dozen or so EZB firmwares available for variety of hardware - while the most popular is the EZ-Robot EZ-B v4, which comes pre-installed with the firmware. The list of EZB compatible hardware is here: https://synthiam.com/Support/Hardware/Hardware-Overview
If you're still having trouble and believe a firmware update on the alpha changed some things, we'd be happy to help you out. However, there's limited information available about their communication protocol. It would be a good start for you to contact the manufacturer and request a protocol definition for the bluetooth connection. We can go from there to update the skill appropriately
Thanks for the quick response, I've figured it out now and have all his servos set up and moving. Im slowly getting my head around the software but its a totally new way of thinking for me.
Now I have him moving, I would like to start programming some routines using Roboscratch. I assume I would have to add the Alpha servo skill to be able to do this, is that correct?
that’s great to hear. Here’s a real quick browse of ARC overview for ya: https://synthiam.com/Support/ARC-Overview/arc-introduction
the concept is the graphical skills replace large bits of code. Each skill is some sort of function that communicates with one another. In your case the alpha skill is acting as a servo driver.
Roboscratch uses the configuration of alpha. I think you might be beyond RoboScratch though. It’s made mostly for elementary school children. Not to say it isn’t fun, but it isn’t super exciting.
id recommend using the Auto Position skill. It lets you design the movements and such. Now, we have heard reports that the alpha had trouble with having the servo positions sent in rapid concession. Be warned of that limitation apparently. Here’s a link to the Auto Position manual: https://synthiam.com/Support/Skills/Movement-Panels/Auto-Positioner-Gait?id=16057
Thanks again for your help, its very much appreciated. I've done a quick test using Auto Position and think I have it straight in my mind as to how it works. I dont appear to be able to control servo speed at the moment, I am tired though so will have another look tomorrow.
I do not believe the speed is supported with those servos. But the speed value in Auto Position is kind of redundant. Because the Auto Position takes care of making sure the servos arrive at the destination frame at the same time. It does that regardless of the speed support
Been having another play today and to be honest, I'm at the point of giving up. There are just too many unknowns for me to continue. I just cant seem to get any sort of logical response from him.
Am I not understanding the software? Am i using the software incorrectly? Does the software function correctly with this robot? Does my robot function correctly?
I was really hoping for this to be a cheap introduction to robotics and I now think I was wrong. I also dont really want to spend any more money on this as I feel I have already spent enough on what is now effectively scrap.
As I cant answer any of the above questions, I simply cant think how I can continue with him.
I feel it is the robot. We have received a number of poor customer experiences with that robot - and many have returned them or sold them. The trouble is the manufacturer is very quiet and does not reply to customers or help with their product.
My advise is to sell the robot and get yourself something more reliable and cheaper. I do recommend the EZ-Robot JD Humanoid if you want to maintain the humanoid form-factor, because it works very well - and has people learning with it all around the world starting from elementary school. EZ-Robot also has a lot of tutorials for their robots. Here's the tutorials for the JD: https://synthiam.com/Community/Tutorials/125?courseId=1
Oh, and here's where you can get a JD: https://www.ez-robot.com/Shop/
@DJ. I've been working on Alpha 1S until last february using EZB V4. I couldn't obtain reliable servo control. I do know that protocol information is missing, but I'm seeing here a "skill" suggested for that robot and a "version 19" (for the plug-in ?) making me hope that some progress has been made since then . Have you or someone else tested with success these new tools ?
You'd have to try and see - with the very minor amount of information available - and the lack of cooperation of the manufacturer, what you get is what you get with the skill until more information is provided
I reached out to Ubtech but got no response, which I believe is common for them. I have managed to obtain their servo callibration tool though. If this is any use to anyone, I would be more than happy to send it to you.
Please send the calibration tool. I can test it and see what it can do. I had kind answers from Ubtech whenever I asked for explanation of their software and hardware problems for the Alpha 1S. I never asked for protocols etc.
Leonardo46, let me know your email and I will send it. Its 3.8Mb when zipped so should be ok.
Icy, you can attach the file to a message. Press the file button in the editor
Robot stuff.zip
Didnt see that, there you go.
Thank you. I'll try to understad what's for
Well the callibrator certainly hellped me getting his initial standing position correct, he was standing with one foot very slightly raised so have sorted that.
Anyway, Im not sure of the information you used to create this plugin but I found the attached file today and thought it might be usefull. It means nothing to me and may even be the info used to create your plugin.Alpha1 Series Bluetooth.pdf
That’s the information (protocol) used to create the robot skill.
Controlling a robot by sending commands is basic effort that we do everyday with tens of thousands of other robots. This causes us to believe that the ubtech alpha robot has a fundamental bug in the protocol design or servo firmware. Because it’s not upgradable, they discontinued the product following these issues. The internet is full of others experiencing the same issues. To the extent that there are people creating replacement PCBs (circuit boards) to make the robot operational by remote commands.
while the robot somewhat works with the command set they published, it seems to be about the best it does. Contacting the manufacturer for support with their product is the best advice. Otherwise, many other Synthiam users have simply sold their alpha robot and upgraded to more cost effective and powerful robots that include cameras and real robot features.
@icy8: I have the Alhpa 1s and I replaced the board with the EZ-B v4/2 Wi-Fi Robot Controller and I use the lewansoul servo addon to control it. I rewired the four connectors arms and legs to one connector and it works!!! Hope this wil help you if the cost is a problem you can try the EZ-B IoTiny
:D
I found out that 1372 ubtech alpha 1s robots have been modified for use in a commercial.
https://www.mondomobileweb.it/90381-tim-si-aggiudica-il-guinness-dei-primati-per-aver-fatto-ballare-contemporaneamente-1372-robot-olivetti-grazie-alla-sua-rete-lte/
I verified that the bluetooth module was disabled and a 433Mhz RF module was inserted, probably to start all the robots simultaneously. however, I believe the controller (STM32) firmware have been modified to use the RF module. Could someone explain to me how to reinstall the original firmware? Thank you!!!
hi all
remember the alpha robot shoulder servo's are sitting horizontal in the body . not vertikel as jd . thats why his arms doesn go al the way up but only forwart . just my 2 cents .