This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
product:usb2ax:faq [2013/04/01 04:23] xevel |
product:usb2ax:faq [2015/06/04 11:31] xevel |
||
---|---|---|---|
Line 2: | Line 2: | ||
==== Q: USB2AX: What's that and why would I need one? ==== | ==== Q: USB2AX: What's that and why would I need one? ==== | ||
- | R: All is explained [[product:usb2ax:usb2ax#What is the USB2AX?|here]] :-) | + | R: All is explained in [[product:usb2ax:usb2ax#What is the USB2AX?]] :-) |
==== Q: Servos: which ones are compatible with the USB2AX? ==== | ==== Q: Servos: which ones are compatible with the USB2AX? ==== | ||
- | R: See [[product:usb2ax:usb2ax#What servos can it talk to?|here]]! | + | R: See [[product:usb2ax:usb2ax#What servos can it talk to?]]! |
Line 25: | Line 25: | ||
==== Q: Dynamixel SDK: how do I use it with the USB2AX? ==== | ==== Q: Dynamixel SDK: how do I use it with the USB2AX? ==== | ||
- | R: | + | R: The [[http://support.robotis.com/en/software/dynamixelsdk.htm|Dynamixel SDK]] provided by Robotis is a software library that makes it easy to control Dynamixel servos from a C++ application. A modified version adding support for sync_read and sync_write is available in the [[https://github.com/Xevel/usb2ax/tree/master/pc_software/usb2ax_DynamixelSDK/|GitHub Repository]]. |
+ | While the Windows version should work out of the box, the Linux version does not. | ||
+ | |||
+ | Gotchas with the Dynamixel SDK for Linux: | ||
+ | * You have to replace the //dxl_hal.c// file with [[https://raw.github.com/Xevel/usb2ax/master/pc_software/usb2ax_DynamixelSDK/linux_compatibility/dxl_hal.c|this one]] before you compile the library. | ||
+ | * Your user account needs to be added to the **dialout** group for the serial port to be accessible. | ||
+ | * If you have frequent timeout errors, you might try to change l.154 of //dxl_hal.c// from ''gfRcvWaitTime = (float)(gfByteTransTime*(float)NumRcvByte + 5.0f);'' to ''gfRcvWaitTime = (float)(gfByteTransTime*(float)NumRcvByte + 34.0f);'' | ||
+ | * If you need to switch back to the USB2Dynamixel, you will have to **change back the file to the original one**, and recompile the library, then your application. | ||
+ | |||
+ | **What's going on?** The Dynamixel SDK assumes the interface is FTDI-based, and thus searches a device named ttyUSBx, while the USB2AX uses the integrated CDC/ACM driver - which names the device ttyACMx. The second problem is that after opening the device, the Dynamixel SDK tries to set parameters which do not exist in the CDC/ACM driver. | ||
==== Q: How to power the servos? ==== | ==== Q: How to power the servos? ==== | ||
- | R: | + | R: To power the Dynamixel servos that the USB2AX will control, you now have a variety of possibilities: |
+ | * [[http://www.trossenrobotics.com/6-port-ax-mx-power-hub|6 port AX/MX Power Hub by Trossen Robotics]]. Small, efficient, cheap, perfect for most of your needs! | ||
+ | * SMPS2Dynamixel, to power the servos from a Switch-Mode power supply. | ||
+ | * through a powered controller (CM-5, CM-510, CM-730, CM-900, Arbotix...), for testing purpose mostly. [[http://www.youtube.com/watch?v=UHKaYuaZi4A|See an example with HexaWheels by Siempre Aprendiendo]]. | ||
+ | * make your own power adapter. | ||
+ | |||
+ | **How do I build my power adapter?**\\ | ||
+ | |||
+ | **WARNING: check the [[http://support.robotis.com/en/product/dynamixel/dxl_ax_main.htm|pin assignment in the Dynamixel connector]] before anything else! Be extremely careful not to mess up the cables, otherwise you could damage your whole installation!!! We won't accept any liability.** | ||
+ | |||
+ | //Simple Power cable// (must be used at the end of the bus):\\ | ||
+ | Cut a Dynamixel cable and solder a battery connector or battery cable to the GND(-) and VDD(+) lines. Protect the solder joints with heat-shrink tubing or electrical tape. You can forget or remove the DATA line altogether. | ||
+ | |||
+ | //Y power cable// (can be used in place of any other cable):\\ | ||
+ | Cut the GND and VDD lines of a Dynamixel cable around the middle, be careful not to damage the DATA line. Solder both halves of each cable to your battery connector or cable, GND on - (black), and VDD, the middle one, on + (red). Protect the solder joints with heat-shrink tubing or electrical tape. | ||
==== Q: How open is the project? ==== | ==== Q: How open is the project? ==== | ||
Line 34: | Line 58: | ||
I learned a lot thanks to other's people Open Source projects, so this is my little contribution :-). | I learned a lot thanks to other's people Open Source projects, so this is my little contribution :-). | ||
+ | |||
+ | ==== Q: My USB2AX stopped working! What do I do? ==== | ||
+ | R: As you can see, the USB2AX is pretty small and uses components hard to service without specialized tools... You can try contact //support {at} xevelabs.com//, we're interested to know how it happened, and we'll see what we can do. :-/ |