by xevel » Tue Mar 25, 2014 12:36 am
by xevel
Tue Mar 25, 2014 12:36 am
Hi!
For a new project of mine, I finally decided to work on what will be, in effect, a universal Dynamixel device board.
What I'm looking for here is some feedback, to see if people have a need for it (it will be completely open source but might not be the easiest to assemble...), and therefore if there would be things I could change to make it even better for the community.
For too long, when we wanted to put a sensor or a micro-servo at the tip of an arm made with Dynamixel servos, we had to put a lot more cables, and bring everything back to a central controller (that in turn needed GPIOs/ADCs...)
The plan:- really Arduino-compatible, with a real ATmega328p so that nearly every lib written for the Arduino could be used as-is (NOT a half-baked port to a new arch).
- as small as possible so that it could be put in robots, even at the end of limb
- powered from the Dynamixel bus, and capable of providing power efficiently to the devices you want to hook up to it (around 500mA)
- support for the complete Dynamixel protocol @ 3Mbps, without putting any unnecessary burden on the Arduino-compatible part.
- 5V
- a few pins with 0.1" 3-pin headers GND-5V-SIG so that sensors and little servos could be plugged in directly.
- fully open :
https://github.com/Xevel/dynextSome of the cool part I would love to have, but may be discussed or may take some time to develop
- precise voltage ref for the ADCs
- programable from the Dynamixel line
- multiple virtual devices: hook up multiple components to the board, and virtually give each of them a different ID so that they can be adressed by the master more easily.
Arduino compatibility seems to be maybe the most important part. I want this to be as easy to use as possible, so no need to install a new toolchain, no new architecture to learn, as little porting of libraries as possible (ideally, none, but I won't have enough room to put all the regular Arduino pins...)
I'm interested in feedback on any of these points
Other boards with similar descriptions have been made, by HUV Robotics, iBot has made some I think too, and others (I have made some for my Xachikoma bot a few years ago), but most I've looked at used a lot of processing power to listen to the bus, and none could work at 3Mbps that I know of. Plus they either were not easy to program for non-gurus, or simply not reprogramable.
Anyway, here is what's going to happen:I need these for my next bot. I'll put at least 6 or 7 of these, one per leg (it's a quad), plus one that will control a motor and its sensor, one that will ouput some servo PWMs, and one that will control a camera subsystem.
The goal is to cut on the wiring, have a better layout of the bot (control where it is needed instead of everything in the same place), put some local Dynamixel loops in each legs (AX-12 with REAL torque control
)...
If in the meantime I can make it better for other people's requirements, it's a win-win!
Along the development, some beta boards will be available around "at cost" for people who might be interested.
If there is some interest, I'm tempted to make a small crowdfunding campain just for the heck of it ^^
Where is the project now:
I have a first version assembled. This one is a first shot, it is not Arduino compatible, and doesn't really fulfill most of the requirements... but it allowed me to test a few things, and to show it around to some people at
Innorobo last week - who are now very interested for their own robots, some even commercially.
The first version (Dynext v1.0) was ATXmega based, used a one-chip solution, was 3.3V and not 5V tolerant, and had ADC with a strange range. The layout of the pins is also not that great when thinking of plugging a servo or a sensor: it nearly needs a secondary board to be made with the right connectors and wiring for power. This one can be found in the Git repo linked above.
- Dynext v1.0
- dynext_v1.0_proto1.jpg (190.38 KiB) Viewed 39213 times
The current version looks a little bit like that (component selection not finished)
- Dynext v2.5 preview
- dynext_v2.5_prev01.jpg (125.42 KiB) Viewed 39213 times
It's a 2 chips solution, like the Arduino Uno: one is dedicated to talking fast (a very small and cheap Cortex-M0 at 50MHz), and the other one (atmega 328p) is for the user application.
The size of the board should be around that of a Teensy 3 / Arduino Pro Mini (same width, a little longer). The two right-angle dynamixel connectors are underside so that when the cable is plugged it does not change the actual footprint nor the whole thickness.
To fit everything I'm going to use very small parts, but I'm convinced it's worth it : putting half a dozen of these in my very small new bot (the body will be around 12cm accross!), every millimeter counts.
People willing to replicate can use bigger packages if they want, every component has a hand-solder-friendly version available.
So here it is. As soon as I get something I'm happy with I'll order new PCBs.
In the meantime I'll develop the software with an LPCxpreso board and and arduino.
Again, I'm VERY interested by feedback.
Cheers
Hi!
For a new project of mine, I finally decided to work on what will be, in effect, a universal Dynamixel device board.
What I'm looking for here is some feedback, to see if people have a need for it (it will be completely open source but might not be the easiest to assemble...), and therefore if there would be things I could change to make it even better for the community.
For too long, when we wanted to put a sensor or a micro-servo at the tip of an arm made with Dynamixel servos, we had to put a lot more cables, and bring everything back to a central controller (that in turn needed GPIOs/ADCs...)
The plan:- really Arduino-compatible, with a real ATmega328p so that nearly every lib written for the Arduino could be used as-is (NOT a half-baked port to a new arch).
- as small as possible so that it could be put in robots, even at the end of limb
- powered from the Dynamixel bus, and capable of providing power efficiently to the devices you want to hook up to it (around 500mA)
- support for the complete Dynamixel protocol @ 3Mbps, without putting any unnecessary burden on the Arduino-compatible part.
- 5V
- a few pins with 0.1" 3-pin headers GND-5V-SIG so that sensors and little servos could be plugged in directly.
- fully open :
https://github.com/Xevel/dynextSome of the cool part I would love to have, but may be discussed or may take some time to develop
- precise voltage ref for the ADCs
- programable from the Dynamixel line
- multiple virtual devices: hook up multiple components to the board, and virtually give each of them a different ID so that they can be adressed by the master more easily.
Arduino compatibility seems to be maybe the most important part. I want this to be as easy to use as possible, so no need to install a new toolchain, no new architecture to learn, as little porting of libraries as possible (ideally, none, but I won't have enough room to put all the regular Arduino pins...)
I'm interested in feedback on any of these points
Other boards with similar descriptions have been made, by HUV Robotics, iBot has made some I think too, and others (I have made some for my Xachikoma bot a few years ago), but most I've looked at used a lot of processing power to listen to the bus, and none could work at 3Mbps that I know of. Plus they either were not easy to program for non-gurus, or simply not reprogramable.
Anyway, here is what's going to happen:I need these for my next bot. I'll put at least 6 or 7 of these, one per leg (it's a quad), plus one that will control a motor and its sensor, one that will ouput some servo PWMs, and one that will control a camera subsystem.
The goal is to cut on the wiring, have a better layout of the bot (control where it is needed instead of everything in the same place), put some local Dynamixel loops in each legs (AX-12 with REAL torque control
)...
If in the meantime I can make it better for other people's requirements, it's a win-win!
Along the development, some beta boards will be available around "at cost" for people who might be interested.
If there is some interest, I'm tempted to make a small crowdfunding campain just for the heck of it ^^
Where is the project now:
I have a first version assembled. This one is a first shot, it is not Arduino compatible, and doesn't really fulfill most of the requirements... but it allowed me to test a few things, and to show it around to some people at
Innorobo last week - who are now very interested for their own robots, some even commercially.
The first version (Dynext v1.0) was ATXmega based, used a one-chip solution, was 3.3V and not 5V tolerant, and had ADC with a strange range. The layout of the pins is also not that great when thinking of plugging a servo or a sensor: it nearly needs a secondary board to be made with the right connectors and wiring for power. This one can be found in the Git repo linked above.
- Dynext v1.0
- dynext_v1.0_proto1.jpg (190.38 KiB) Viewed 39213 times
The current version looks a little bit like that (component selection not finished)
- Dynext v2.5 preview
- dynext_v2.5_prev01.jpg (125.42 KiB) Viewed 39213 times
It's a 2 chips solution, like the Arduino Uno: one is dedicated to talking fast (a very small and cheap Cortex-M0 at 50MHz), and the other one (atmega 328p) is for the user application.
The size of the board should be around that of a Teensy 3 / Arduino Pro Mini (same width, a little longer). The two right-angle dynamixel connectors are underside so that when the cable is plugged it does not change the actual footprint nor the whole thickness.
To fit everything I'm going to use very small parts, but I'm convinced it's worth it : putting half a dozen of these in my very small new bot (the body will be around 12cm accross!), every millimeter counts.
People willing to replicate can use bigger packages if they want, every component has a hand-solder-friendly version available.
So here it is. As soon as I get something I'm happy with I'll order new PCBs.
In the meantime I'll develop the software with an LPCxpreso board and and arduino.
Again, I'm VERY interested by feedback.
Cheers