Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited
Resolved Resolved by DJ Sures!

Multiple Motors

The robot that I am building is going to have DC motors for XY and Z movement as well as elbow bending, wrist turning, etc. I will probably wind up with eight DC motors when I'm done.
Now that I've learned how to drive a DC motor with an H-bridge which works for two motors how do I drive the remaining six motors ? One of the motors will require the use of a SyRen 50 controller.
My plan is to use 10 turn potentiometers on the motors for position feedback.

Hi Dave,

I think we will know a lot more by Wednesday ... I should have my USB to TTL cable and some kind of response back from DE by then ...
Do you have any experience with looking up an x, y, z position (for multiple servos) in a database and then driving all the servos to that position in space?

There is a way to kind of use auto-position with simple serial or other scripted commands. You define the servos as virtual servos, and have the AutoPosition frames activate them. You can then have scripts with getservo(port) in a loop or in waitforchange so when the virtual servo changes position in the AutoPosition action, the script sends the equivalent serial command. You can also have scripts right in your frames, just be sure to have enough pauses because if multiple frames have scripts, each new frame will stop the previous frame's script.
Interesting concept... I am hoping for a much more elegant solution similar to using a motor controller with built in feedback releasing the robot controller for other things like the Sabertooth/Kangaroo combination. I was thinking about calling a location from a MySQL database and the EZ-B handing it off to multiple Sabertooth/Kangaroo boards to complete the movement...
@Alen, thanks for the tip on the auto-position scripting triggering simple serial commands. I haven't really worked with the AP control but was really hoping I could find a way to use it with my B9 arm. Looks like there 'is" a way or two. :)

@Castle, Now that you're talking about databases of locations in space and MySQL, you're over my head. Sorry. I'm sure there are others here that can answer this. If not Google is always there for you. ;)
Hi Dave,

Actually it is not difficult at all... You probably have positions that you want your B9's arms to go - like Danger Will Robinson, Danger! So if you save those positions in a file and then call that file when you want it / then the arms move. If you have lots of those files you would keep them in a database and then just make calls to the database... Simple!
Greeting all!

I just talked with Charlene at Dimension Engineering tech support about my encoder problem.
She said that since the only thing that I changed is the feedback mechanism (from pot to encoder) and since the motor is chattering that the problem is most likely a noise problem from the encoder. She recommended installing 10k pullup resistors as well as 10uF capacitors on the encoder wires. She is going to be emailing me a diagram of how to install the resistors and caps. She said that with a lot of the knock off encoders that they need these for the noise. She also said to ground the shield on the encoder cable.
She is also emailing me the latest release of the DEScribe software which includes an update to the Kangaroo software which will allow you to see the encoder ticks and/or the potentiometer voltage when tuning or operating to see if there is noise on them.
I can't use the software until my cable arrives on Wednesday but I can get the caps and resistors and see if that solves the problem.

Just keeping you up to date!
Great to know. Please share all the drawings she sends. I'd like a copy of the new software also. What is the version number?

Did you talk on the phone? I've never been able to reach them that way.
I will definitely share everything I get from them! Yes, we talked on the phone - I checked on my order for more sanertooth/kangaroos and the asked for tech support - I had already sent her an email explaining everything so she was able to read my info and then give me advice. It was great and friendly support!
This is the second time I have talked with them and it has always been between 10 and 11 am their time...for what it's worth...

Here is the info that I just received from dimension engineering:
Here is the new software version we talked about:

To update, after Kangaroo is connected, go to Tools > Update Firmware. Navigate to Kangaroo folder and choose the latest file 2015-10-23.
Try the 1k ohm pull-up resistors on the encoder first. You will need one each from channel A to 5V and channel B to 5V.

Dimension Engineering Support
+1 (330) 634-1430
@ castle - to keep an eye on your encoder you can put a 10k ohm resistor through a led to ground on both a and b encoder outputs that go to the kangaroo. This will give you a good indication if your encoder is working the way you expect it to. You will probably need to turn it very slowly to see the pulses but it should be a good indicator to help rule out things when you are in troubleshooting mode. Things like noise should be noticed with the leds, if there is any.
Also DE recommends that you have a battery on the circuit for the regenerative power from your mechanism.
Wow, purple! Your right! I totally missed that. The only sabertooth that can run without a battery attached to dump the regen power back into is the Sabertooth X32. Even then you need to chock the regen power with a power resistor. Good catch. That could be why he's seeing the flashing red led on the sabertooth.

