Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

USB2AX, a small powerful USB to Dynamixel controller

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
59 postsPage 4 of 41, 2, 3, 4
59 postsPage 4 of 41, 2, 3, 4

Interested in a small programmable USB to AX/MX Dynamixel adapter/controller?

Yes
17
100%
No
0
No votes
What?
0
No votes
 
Total votes : 17

Post by xevel » Wed Apr 03, 2013 6:26 pm

Post by xevel
Wed Apr 03, 2013 6:26 pm

I can't speak for Robosavvy, but we are working on it together - if only the postal service would have the decency to cooperate ><

I published the documentation (still some topics to finish, but the bulk of it is there) at http://xevelabs.com
(http://usb2ax.com points directly to the documentation itself).

It is, like the rest of the project, all open source (CC-BY-SA 3.0 here). Any comment or help is very welcome :)

Enjoy!
I can't speak for Robosavvy, but we are working on it together - if only the postal service would have the decency to cooperate ><

I published the documentation (still some topics to finish, but the bulk of it is there) at http://xevelabs.com
(http://usb2ax.com points directly to the documentation itself).

It is, like the rest of the project, all open source (CC-BY-SA 3.0 here). Any comment or help is very welcome :)

Enjoy!
xevel
Savvy Roboteer
Savvy Roboteer
Posts: 74
Joined: Sun Mar 27, 2011 6:37 pm

Post by siempre.aprendiendo » Wed Apr 03, 2013 6:44 pm

Post by siempre.aprendiendo
Wed Apr 03, 2013 6:44 pm

If you want, you also can order it to its creator (France), I get it from him.
If you want, you also can order it to its creator (France), I get it from him.
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by barbar » Sun Apr 07, 2013 10:15 am

Post by barbar
Sun Apr 07, 2013 10:15 am

siempre.aprendiendo wrote:... get it from him.

stupid me, didnt think. Lets see if we get thru customs.

xevel wrote: Enjoy!

Pleased to read you. Congratulations for rolling out USB2AX. As an observer since the beginnings in 2011 I can imagine what you and your helpers have invested. Thank you very much!
siempre.aprendiendo wrote:... get it from him.

stupid me, didnt think. Lets see if we get thru customs.

xevel wrote: Enjoy!

Pleased to read you. Congratulations for rolling out USB2AX. As an observer since the beginnings in 2011 I can imagine what you and your helpers have invested. Thank you very much!
barbar
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 87
Joined: Tue Apr 04, 2006 1:00 am
Location: Germany

Post by xevel » Sun Apr 07, 2013 6:53 pm

Post by xevel
Sun Apr 07, 2013 6:53 pm

Thanks Barbar :)
I can indeed sell you one directly since it is not yet listed at any other European's store.
Thanks Barbar :)
I can indeed sell you one directly since it is not yet listed at any other European's store.
xevel
Savvy Roboteer
Savvy Roboteer
Posts: 74
Joined: Sun Mar 27, 2011 6:37 pm

Post by PedroR » Wed Apr 10, 2013 2:43 pm

Post by PedroR
Wed Apr 10, 2013 2:43 pm

Hi all, xevel

We've recently received the first batch of Xevel's boards in our (UK) warehouse.

The product page is now up so I'm happy to report RoboSavvy is all ready to start shipping the USB2AXs.

You can place your order here http://robosavvy.com/store/product_info ... ts_id/3787

Regards
Pedro.
Hi all, xevel

We've recently received the first batch of Xevel's boards in our (UK) warehouse.

The product page is now up so I'm happy to report RoboSavvy is all ready to start shipping the USB2AXs.

You can place your order here http://robosavvy.com/store/product_info ... ts_id/3787

Regards
Pedro.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by barbar » Sun Apr 28, 2013 9:11 pm

Post by barbar
Sun Apr 28, 2013 9:11 pm

USB2AX arrived Friday. First quick test run today. AX12 to USB2AX to Raspberry Pi (raspbian, python script using lib_robotis.py). Its working fine! :D

