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

Dirtys 2nd 6DOF - AASD - M4S Controller - SFS1620

Discussion in 'DIY Motion Simulator Projects' started by Dirty, Jan 30, 2023.

  1. eat5hams

    eat5hams New Member

    Joined:
    Feb 6, 2023
    Messages:
    7
    Balance:
    72Coins
    Ratings:
    +1 / 0 / -0
    Thanks. Yes in the CNC mill and other CNC machine tool industry they talk a lot about how Windows is not a real-time environment. So you have to have a controller just like you guys are using between the computer and the CNC machine itself. There are a few Linux based CNC control softwares that can interface directly with a milling machine without a separate controller, so I'm guessing Linux is closer to a real-time system
  2. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    328
    Location:
    Colorado
    Balance:
    2,419Coins
    Ratings:
    +234 / 1 / -0
    Linuxcnc is specially built to be real-time. Linux is not inherently real-time.
  3. loon_NG

    loon_NG New Member

    Joined:
    Oct 23, 2022
    Messages:
    12
    Location:
    Biot, France
    Balance:
    92Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    6DOF
    Thank you @Dirty,

    I don't know what mean these 8 numbers...If this is a frame for 1 position., so approximatly:
    - rs485 rtu transmission is 11 bits per byte, so 264 bits for these 8*3 bytes.
    - with the baudrate of 115200 bps, this frame will take 2.3 ms to arrive to the servo driver.

    It's quite interressing, 436 Hz!

    Cheers
  4. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    I have never used RS485, so I don't know how those would work.

    I am using the M4S controller:
    IMG_0409.jpeg

    And I can tell you, I am one happy camper :) So much so, that I have already bought enough for my next two projects to come. I'm not sure if there are any official industry standarts how to define "real-time-control", but this thing is so fast that I wouldn't know what more to ask for.

    These 8 numbers (for up to 8 channels) tell the controller where the actuator is supposed to be between fully retracted and fully extended. The M4S controller for example expects values in 24bit, so you have to specify a number between 0 and 16.777.215 using 3 bytes.
    In my own software I am internally representing the actuator position as a value between 0 (min) and 1 (max) that I call "utilisation".

    Here's how I put the message together:
    Messagegenerator.png
    Conversion from utilisation (o-1) to bytes:
    GenerateBytes.png

    Cheers... :)
  5. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    Btw, both Thanos and M4S use 250K baud. So you can send over 1000 messages/s. I'm using 500 messages/s.
  6. twinking

    twinking New Member

    Joined:
    May 26, 2020
    Messages:
    12
    Balance:
    71Coins
    Ratings:
    +13 / 0 / -0
    Hey,
    Your builds are always looking so good! Fantastic work. Did you use igus bearings at the top of the actuator to guide the pushrod?
    Best regards
    Fabian
    • Friendly Friendly x 1
  7. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    :) Thanks for the compliment! They probably just look so clean because I prefer showing renderings instead of the real thing :) I find it often highlights the design intent much better.

    In this build I have opted for a single upper bearing which is essentially just a 2mm thick inner liner of that upper block. But that block and liner is 90mm long, so it gives enough overlap between the actuator body and the pushrod, thereby providing sufficient buckling stability.
    igus custom friction bearing.png igus custom friction bearing with block.png

    It looks nice and clean in these renderings for which I have used "iglidur i-190", while in reality I have printed it out of the slightly cheaper "i-150" filament which is white:
    Screenshot 2023-02-24 at 07.02.58.png

    I am very satisfied with it. After a year of use there was no measurable attrition. The speed and distances of the sliding motion are just so low and the surface area is so large that I am convinced this thing will hold for much longer than a lifetime.
    A tight fit of this part around the pushrod is important to give good buckling stability, so I did a few test prints to find a perfect fit. I reached a point where deviations in the manfacturing precision of the stainless steel pipe (60.3 x 2mm) were larger than the dimensional deviations of the printed part.

    I have added fins and a collar to give this part sufficient area to glue onto and also to ensure good alignment with the actuator axis.

    The little pockets you see take up the screws that fix the rod to the ball nut:
    igus custom friction bearing.png Screenshot 2023-01-30 152905.png Screenshot 2023-01-30 150627.png Screenshot 2023-01-30 141417.png

    That allowed me to shorten the actutator by another ~15mm without sacrificing buckling stability. I figured if I'm going through the hassle of designing a custom bearing/liner I might as well make use of the design freedom it gives me.

    Cheers,... :)
    • Like Like x 1
    Last edited: Feb 26, 2023
  8. twinking

    twinking New Member

    Joined:
    May 26, 2020
    Messages:
    12
    Balance:
    71Coins
    Ratings:
    +13 / 0 / -0
    Excelent work! Im using Igus Drylin R WLFM "Einbressbuchen". I designed my actuators two years ago and already have all six ready. However I had no time to bring it all together yet. I like your design and solutions more than mine but I guess I have to stick with my design for now :D.
    Maybe for the next Iteration ;).
  9. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    Hi :)
    I used similar igus sliding bearings on my first actuator design, which had 28mm pushrods. They were reasonably priced at 3€ a piece. But with my second rig I started using 60.3mm rods which would've meant I had to use 2 x 18€ = 36€ worth of bearings per actuator :-/ So, I went with the 3d printed liners.
    Sidenote: I am already in the design of my 3rd actuator and this time I am going for 70mm rods --> 46€ per actuator for the bearings alone :-( I will go for 3d printed liners again.
  10. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    328
    Location:
    Colorado
    Balance:
    2,419Coins
    Ratings:
    +234 / 1 / -0
    Great thread!
    Why are you inspired to move to such a big rod?
  11. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    I noticed that it's quite advantageous to have a good stroke/length ratio. I currently have a ratio of 631/895 [mm]. So, instead of craving "more stroke", like so many do, I started designing for "less overall length".
    One of the measures to reduce overall length was to put the ballnut inside the rod. Every millimeter counts and that way I could have the outside of the rod provide guidance and stability while on the inside those same millimeters(!) housed the ball nut.
    Crosssection vertical 1 Modified.png

    But that means that the rod diameter will have to grow with the ballnut :-/ In this build I have used a 60.3mm rod to house the SFS1620 ballnut, but my next build will use an SFY2020 ballnut, hence the insanely large rod diameter of 70mm there.
    • Informative Informative x 1
    Last edited: Feb 26, 2023
  12. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    ...similar philosophy on those pockets I talked about earlier: The same millimeters that provided guidance for the rod could accomodate those screws :)
    igus custom friction bearing.png
  13. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    328
    Location:
    Colorado
    Balance:
    2,419Coins
    Ratings:
    +234 / 1 / -0
    Gotcha, is the drive from 1620 to 2020 because you want more length or is the 1620 giving you trouble?
  14. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    No, in both cases I used an overall length of 750mm which gave me a stroke of ~630mm. The move to a 20mm diameter ballscrew was largely due to the fact that I found a supplier who could deliver the 2020 ballscrew with custom end machining for almost the same price as a 1620 and I just wanted to try it out to see if it makes a difference in noise and vibrations.

    If you look at the spec sheets of those ballscrews you will notice that the way we use them in linear actuators is way beyond anything the manufacturers have ever intended. I saw a table a while ago that gave a maximium RPM of 300 and a maximum axial load of a few dozen Newtons. I am spinning them at 2500RPM, loading them up to 1000N. That being said, they still seem to hold up just fine.

    Here's the grease after a year of operation:
    Screenshot 2023-03-03 at 00.03.58.png

    No dark metal residue indicating virtually no wear at all.
  15. Historiker

    Historiker Dramamine Adict Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    2,158
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,176Coins
    Ratings:
    +2,156 / 19 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    Looks fantastic my friend! Now I really am tempted to bicycle the Rhine again :cool: Or at least Lake Constance to your house :thumbs
    • Agree Agree x 1
  16. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    A few months ago I got in touch with @Klaus Schmidinger and after a nice chat he ended up buying my rig from right under me, essentially :) I thought he just wanted to come over to try it out, when he asked "How am I gonna get this into my car?" :-D
    We agreed on paying just the bare cost of the components, which allowed me to use the funds for my next rig, without having to ask my wife for permission :thumbs
    ...and allowed him to get a reasonably well built rig as a base for further development. And boy, develop he did!

    Here's his website where he highlights the changes he made. And I have to admit: It looks ready for the show room.

    --> http://www.tvdr.de/sim/3 <--

    He really has an eye for all those details that when added up make for a beautiful build. I will certainly steal,....

    uhhhh...

    I mean: "...let myself get inspired by..." his ideas :)
    • Like Like x 1
    • Friendly Friendly x 1
  17. JohnH

    JohnH New Member

    Joined:
    Jan 12, 2024
    Messages:
    7
    Balance:
    2Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    3DOF
    Amazing build you have. I feel inspired. I have about the same space/height (230cm) restrictions as you described and I am trying to convince myself NOT to get rid of my 6DOF platform mover in exchange for a Stewart design.
    I am rarely successful in restraining myself...
  18. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,825Coins
    Ratings:
    +859 / 2 / -0
    So you have a 6DOF platform that is not a Stewart type? How does it work? Do you have a build thread?

    Cheers,.. :)
  19. JohnH

    JohnH New Member

    Joined:
    Jan 12, 2024
    Messages:
    7
    Balance:
    2Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    3DOF
    I was somewhat sloppy in my choice of words there. It is a 3DOF with the addition of surge, front traction loss and rear traction loss. Not really comparable to a 6DOF Stewart platform.

    I have no build thread. I found xsimulator just a week ago, sweeping for information about Stewart platforms :)