Thanks for the "stuff" Castle!
Hey Dave, yeah I'm surprised you did not catch that one. The reason I thought of it is when I had to contact DE, it's the first thing they asked me. The second was can we see a schematic. This kangaroo is really cool, I know you know that too because I have watched some of your video posts. It's a lot of control power for a little cost. I had that red light blinking on the sabertooth too, it was an indication that the voltage of my supply was dropping during load. That's something you have to watch with the wall warts, almost all are unregulated so the circuit voltage will have a huge dip under load.
Ya, totally missed it the lack of battery. I gotta chalk that one up to liquid Christmas cheer. I gotta stop troubleshooting when I'm making merry. LOL. Thanks for catching it.

I mentioned the low volt scenario and flashing lights to Castle a few posts back because I had the same flashing lights when I was trying to tune and then again with my motor was running. DE also told me the same as what you just said; Voltage dropping during load. I got a power supply with more capacity and I that solved a lot of my problems.
Hi guys,

Last evening I soldered in two 1.5k resistors on to the encoder. One is soldered to the A wire and to the red wire which is the 5vdc to the encoder. The other resistor is between the B wire and the red wire. I put all 4 Roo switches to on and connected power from a battery (thanks guys) - it is a fairly large glass may battery - no wall wart. I then conducted a button press teach tune auto tune which went perfectly. i then power cycled and then went to my Hirizontal servo on D0 and moved the mouse but alas / nothing happened. No movement, yellow led is steady, no error blinks - nothing.
I then powered off, switched dip 1 on the Roo to off and powered up. The motor immediately went to one end of the tune position and chattered to a stop. When I move the mouse it chatters in both directions but not moving much.
So I'm calling DE this morning..

Hi guys,

I got it working with the help of Charleen at DE. By the way, she really knows her stuff and is easily reached by phone, I have talked with her at least 6 times in the last 2 days.
The problem with the encoder turned out to be a bad input channel on the Kangaroo.
I had initially done my potentiometer testing on Roo channel 1 and then when I started doing the encoder testing I used channel 2. It would autotune great but when I went to control it from EZ-B nothing would happen. We tried different resistor sizes but still no joy. So I decided to put the potentiometer (which worked) on channel 2, did an autotune but then nothing. Ah Ha - maybe it is the channel? So I put the potentiometer on channel 1 and it worked. Then I put the encoder on channel 1 and VOILA! it worked flawlessly!

DE is shipping me a replacement Kangaroo!

By the way, I am trying to use the two channels independently. I asked Charleen if perhaps I needed to have channel 1 hooked up before I could use channel 2 and she said no - they operate completely independently. You can use just channel 2.

So, there you have it Using an inexpensive encoder from Amazon in TeachTune mode works!
My USB-TTL cable is supposed to arrive tomorrow and then I will connect the DEScribe software to this Roo and down load the tune, which Charleen says I can just upload to the new Roo and it will work!

Thanks to everyone for all the help. Please let me know if you have any questions!

It is a bummer getting something new arrive broken, but what a nice feeling to know you were actually doing everything right and it was just a piece of broken hardware causing all the frustration. congrats on figuring it out. That bit of knowledge about being able to save the auto-tune and load it to other roo's may come in handy for anyone building robots for sale that use this hardware.

Yhaaaa! Nicely done! What a relief. Did you leave the pull up resistors on the encoder?

I need to give her a call. It's good to know she's so available. I'm having a problem with my motor not centering at the same point depending which way it's approaching the center and where it's starting from. Don't know if it's the Roo or the Softpot. I've tried many different adjustments with no difference. I did ask Charleen a while back about this problem and she (and others I've asked) mentioned deadband settings. No change. I only mention this off subject item because I think you said you're using the Softpot also. Just something for you to keep an eye on.
Hi Dave!

That's good information! I do have a soft pot on my hydraulic ram which I will be driving with a SyRen 50/Kangaroo combo. I did have a little problem with the motor not completely stopping when using a pot for feedback - Charleen told me that was a deadband issue that I could easily solve with DEScribe when the cable arrives!

I am so excited that I have been able to get these motor controllers behaving like servos which is going to allow me to control larger gear drive motors and bring Wiggins to life!

My USB TTL cable arrived and today I got it working with DEScribe! Don't understand a thing I'm looking at...

My USB to TTL cable arrived from Amazon - I ordered the one that @Dave recommended. It turned out to be make by SparkFun but did not come with any drivers. I plugged it into my Windows 7 Pro machine and Windows searched for and installed drivers which didn't work. It would download the information from the Kangaroo but would not upload it - the error was "Failed to open serial port." After numerous support calls to Charleen at DE she recommended downloading the drivers from FTDI. I found a link on the SparkFun site for drivers and upon installing them on a Windows 10 machine the cable worked!

Here is the location for the drivers: https://cdn.sparkfun.com/assets/learn_tutorials/7/4/CDM_v2.12.00_WHQL_Certified.exe