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

Hoddem's DIY Linear Actuator

Discussion in 'DIY Motion Simulator Projects' started by Hoddem, May 23, 2017.

  1. kermitkong

    kermitkong Active Member Gold Contributor

    Joined:
    Apr 12, 2016
    Messages:
    187
    Occupation:
    Hardware Development
    Location:
    Germany
    Balance:
    1,238Coins
    Ratings:
    +275 / 1 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    Im not talking about motor PWM or the PWM which is at the sabertooth.
    For sure this a speed related.
    But the RC-Input on the cangaroo is a position value which is translated from the Simtools actuator DOF value into a PWM value internally.
  2. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,286
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    9,112Coins
    Ratings:
    +1,238 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    i dont think you will get a huge difference in feel from .122 to .025 resolution (regardless of the argument that it exists) this isnt 3d printing or cnc. I dont believe you will get the assembly of the rig so tight that it makes much of a difference. there will be play in some of the components that cannot be eliminated. especially after a period of time at the speeds you plan on inducing.
    • Agree Agree x 1
  3. kermitkong

    kermitkong Active Member Gold Contributor

    Joined:
    Apr 12, 2016
    Messages:
    187
    Occupation:
    Hardware Development
    Location:
    Germany
    Balance:
    1,238Coins
    Ratings:
    +275 / 1 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    Yes that’s right...
    • Agree Agree x 1
  4. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    @kermitkong, @yobuddy, @bruce stephen
    I missed this whole exchange, I never got the notification. anyways here is how I am interpreting it.

    I am using an encoder vs a pot so I have an effective travel of 10,000 counts (500mm long/10mm pitch, 50 revs *200 counts per rev.) Simtools is capable of outputting up to 16 bit commands so 65536 positions. I am using serial positioning commands to the kangaroo which has a minimum of 1 count. The limiting factor would then be my encoder which a single count would be 0.05mm of travel.

    This is all theoretical right now, there will of course be a dead band determined during the kangaroo auto tune and that will take into consideration the minimum practical rotation the motor control is able turn the motor. That is the big question in my mind, if the minimum practical rotation is say 1/2 turn then all this is for naught and the minimum travel would be 5mm which wouldn't be good.

    I chose the encoder because that is what I have more experience with, but looking at the arduino analog to digital conversion the data is only 10bits so 1024 steps. That means using an arduino/sabertooth/pot would result in a minimum move of around 0.5mm. That makes sense as I am using XPID (@vthinsel ) on my 2dof simulator and I can set the travel range between 1 and 1024. With a 60mm lever my minimum move is an arc of about 0.4mm. I would have to test that, I don't notice notching or jumping in my 2dof simulator.

    That's how I have it in my head, maybe I'm missing something but I hope to test it out soon.
  5. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,286
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    9,112Coins
    Ratings:
    +1,238 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    I think its awsome eliminating the POTs and getting feedback from the motors via encoder. what a relief from a design standpoint for certain. this will certainly be the weak (more chances for breaks) link in my build due to the belt/pot setup.
  6. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    The design aspect was the reason I went with encoders, I am just used to mounting up an encoder to the motor shaft. I wouldn't say that the end result will be any better or worse though, there are already a lot of working simulators using the potentiometer and belt system. From what I can gather on the forums the kangaroo doesn't work well with potentiometers and I don't know if there are any successful encoder builds yet. The ultimate solution would be to modify one of the already proven arduino sketches to use encoders. I have looked into it, but the real challenge is keeping an accurate count while still running all the other functions. All of this can be offloaded using an external counter like the LS7366R. Hopefully the kangaroo just works, but If needed I will try to tackle updating the XPID sketch.

    Versions of the LS7336R that I have looked into
    https://www.robogaia.com/3-axis-encoder-conter-arduino-shield.html
    https://www.superdroidrobots.com/shop/item.aspx/dual-ls7366r-quadrature-encoder-buffer/1523/

    I read through your thread, maybe I missed it but what is your control method. I know you are using a Pot but what motor driver are you going to use and are you using arduino.
    • Like Like x 1
  7. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,286
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    9,112Coins
    Ratings:
    +1,238 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    monsters for testing at 12v with ard. then ARD/2x60 sabertooths at24v for the final build. I already have a working SMC3/ard/monstermoto system so this willl be easiest.
    but I may dragass to see your build get further. the encoder deal looks promising, @Thanos 6dof also has encoder options http://motionsim.blogspot.com/
  8. 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,051 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    Yes, encoder to position module is almost ready. Just testing on actual servomotors now:


  9. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Wow, 6 of those actuator would launch you through the roof. So is the module converting encoder to 0-5v out?
  10. 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,051 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
  11. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Awesome stuff, also I wanted to say thanks for the inspiration. Before I knew anything about motion sims (or xsimulator.net), I was going to build a copy of your pvc joyrider. I designed everything up in cad and stopped just short of buying all the parts because of the size of the unit and my general lack of knowledge. Your early videos were enough to get me addicted though and here I am today with a running 2DOF rig and working of 6DOF actuators.
    • Like Like x 1
  12. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Nearly 1am and a pile of empty bud lights, but I was determined to get everything put together. I have a lot of pictures and I will do a write up when I get time. Here is my version 3.0 actuator in action. I am just using batteries at this point, lots of sparks again.



    I am hoping to test with simtools/kangaroo/sabertooth tomorrow.
    • Like Like x 9
    • Winner Winner x 1
  13. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    So I said I would do a little write up on the assembly, I'm going to try to keep the words to a minimum and the pictures to a maximum (sorry to anyone who has slow internet).

    The motor shaft is too long from stock so the first thing to do is trim it down. I clamped on a shaft clamp to keep the cut square, then I finish the edges with a hand file.
    1 1.JPG
    2 2.JPG
    3 3.JPG

    encoder assembly - using a US Digital E2 shaft mount encoder. kit comes with all the tools needed to center everything on the shaft and align the encoder disk to the sensor.
    4 4.JPG
    5 5.JPG
    6 6.JPG

    Mounting the front and rear plates to the motor, knowing that one will need to come back off later to get the housing installed.
    7 7.JPG
    8 8.JPG

    Building up the plate that will merry the ball nut to the 4 guide shafts. the bushings are IGUS polymer and are press fit. The bushings are supposed to be installed into an exact hole so I picked up a cheap China reamer from ebay and reamed the holes to get the right fit. Bushings are retained with some 8-32 pan head screws.
    9 9.JPG
    10 10.JPG

    Mounting the ball nut in the guide plate, I am using 6-32 flat head screws to help center the ball nut. I had planned on countersinking the 6 holes slightly to get a flush mount on the screw heads and maximize travel, but realistically its about 1mm of lost travel. I didn't have the right screws so these ones were just a bit too long and stick out the back too far. also they are Philips and I always try to go with Allen screws.
    11 11.JPG

    This is the lower plate that holds the ball screw bearing and shaft clamps for the 4 guide rods. Notice that the shaft clamps have been trimmed, that was the only way I could fit these inside the 4" OD tube. I trimmed them on my CNC.
    12 12.JPG
    13 13.JPG
    14 14.JPG

    Next I assembled the top plate (I already had this assembled before I started). I am using an IGUS 30mm Polymer bearing with aluminum housing. I had to mill some notches in it to get the whole assembly smaller. If you look closely you can see the 4 screws that hold the bearing in have coupling nuts on the top side, this is where my cap will screw into.
    15 15.JPG
    16 16.JPG

    Assembling the U-joint, I changed the design to utilize the flat plates that come with the ubolts. I had to cut all of the ubolts to the correct length so I double nutted them in the correct location and then used the nuts as a cut guide. I swapped out the standard hex nuts for some low profile lock nuts. Also the one side has a relief that matches up with the encoder.
    17 17.JPG
    18 18.JPG
    19 19.JPG

    Building up the main shaft, It is a custom hollow hardened linear shaft. One end is bored out to accept the ball nut and the other is threaded for a swivel joint. I ordered it from a shop in china and I am very impressed with the quality, the side that accepts the ball nut is bored out to 28mm, that's only 1mm wall thickness left and they pulled it off. On the other end I couldn't get the correct thread so I had them make it with a larger thread and then I printed an insert with threads on the outside and inside. I didn't do it for this build, but long term I will run a 3d printed insert on the end of the ball screw to reduce wobble. For that reason the inside of the linear shaft needs to be smooth. However when I got the shaft the inside was rusty and pitted, I asked the factory if they could polish it for me and they said the couldn't. I picked up a hone and polished the inside of the shaft enough to get rid of the rust and minimize the pitting. I don't have a good picture of it, but the tools is a flex hone. The last piece is a super swivel rod end with a 3/4 shank and 5/8 mounting hole. Its pretty big, but I wanted it to look proportional.
    20 20.png
    21 21.JPG
    22 22.png
    23 23.JPG
    24 24.JPG

    Next I started assembling everything, here I have the main shaft clamped into place with a 30mm shaft clamp. If you look closely you can see a gap between the shaft clamp and the ball nut plate, that is from the wrong screws sticking out too far. I also installed the ball screw in the lower bearing and locked it in with the included nut. Then I worked the (qty 4) 12mm hardened shafts into place. surprisingly everything went in nice with minimal binding. Then I added the flex coupler to the motor and ball screw and mated the two halves together.
    25 25.JPG
    26 26.JPG
    27 27.JPG

    Then it was time to cut the polycarbonate tube to size. I am using a 4" OD x 3.75" ID x 24" tube trimmed into the two sections. For the final version I had planned on replacing the polycarbonate with 6061 aluminum, the cost is about the same believe it or not. I trim these up on my chop saw with a coarse carbide wood blade and I just go slow enough not to crack it and not so slow as to melt it. I used the blue tape just for marking the length. Lots of hot plastic gets stuck inside the tube so I wash them out and chamfer the edges with a deburring tool. First test fit didn't go well, I printed my parts with no tolerance so I had to file the groove down to get the tube to fit. I also hit my first gotcha moment here, my plan for assembly didn't work out so I had to remove the swivel rod end and in order to put everything together in the right order.
    28 28.JPG
    29 29.JPG

    Last customization was cutting the 4 threaded rods to length, more of the same with double nuts as guides. I slowly worked the rods in from the top down, I of course removed the lower motor mounting plate and installed my housing too. While I had access I also installed the encoder cable. I used an internal hex nut on either end of the assembly to lock every thing in place, its a tight fit so it had to have a small OD. The last step was to re-install the swivel rod end and the cap.
    30 30.JPG
    31 31.JPG
    32 32.JPG
    33 33.JPG
    34 34.JPG
    35 35.JPG

    Here is the finished actuator next to my old actuator. Its not actually finished as I need to install the fans and wire up the connector plate, but close enough for testing purposes.
    36 36.JPG
    • Like Like x 5
    • Winner Winner x 5
  14. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,141
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,541Coins
    Ratings:
    +10,902 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    The detail is brilliant but when posting so many pictures can you please insert them as thumbnails, otherwise it kills the page loading and most don't display for someone such as myself who is on a slow net connection.
    • Informative Informative x 1
  15. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    I have the exact opposite problem, I can never get the thumbnails to show up as full pictures I only ever get to see them as thumbnails. I haven't tried, but can I do both. I like the pictures to just be there rather then clicking on each pic.
  16. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Got everything sorted with simtools and the kangaroo tonight. I was having a lot of problems and then I realized that I pretty much killed my 12v batteries, ran them right down to dead. I charged them up and threw my lab supply in parallel to trickle charge them while I did the testing. When the batteries were going dead I was having a lot of positioning errors and I just assumed it was the kangaroo or wiring for the encoder, now that I have a steady 24V supply I haven't had a single error and it actually runs faster (I knew the sparks last night were smaller then I remembered). I ran a bunch of testing in simtools and I am happy to say that this thing rocks. Its quite a bit faster then the old unit and so so so much quieter, in fact if I can get rid of the squeaks I might actually be able to run it in the house without getting in trouble with the warden. I need to grease the ball screw and I'm hoping the polymer bearings will self lubricate like they claim. I tried to load test the actuator but it was too hard to hold it and run simtools at the same time so I will have to save that for another day. I ran the system as slow as I practically could and there is definitely some notching, its audible but hard to feel when holding on the the shaft. I don't think it will be a problem especially for racing, maybe for a flight sim.



    Edit - I pulled a section of the video and broke it down, .75 seconds to make a full stroke. Stroke length of 380mm so a speed of about 500mm/s. That includes the acceleration and deceleration at either end of the stroke so not too bad. It would be interesting to see how the 5mm pitch screw responds as it would have much better acceleration and power, but slower top speed. I should probably order enough parts to build up another one for testing purposes.
    • Like Like x 3
    • Winner Winner x 1
    • Informative Informative x 1
    Last edited: Feb 12, 2018
  17. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Just had a thought, the kangaroo is speed limited from the factory, I think 75%. I will have to play with that and see. Tomorrow I am going to strap my phone to the actuator and get some data with the accelerometer. I need to get some actual results. I also need to think of a way to accurately test the max speed.

    Edit pulled from the kangaroo manual

    upload_2018-2-12_9-45-56.png

    Describe has the ability to set the value manually or turn off the speed limit completely so I will have to test that tonight.

    upload_2018-2-12_9-50-0.png
    Last edited: Feb 12, 2018
  18. 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,051 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    Perhaps this can help, with some modification:
    https://learn.adafruit.com/toy-car-speed-timer?view=all
    • Like Like x 1
  19. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,286
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    9,112Coins
    Ratings:
    +1,238 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    so you are getting movement in simtools also?
  20. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    404
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    3,342Coins
    Ratings:
    +715 / 2 / -0
    Yes, All of my testing in my last video is being controlled with simtools. The wave function is a plug-in for simtools by @value1.
    • Like Like x 1
    • Winner Winner x 1