1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Question Open source controller for AASD-15A and similar driver

Discussion in 'SimTools compatible interfaces' started by cubexxx, Jan 2, 2020.

  1. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    Hi, I was wondering if there exists some open-source controller software (for arduino or similar) for those now-popular AASD servo drivers (as used for example in sfx-100 and pt-actuators). I'm well aware of the Thanos controller, but that is not open source (and I'm not really satisfied by its performance for various reasons) and the controller used in simfeedback (protocol and source unfortunately not open). I think all that the controller has to do is to read the values provided by the simulator software (simtools or mover or whatever), and generate the pulses for the driver to move to the new position. Doesn't sound so complicated to me, if there is no exisiting free software I'll probably do it myself, just don't want to duplicate already existing stuff.
  2. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    371
    Location:
    Colorado
    Balance:
    2,681Coins
    Ratings:
    +259 / 1 / -0
    I'm pretty sure there is not an open source solution.
    You probably already know this since you've looked at the two controllers out there but the Thanos control does more than pass along position data. It counts the encoder pulses and keeps track of the positions as a layer of safety. It also has a homing procedure that doesn't require limit switches. These are two very big very important features. And it does this for 7 servos at once.

    There are other great features too but these are huge.

    I'm watching the proliferation of these aasd15a drivers sweep the sim world thinking it might be nice to use a different servo drive that doesn't have the 10k wine or the lack of shielded cables or the lack of digital torque mode control or any other shortcoming I'm forgetting right now. Don't get me wrong, I've got 6 of the drives in my room and the performance and price is pretty awesome. I just think if you're going to start something from scratch you might try to improve that once part of the puzzle.
  3. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    Where do you get that information from? If you are referring to the AMC-AASD15A servo controller it doesn't do that. I've built the 4Dof "open hardware" version and it for sure doesn't do that and also the "normal" version that is sold doesn't do it because it does not use the necessary pins on the DB25 connector. All that it does is sending pulses to the driver, not receiving them. But to take care of the encoder pulses is the duty of driver anyway and I do not think it's necessary to do it again in the controller
    Last edited: Jan 2, 2020
  4. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    Hm, if you know better servos/drivers for decent prices, I'd be glad to be shown and use them. It's not so easy to find for me.
  5. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    371
    Location:
    Colorado
    Balance:
    2,681Coins
    Ratings:
    +259 / 1 / -0
    https://www.xsimulator.net/community/threads/amc-aasd15a-servo-controller.13945/

    The driver is a mindless position control pid loop. It does nothing to know about my linear actuator having 230mm of travel. The thanos control does this and more.

    A serial to AASD15A device that takes simtools or flypt mover commands does not "have" to do this, but I'm glad it does on my rig.
  6. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    1,358
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,773Coins
    Ratings:
    +1,050 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    There are other servos that don't have the 10Khz whine noise, like the Syntron HS drives that are more expensive. You can set the PWM from 10Khz default to 15Khz that is near the end of audible spectrum:


    Of course the AMC-AASD15A controller is not just parsing pulses, like the Leonardo arduino that Simfeedback uses, it performs lots of automations and safety features while NOT CONNECTED to the motion software as well!! With the huge power of the servomotors, its desirable to have this extra level of control as you are not transporting sacks of potatoes, but moving human beings on the platform!! :p

    If you want to try a free version software, there is a 4DOF firmware and PCB plans to build one (still not cheap from what I hear from people that build it): http://motionsim.blogspot.com/2019/12/open-hardware-4dof-servo-controller.html


    Thanks
    Thanos
    • Informative Informative x 1
  7. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    1,358
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,773Coins
    Ratings:
    +1,050 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    It does track the position of the servo. That's why it calibrates the home position using torque signal. It then knows exactly the position of the real servo using a mirror model of the motor in its memory :cool:

    It uses all necessary signals to know the state of the motor, if the drive fails for example and you power cycle it, it will know to re-calibrate the home position etc...
    • Informative Informative x 1
  8. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    The driver doesn't know about your actuator, but it knows EXACTLY the position of the motor (by counting the encoder pulses). And that is all that is needed. The controller just has to calculate the right amount of positioning pulses (not encoder pulses)
    Last edited: Jan 3, 2020
  9. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    It just uses the TReach signal to determine the end position. That's totally different to counting encoder pulses. After home calibration it knows the starting point, but everything from that point is just sending incremental pulses, no knowledge of an absolute position involved. The "mirror model" in the memory is most likely just a counter that keeps track of the transmitted pulses. The two signals used from the driver are TReach (== "Torque reached") and "Ready" (from the driver manual: OFF: There are alarm or malfunction, ON: No alarm and fault). Thanos himself said in his discord channel that TReach is only used for calibration. Thats not "knows exactly the position of the real servo". Let me repeat it again: Thats not counting encoder pulses!!!
  10. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
  11. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,573
    Occupation:
    Retired
    Location:
    Brisbane Australia
    Balance:
    28,370Coins
    Ratings:
    +2,844 / 39 / -0
    My Motion Simulator:
    AC motor, Motion platform
    Wow... why so angry? You already have a answer to your question 'no'. The Thanos controller works and there are plenty of happy customers to prove it. Exactly how it works is of no relevance to your question. Maybe its time to calm down and move on.
    • Like Like x 1
  12. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    1,358
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,773Coins
    Ratings:
    +1,050 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    I don't get it. What's the point of reading the encoder of the motor that doesn't have to do anything with the pulse/Dir control mode?

    If I was sending speed signals, yes, I would need the encoder pulses to implement PID control to stabilize speed and position.

    But the servo drive does PID already with pretty good accuracy... :thumbs
  13. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    371
    Location:
    Colorado
    Balance:
    2,681Coins
    Ratings:
    +259 / 1 / -0
    All the same, I'm excited to see what features you're thinking of implementing with your open source stuff.
  14. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    Right. That's why I was saying "But to take care of the encoder pulses is the duty of driver anyway and I do not think it's necessary to do it again in the controller". Maybe this discussion was just a misunderstanding of what is meant by "encoder pulses"
    • Like Like x 1
  15. cubexxx

    cubexxx Member

    Joined:
    Oct 4, 2019
    Messages:
    69
    Balance:
    537Coins
    Ratings:
    +41 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor, Arduino, 4DOF
    Hi Thanos, I just had a look into the manual for the Syntron drive ("Full-digital AC Servo Motor Driver HS-Series User’s Mannual (sic)"), thanks for that link. Where can you buy those? Didn't find a shop so far.
    The driver looks quite similar to the AASD drive, probably one a copy of the other...
    The manual is a lot better than that that I have for the AASD, much more detailed technical information and a lot better English. I guess most of the information given therein applies also to the AASD. The positioning using pulses looks completely the same.
  16. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    1,358
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,773Coins
    Ratings:
    +1,050 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    I got the Syntron equipment I have (MDBOX 3in1 and single HS servo drive) from PT-Actuator:
    http://www.pt-actuator.com/a/contact/

    Here is the manufacturer page but they don't have any pages directly with information for HS drives anymore:
    http://www.syn-tron.com/

    Thanks
    Thanos
  17. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    371
    Location:
    Colorado
    Balance:
    2,681Coins
    Ratings:
    +259 / 1 / -0
    One company the hobby is familiar with is Mige, They supply at least two different servo drives and they are just as cheap as the AASD15A.
    Talking to Lisa Zahn, a sales woman at Mige she told me the names and prices of the drives:

    "The unit price for DS100S-75 cost US$115,
    The unit price for MG1000C-30L cost US$165."

    When I asked what the differences between the drives were I got this:

    "There is no main difference between the DS100S-75 and the MG1000c-30L.
    There are just two different model."

    I didn't press further.

    Attached are some manuals.
    Would love to know technical differences but the sales staff seem pretty ignorant there. I've seen that with all the companies I've bought motor from in China. When I was shopping around for my current setup several companies told me I could not install the AASD15A on different motors. "They had to be a matched set." They didn't know that you can change the parameters to work with all the standard motor sizes. I also asked on two batches of 4 motors from Mige and another company to give me shielded cables. They both said oh yes no problem. Both times had no shielding. Oh well.

    Attached Files:

  18. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    371
    Location:
    Colorado
    Balance:
    2,681Coins
    Ratings:
    +259 / 1 / -0
    Another company that makes drives is Granite Devices. I have an Argon servo drive for my direct drive wheel and its great. Unfortunately its €399.00 and needs some more stuff to run like a low power 24v DC power supply.
  19. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    1,358
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,773Coins
    Ratings:
    +1,050 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    Hmm, this servo has fixed output functions. Although there is torque level detection, there is no way to redirect it to an output, instead it just results in alarm code and turning off the servo... It could still work though using an external limit switch for home calibration...

    Thanks
    Thanos