Thanks again for the awesome work, particularly the small form factor, the good documentation and the fair price. I wont be suprised if a bunch of raspberry-pi-dynamixel-enthusiasts jump into it.

Cheers!
USB2AX arrived Friday. First quick test run today. AX12 to USB2AX to Raspberry Pi (raspbian, python script using lib_robotis.py). Its working fine! :D

Thanks again for the awesome work, particularly the small form factor, the good documentation and the fair price. I wont be suprised if a bunch of raspberry-pi-dynamixel-enthusiasts jump into it.

Cheers!
barbar
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 87
Joined: Tue Apr 04, 2006 1:00 am
Location: Germany

Best way to test USB2AX

Post by james.thorniley » Mon Jun 03, 2013 1:34 pm

Post by james.thorniley
Mon Jun 03, 2013 1:34 pm

Hi,

What is the best way to test the USB2AX under linux? I've got one and have been trying to use it. I've also got a USB2Dynamixel for testing.

I've tried lib_robotis.py as one user above mentioned (I can't include the URL as this is my first post, but its easy to find)

I have the SMPS2Dynamixel power adaptor, and with the USB2Dynamixel pluggin in the following works:

$ python lib_robotis.py -d /dev/ttyUSB0 --baud 1000000 --ang 0

I.e. the servo moves to the centre position.

But then I plug in the USB2AX instead and get:

Code: Select all
$ python lib_robotis.py -d /dev/ttyACM0 --baud 1000000 --ang 0
Traceback (most recent call last):
  File "lib_robotis.py", line 435, in <module>
    servo = Robotis_Servo( dyn, opt.id )
  File "lib_robotis.py", line 142, in __init__
    ( servo_id, self.dyn.dev_name ))
RuntimeError: lib_robotis: Error encountered.  Could not find ID (1) on bus (/dev/ttyACM0), or USB2Dynamixel 3-way switch in wrong position.


No movement in the servo...

Any ideas what could be causing this or how to fix? From dmesg it looks like the device is connected ok:

Code: Select all
[ 6083.176966] usb 3-3: new full-speed USB device number 25 using xhci_hcd
[ 6083.190487] usb 3-3: New USB device found, idVendor=16d0, idProduct=06a7
[ 6083.190498] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6083.190504] usb 3-3: Product: USB2AX
[ 6083.190509] usb 3-3: Manufacturer: Xevelabs
[ 6083.190513] usb 3-3: SerialNumber: 6403635373035121E161
[ 6083.191243] usb 3-3: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 6083.192000] cdc_acm 3-3:1.0: ttyACM0: USB ACM device


Any help much appreciated!

James
Hi,

What is the best way to test the USB2AX under linux? I've got one and have been trying to use it. I've also got a USB2Dynamixel for testing.

I've tried lib_robotis.py as one user above mentioned (I can't include the URL as this is my first post, but its easy to find)

I have the SMPS2Dynamixel power adaptor, and with the USB2Dynamixel pluggin in the following works:

$ python lib_robotis.py -d /dev/ttyUSB0 --baud 1000000 --ang 0

I.e. the servo moves to the centre position.

But then I plug in the USB2AX instead and get:

Code: Select all
$ python lib_robotis.py -d /dev/ttyACM0 --baud 1000000 --ang 0
Traceback (most recent call last):
  File "lib_robotis.py", line 435, in <module>
    servo = Robotis_Servo( dyn, opt.id )
  File "lib_robotis.py", line 142, in __init__
    ( servo_id, self.dyn.dev_name ))
RuntimeError: lib_robotis: Error encountered.  Could not find ID (1) on bus (/dev/ttyACM0), or USB2Dynamixel 3-way switch in wrong position.


No movement in the servo...

Any ideas what could be causing this or how to fix? From dmesg it looks like the device is connected ok:

