Monday, May 27, 2019

New firmware for easy AASD-15A Servomotor interfacing


After years to integrating many different type of motors in the AMC1280USB, in 2017 I added support for servomotors via Servo signal conditioner and Encoder2position modules. These worked good converting the complex signals required for the servomotors to simple inputs/outputs that the standard AMC1280USB firmware can handle (speed control, PID position feedback etc).

But recently I had inquiries from SFX100 users for possibility to use the AMC1280USB to be able to have Simtools compatibility. The SFX100 system is using AASD-15A servo drives that lack some extra outputs that can be used for limit switches so it didn't seem easy to be adapted using the standard AMC1280USB + Servo circuitry. It is too expensive too anyways and complex to make.

So I followed a new route. I decided to completely rebuild the firmware to control the AASD-15A drives via Pulses and implement local position index in the memory of the AMC1280USB controller. But I needed a way to also be able to calibrate the actuators on power up so I can properly set the position of the index to match the actuator position otherwise, if the actuator is powered in middle position it might exceed the total stroke and damage possibly the actuator mechanics and even damage the servo drive electronics if torque limits does not catch it.

So I went above and beyond and made it so it will automatically detect the presence of a AASD-15A drive connection and calibrate it without using limit switches. As soon its detected it will move slowly the motor until a hard stop is detected. It will then set that as home position and will calculate automatically the position index for all the rest functions. The new functions include Automatic Park position and Automatic Standby position that will move to slowly when needed. No more jumping to center on power up.

So to keep it short, you can now interface the AASD-15A servos on the AMC1280USB main board using the standard PWM outputs and some extra inputs on the analog connectors. A few resistors and capacitors are needed to filter out some noise from the servo drives, but the rest of the wiring is simple:

See below example wiring to a DB25 Breakout. I soldered the resistors/capacitors on two little protoboards on the analog input headers to save space:

If you want to follow the development of this and more information behind it have a read here:

Here are some videos of the early testing and development:

The new firmware that supports the AASD-15A servos has now different menu options:

Here is a performance test with Simtools:

So after implementing all in the AMC1280SUB controller, I decided I wanted a single board that you can plug these AASD-15A servos directly without having to make custom wiring and breakout connectors etc... Thus the AMC-AASD15A servo controller was born.

The unique design allows direct plug of these AASD-15A servos using off the shelve DB25 male-male cables (Straight). A truly plug and play system at last!

Closer look of the AMC-AASD15A servo controller:

Plug and play calibration feature:

Here is testing two servos:

Some explanation of the new options for the LCD menu:

And how to set individual strokes/screw lead pitch/Inline and Foldback actuator types...

3D printed enclosure was also designed for the AMC-AASD15A servo controller:

The latest firmware for this is same for both AMC1280USB and the AMC-AASD15A boards and can be found here:


San Diego, California
USA, 2019

No comments:

Post a Comment