Thursday, September 02, 2010

Geckodrive is awesome

I am very impressed with the Geckodrive 320x. It works very well with the Tohoko Ricoh Type 7K00011 Servo Motor. I used an Arduino as the pulse source to control the speed:




As you hook up the Geckodrive 320X, follow the instructions step by step, and don't forget to hook Terminal 5 (ERR/RES) to Terminal 7 (Encoder +5VDC), or else the controller won't work. Also for the Tohoko Ricoh Type 7K00011 Servo Motor, you should set switch SW6 (HEDS) to "ON" to provide an active pullup for the encoder.

And the 320X didn't even get very warm - great heat engineering!

The Geckodrive is a highly precise device. You drive it with pulses. Each pulse means the motor is to move ahead on pulse on the encoder. Of course, motors can just speed up and slow down infinitely fast, so if you change the input pulse rate, there is a brief period of error where the Geckodrive applies a higher duty cycle PWM to the motor to catch up. However if the error is too much (configurable by DIP switches on the Geckodrive), the controller assumes there is a fault, stops for a second, accepts the new position as "good" and starts again.

At the end of the video above, I am probably trying to drive the motor faster than it can actually go, thus the controller faults out.

Also you can't just start the motor at its highest speed. You might have to start it at a slightly lower pulse rate and ramp it up to a higher speed, or else the controller might fault out. I am going to experiment with increasing the 256 count following error limit to the 2048 count following error limit and see how that changes the ability to do a cold start to a high speed.

Also I may try a sneaky thing where I hook up the encoder from a second motor to an Arduino, read the quadrature input to generate a pulse and direction signal, and send that into the Geckodrive to see if my twisting of the rotor on the undriven motor is reflected in the driven motor.

I think the Geckodrive and Tohoko Ricoh Type 7K00011 Servo Motor may work not only for "Breath 2 - the proportional version" but also for Ouija board over IP. I have to put a fan on the motor and see if I get a good breeze from it.

7 comments:

Andrew Forsberg said...

Where did you source your power supply? Any tips on where to get a decent and cheap unit?

thanks!

t11s said...

MJPA has great deals on power supplies

Andrew Forsberg said...

thanks!

Matt said...

Awesome work. Curious, have you tried any of the other Geckodrives with the Arduino? How reliable was your setup?

t11s said...

Matt, I've only tried this particular Geckodrive unit.

Anonymous said...

Great stuff!
I just borrowed the same kind of Geckodrive, and trying to figure out how to program it. Could you share an example of your pulse code? I'm pretty sure I've connected everything correctly, and followed the Geckodrive manual, but I've failed to succesfully control my servomotor. Would be great to see some example code.

Thanks!

Unknown said...

I need your help
how do you program in Arduino for PWM?