Code: Select all
[ 6083.176966] usb 3-3: new full-speed USB device number 25 using xhci_hcd
[ 6083.190487] usb 3-3: New USB device found, idVendor=16d0, idProduct=06a7
[ 6083.190498] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6083.190504] usb 3-3: Product: USB2AX
[ 6083.190509] usb 3-3: Manufacturer: Xevelabs
[ 6083.190513] usb 3-3: SerialNumber: 6403635373035121E161
[ 6083.191243] usb 3-3: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 6083.192000] cdc_acm 3-3:1.0: ttyACM0: USB ACM device


Any help much appreciated!

James
james.thorniley
Newbie
Newbie
Posts: 4
Joined: Mon Jun 03, 2013 1:25 pm

Post by xevel » Mon Jun 03, 2013 3:41 pm

Post by xevel
Mon Jun 03, 2013 3:41 pm

Hello James,

I'm sorry you're having a problem :/ Each unit is factory-tested so this should not happen :/

I haven't tried lib_robotis for myself (yet), but at first glance, it seems to me that your test should be successful.

A quick check you could do is to verify the voltage on the DATA pin of the USB2AX relative to its GND pin it should be around 5V, when the USB2AX is plugged in an opened (you can open it with any serial monitor/terminal for this test).
I'll test lib_robotis.py to see if it has any reason to be incompatible as soon as possible.
Hello James,

I'm sorry you're having a problem :/ Each unit is factory-tested so this should not happen :/

I haven't tried lib_robotis for myself (yet), but at first glance, it seems to me that your test should be successful.

A quick check you could do is to verify the voltage on the DATA pin of the USB2AX relative to its GND pin it should be around 5V, when the USB2AX is plugged in an opened (you can open it with any serial monitor/terminal for this test).
I'll test lib_robotis.py to see if it has any reason to be incompatible as soon as possible.
xevel
Savvy Roboteer
Savvy Roboteer
Posts: 74
Joined: Sun Mar 27, 2011 6:37 pm

Post by james.thorniley » Mon Jun 03, 2013 4:26 pm

Post by james.thorniley
Mon Jun 03, 2013 4:26 pm

Hi

Thanks for responding. Its no problem - it turns out it wasn't the USB2AX at fault exactly. I got out the scope and looked at the data pin on the USB2AX and it seemed to be working fine -- in fact a much cleaner signal than the USB2Dynamixel produces! (The latter has loads of ringing when running at 1mbps).

I think it must have been the way that lib_robotis.py sets the baud rate that doesn't work with the USB2AX. I got it to work by first setting the baud with

Code: Select all
$ stty -F /dev/ttyACM0 1000000 raw


Then running the lib_robotis.py command (presumably whatever that script does with the --baud switch has no effect).

Thanks for responding anyway, but its working now, cheers!

James
Hi

Thanks for responding. Its no problem - it turns out it wasn't the USB2AX at fault exactly. I got out the scope and looked at the data pin on the USB2AX and it seemed to be working fine -- in fact a much cleaner signal than the USB2Dynamixel produces! (The latter has loads of ringing when running at 1mbps).

I think it must have been the way that lib_robotis.py sets the baud rate that doesn't work with the USB2AX. I got it to work by first setting the baud with

Code: Select all
$ stty -F /dev/ttyACM0 1000000 raw


Then running the lib_robotis.py command (presumably whatever that script does with the --baud switch has no effect).

Thanks for responding anyway, but its working now, cheers!

James
james.thorniley
Newbie
Newbie
Posts: 4
Joined: Mon Jun 03, 2013 1:25 pm

Post by xevel » Mon Jun 03, 2013 4:45 pm

Post by xevel
Mon Jun 03, 2013 4:45 pm

Great!

I'll have a look lib_robotis anyway to have a definitive answer as to why it doesn't work.

If needed I'll publish a patched version on xevelabs.com, next to the patched file for the Dynamixel SDK for Linux ^^
Great!

I'll have a look lib_robotis anyway to have a definitive answer as to why it doesn't work.

If needed I'll publish a patched version on xevelabs.com, next to the patched file for the Dynamixel SDK for Linux ^^
xevel
Savvy Roboteer
Savvy Roboteer
Posts: 74
Joined: Sun Mar 27, 2011 6:37 pm

