Review - Veyron 24-Channel Servo Driver
August 23, 2014
Hi all, I've been a lurker here on LMR for a about a year but haven't posted anything besides a few comments/questions here and there. So, I suppose I should introduce myself! I'm a 35 year old Canadian tech support analyst. I've always been into computers but I only recently over the past year or so gotten into programming/robotics with the advent of the Raspberry Pi. Python is my main programming language, and I'm a noob at that. I stumbled across LMR when looking for projects to do with my Raspi, and have been a daily visitor ever since. So far I have three or four half-done projects, which I'll get around to posting when I feel like there is some sort of complete-ness. Enough about me, on to the point of this post...
I was lucky enough to be picked to receive a Veyron 24-Channel Servo Driver from DFRobot for review (Many thanks Lumi for posting the heads-up about this!). See below my thoughts on this device:
Initial setup was a bit tricky, but only because I didn't realize Windows 8.1 doesn't allow un-signed drivers to be installed. Once I figured that bit out and disabled forced driver signing, it went without a hitch following DFRobot's guide from there.
I first attempted using serial monitor with Arduino IDE, and the examples ran great, the commands quite simple once you get used to the syntax. Servo movement could have been smoother, but I was just running a cheap 9g servo on 4xAA batteries which have been sitting around for a while because that's what was handy and I wanted to jump right in. I'll test with a more stable power supply when I have time.
Next I tried the Visual Servo Controller V0.1 software. One word of caution; this software does use Java which is a bad word for a lot of folks these days. With a little common sense, it shouldn't be a problem, as it doesn't run in the browser where most of the danger lies. Initially the software did not seem to work until I tried the 'Debug' batch file, which works great. I'm not sure why, and don't really care, as long as it works :)
The Visual Servo Controller software has a very straight-forward and intuitive interface. As the documentation indicates you can easily set up multiple servos using a drag/drop interface, punch in the servo number, start and end points, and adjust the duration with the timeline to make the movement as fast or slow as you need. This is a fantastic tool for synchronizing movement of multiple servos for configuring the gait of a walker for example, or setting up an automated process as I do below with a robot arm.
One thing that I didn't notice on my first run through the documentation for the Visual Servo Controller software, but found by accident, is that you can set up the movements for various servos, but you don't have to hit play if you're not quite sure about the movements. You can actually use your mouse to drag the timeline slider as quick or slow as you want, which is a great way to take the first run through nice and slow to be sure you aren't going to crash into something and wreck your bot and/or servos. Make tweaks along the way before going through at full speed, always a good idea. Another nice feature is that if you have the same servo moving more than once at the same time (say, because you forgot to set the servo number after dropping in a new command), that servo number will show red to indicate a conflict.
After my initial experiments above I used the Veyron Servo Driver to control a 6-DOF robot arm I had previously built (my first foray into robotics actually) based on jjshortcut's design though mine is sloppily dremel-cut as I don't (yet) have a CNC/3D-Printer or laser cutter.. The arm has 7 servos, and was all ready to go, I just had to plug the servos in and open up the Visual Servo Controller software, and start dropping commands into the interface. Within an hour I was picking up a piece of foam, moving it and setting it down. I'll add video of this as soon as I figure out how, as I've not done any video editing before.
DFRobot Veyron Servo Driver video (still haven't figured out the embedding bit)
Another great feature of the sofware is you can set it to a single play through, back-and-forth, or a repeating loop. The key is not to forget to punch in the servo number; on more than one occasion I left the servo number as 0 which is the default, and resulted in moving the wrong motor. Luckily no harm came of it. One thing that would be nice is if the Visual Servo Driver software would automatically set the servo number based on what line in the interface you drop it on. Another thing that would be good is to 'link' two servos so they can have identical/synchronized movements, but then again I could have just used a Y-connector and used both on the same channel (see in the above image servo 1 & 2 are the same).
Some other things that would be nice is to be able to set limits (to keep me from screwing up and crashing) and labels on the servos (like 'elbow' for example instead of just the channel number), but those would really be more 'nice to have' points, not critical. I see this program more of a tool to help establish timing/gait rather than full time robot control. One interesting bit is when saving a program, it's a very easy to read xml file.
I haven't yet connected the Veyron Servo Driver to an Arduino over SPI, but will likely get to that on my next project using this device. I plan to remove this from the robot arm once I have more time (too much 'real' work to do around the house before Fall comes) and more servos, and build a hex or octopod, based on Gareth's Veyron24, though my development process will be much much (much) slower; that guy's a machine!
Unfortunately I'm still expanding my electronics portfolio when it comes to building robots so i don't yet have an Xbee/APC220 to experiment with the Veyron, which has built in connectors for these devices, though looking at the documentation it seems like it would be quite straight-forward to implement, and a very nice feature.
I've found this to be a great servo controller, considering the price point, and cost per channel, there isn't much competition out there that I've seen. It would be nice to have the option of I2C, but given all the other features this controller has, I can't fault it for that. Hopefully given the version number of the Visual Servo Controller software (v0.1), we'll see some added features and improvements to come. Based on price, range of options, and number of servos/channels, this can't be beat. I highly recommend the Veyron Servo Driver (24-Channel) from DFRobot.
Please don't hesitate to ask if any questions or anything I haven't covered.
Edit: Added video showing a quick run-through with the robot arm controlled from the Visual Servo Controller software. Sorry it's a bit jerky and lighting isn't great. More pics on the way soon as well