Post by siempre.aprendiendo » Mon Jun 03, 2013 4:49 pm

Post by siempre.aprendiendo
Mon Jun 03, 2013 4:49 pm

Thanks for sharing the solution. Interesting...

I detected a similar problem using C# on linux (mono) at 1000000 with the USB2Dynamixel (I'm not sure if I tested it with USB2AX), using serial port at 57600 also works ok, in Windows works correctly with all baud rates, but not in iinux. With C++ there are no problem.

From http://pyserial.sourceforge.net/pyserial_api.html

The parameter baudrate can be one of the standard values: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200. These are well supported on all platforms. Standard values above 115200 such as: 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000 also work on many platforms.


"Only" on many platforms :)
Thanks for sharing the solution. Interesting...

I detected a similar problem using C# on linux (mono) at 1000000 with the USB2Dynamixel (I'm not sure if I tested it with USB2AX), using serial port at 57600 also works ok, in Windows works correctly with all baud rates, but not in iinux. With C++ there are no problem.

From http://pyserial.sourceforge.net/pyserial_api.html

The parameter baudrate can be one of the standard values: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200. These are well supported on all platforms. Standard values above 115200 such as: 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000 also work on many platforms.


"Only" on many platforms :)
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by siempre.aprendiendo » Mon Jun 03, 2013 7:20 pm

Post by siempre.aprendiendo
Mon Jun 03, 2013 7:20 pm

I just have tested it and it works without setting stty.

Misteries of the arcane serial ports...
I just have tested it and it works without setting stty.

Misteries of the arcane serial ports...
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by james.thorniley » Tue Jun 04, 2013 12:15 pm

Post by james.thorniley
Tue Jun 04, 2013 12:15 pm

Yeah I think it must be just linux serial port weirdness. A possible cause of my problems is that I'm using by Fedora laptop while my beaglebone is out of service. I'm running a modern kernel (3.9.4) - versions used by Raspberry Pi etc maybe behave differently.

Another problem I've found that probably only affects desktop Linux distros is that modem-manager sometimes locks the serial port device, which is a pain. Running

Code: Select all
sudo killall modem-manager


Fixes that problem if you have it.
Yeah I think it must be just linux serial port weirdness. A possible cause of my problems is that I'm using by Fedora laptop while my beaglebone is out of service. I'm running a modern kernel (3.9.4) - versions used by Raspberry Pi etc maybe behave differently.

Another problem I've found that probably only affects desktop Linux distros is that modem-manager sometimes locks the serial port device, which is a pain. Running

Code: Select all
sudo killall modem-manager


Fixes that problem if you have it.
james.thorniley
Newbie
Newbie
Posts: 4
Joined: Mon Jun 03, 2013 1:25 pm

Post by james.thorniley » Tue Jun 04, 2013 12:20 pm

Post by james.thorniley
Tue Jun 04, 2013 12:20 pm

I've switched over to the modified Dynamixel SDK library anyway though, which is working nicely :)

I've also made some further modifications to support the USB2AX's SYNC_READ instruction via the C library, and written a small Python wrapper.

My code is here if anyone is interested: https://github.com/jthorniley/pyusb2ax

Running python setup.py install will download and make the necessary changes to the C library, then create a python module called usb2ax from which you can access the dynamixels.

Cheers
James
I've switched over to the modified Dynamixel SDK library anyway though, which is working nicely :)

I've also made some further modifications to support the USB2AX's SYNC_READ instruction via the C library, and written a small Python wrapper.

My code is here if anyone is interested: https://github.com/jthorniley/pyusb2ax

Running python setup.py install will download and make the necessary changes to the C library, then create a python module called usb2ax from which you can access the dynamixels.

Cheers
James
james.thorniley
Newbie
Newbie
Posts: 4
Joined: Mon Jun 03, 2013 1:25 pm

Previous
59 postsPage 4 of 41, 2, 3, 4
59 postsPage 4 of 41, 2, 3, 4