DIY Motion Simulator
- Part 1 – Project overview – What is it and what is it so much fun? 😉
- Part 2 – Electronics
- Part 3 – Linear actuators
- Part 4 – The rig
- Building Sim-Lab P1-X, including timelapse
- Improved adjustment of the wheel column
- Attaching actuators to the rig
- Attaching emergency stop button
- Cable management
- Designing your own 8020 rig
- Building the monitor stand
- Configuring the FOV
- Extra: Accessories and customization
This is a part 3 of 4 – access all the sections of this series by using the index above.
Part 3 – Building the actuators
Now that we have the electronics ready, we’ll be building the heart of the system – actuators.
Overview of all the parts
Let’s take a look at all the things we’ll be putting together. It helps to have your workspace neatly organized and all pieces grouped into logical chunks.
There are additional pieces, which I’ll call out during the build (e.g. o-rings, grease fittings, and more).
As always, you can find links for all of the hardware in bill of materials.
Preparing aluminum profiles – threaded inserts
We’ll begin by screwing on the inserts into profiles. This will either go smoothly, or end up being the toughest part of the whole build – Kinetik has been known for shipping 2 different types of threaded inserts. They both work, but vary tremendously in the difficulty of installation. I was lucky to receive the better variant, but don’t be discouraged if you end up with the other. Bit of patience, persistence, and elbow grease will bring the desired results 😉
We’ll be using a long hex key. I began by aligning the threaded insert in the hole, putting the long end of the hex key inside the hole to guide it and then making about 1 full rotation. Just enough for the threads to bite into aluminum. Make sure the inserts are going in as straight as possible. This is critical, and can make assembly at a later stage (attaching the bearing mounts and motor mounts) very difficult.
Once the force required to continue screwing grows, I found that it’s really helpful to put the extrusion on the ground, hold it with one foot, and continue screwing in half-a-turn at a time, then flip extrusion and continue:
This is a perfect application for a ratchet key with the hex bit – saved me a great deal of time!
Preparing the profile for first actuator took me about 40 minutes. Having figured out the best approach and helping myself with a ratchet with hex key bit attached, sped it up significantly. I timed myself doing the threaded inserts for very last actuator and I clocked in under 10 minutes for both sides of the profile (8 inserts total). Process improvements can yield great benefits 😉
Greasing the ball screw bearings
Ball screws are used to transform the rotation of the motor shaft into linear motion of the actuators. They’re carrying the load of the rig. Any unnecessary friction with those elements will contribute to the noise actuators make, and negatively affect performance. This is why it’s important to properly grease them. Note that they may come coated in a thin layer of machine grease, but that’s not a sufficient replacement for proper grease.
Warning: when working with ball screws, make sure not to extend them to a point where the ball nut comes off of the screw. This will result in bearings falling apart and results in a tricky (and time consuming) repair.
We’ll be using grease gun, and a set of grease fittings (also called “grease nipples”, really 😉 ), that may need to be purchased separately, depending on where did you source the ball screws from. Please see bill of materials for product links.
The process is in fact very simple: load the grease gun with a cartridge, screw the grease fittings to the ball screw nuts, plug the fittings into the nozzle of the grease gun and squeeze the handle 2 times. Then just pull them out of the nozzle – this step takes a bit of force, but it will come off.
Make sure to leave the grease fittings in the ball screw nuts, as they also serve as a seal (even though it doesn’t really matter in the application we’re going to install it), and make it easier to add more grease in future, if we ever have to service the actuators.
Actuators – Exploded View
Here’s a quick look into everything that goes into a single actuator:
You’ll notice that there’s a large number of differently sized bolts – see the picture above with all the bolts and nuts along with labels, for a quick reference.
Assembling the actuators
The first actuator took me the longest to assemble, I’d estimate around 2-3 hours. I wanted to go through the complete process, as a trial in preparation to then assemble remaining 3 actuators in a single batch, completing the same stage for all of them at once. It’s a convenient approach to make sure we don’t make a mistake for all of them at once and quickly multiply the amount of work. Assembling the remaining 3 actuators resulted in an average time of 1 hour each.
We begin by grabbing the bump stop 3D printed piece and an appropriately sized o-ring:
The correct size o-ring is shown on the right side. Notice that it’s expected to fully fit in the groove of the 3D printed part.
If you purchased the same set of o-rings as I called out in bill of materials, here’s a reference to the exact one to use:
This step may require fair amount of force to drive the bolts into the 3D printer slider. If you have a ratchet with long enough extension (to account for the length of the ball screw without thread), it can speed up the process significantly.
At this point, we need to press the bearing onto the end of ball screw with a small thread. Then secure the bearing with a nut – this is where the small thread is being used:
It’s important to really tighten the nut. As you can see, I clamped the ball screw assembly into a vise, and then used adjustable wrench to tighten it. Make sure that the bearing continues to rotate freely – if you encounter signifficant friction, loosen the nut and ensure that bearing has been fully pushed onto the ball screw, as far as it can go.
Finally, tighten the small screw on the nut:
As you can see, I used a motor mount as a support underneath, to ensure that the protruding part of ball screw doesn’t make it unstable and slide all over the desk as I’m working on attaching the pieces together.
Let’s put everything we’ve assembled so far to the side, and grab one aluminum profile, linear bearing and 3D printed linear bearing mount. Attach the linear bearing mount to one side of the profile (doesn’t matter which one):
Before moving to next step, I additionally spread some grease onto the linear bearing. I’m hoping for smoother and quieter operation, at the cost of a bit of grease oozing onto the hollow shaft in the first few minutes of operation, but that’s easy to clean 😉
The hollow shafts need to be cleaned. I used a rag (available for cheap from painting supplies section in Home Depot 😉 ) on a wooden dovel and then pushed it back and forth through each shaft. They’re very dirty inside (and smell bad too…) and we don’t want for any debris to get onto the ball screw and affect the operation of the actuator. It doesn’t have to be perfectly clean (although I heard of some people even applying epoxy to coat the inside of shafts), but there should be no more loose debris coming out of you touch the inside walls with your finger.
Once the shafts are ready, try inserting one end into the 3D printed slider, and check the fitment. It should go in with enough resistance to prevent the shaft from falling straight out. If there’s too much wiggle, add a layer of painters tape and then insert it into slider:
This is last chance to take a look at the insight of the actuator (without having to disassemble it, that its 🙂 ). If you forgot to grease the ball screw nut, now’s the time. I also smeared a bit extra through the length of the screw:
I decided to skip that step – as you may know from my other posts on this blog, I have few parrots 🙂 They have very sensitive respiratory systems, and I wouldn’t take any chances, thus I didn’t want to have any PTFE in the air. It may be reassuring to know, in case you don’t have PTFE spray at hand, that skipping this step didn’t seem to affect the performance of the system.
We can finally put the pieces together – guide the hollow shaft attached to slider and ball screw through the linear bearing installed on the extrusion:
Remember that we didn’t want to tighten the linear bearing bolts before, so that it can be properly seated onto the shaft. We should tighten them now.
We need to remove the “notch” from the motor shaft, as it won’t fit into the couplers we use. It’s easiest to do by grabbing an M3 screw and then driving it onto the notch, until it pushes it away and easily pops out of the shaft:
Now, with a motor mount held in place, rotate the coupling so that you can access its nut on the motor shaft side through the opening in the motor mount. This can be a bit counter-intuitive, especially considering the angle of the hex key, so refer to close-up photos:
Make sure to first attach the motor to the mount and profile, before fully tightening the coupling. While installing the bolts, the motor mount can slightly compress, which would otherwise lead to the coupling getting squished. This may result in loud noises as the 2 parts of coupling rub against each other. Attaching motor first and then tightening the coupling mitigates this risk.
Original SFX instructions (which can be found here), also recommend to remove the motor at this point (remove the screws, pull 2 halves of the coupling apart) to tighten the screw on the coupling for the motor shaft, but I feel like I was able to tighten it sufficiently through the opening in the mount. And I certainly haven’t noticed any slippage.
As I mentioned, I approached the assembly in 2 stages:
- first, I assembled single actuator completely, to make sure I learn about the process and resolve any issues before making costly (from time or financial perspective 😉 ) mistakes,
- then I assembled remaining 3 actuators at the same time, to optimize the process (using the same tools I’m already holding, looking up the same bolts and nuts, ensuring consistency across the build, etc.).
Recap of the assembly process
Here’s a quick recap of the complete process as I outlined above, but this time done for 3 actuators simultaneously.
- Screwing the threaded inserts into profiles:
- Attaching the bump stop and slider onto ball screws (remember to grease the ball screw nuts first: grease gun + grease fittings)
- Attaching fixed bearings onto the ball screws (remember to tighten the nuts to keep bearings in place):
- Screwing fixed bearings onto the 3D printed bearing mounts:
- Attaching linear bearing mounts onto the profiles, and then adding linear bearings:
- Inserting hollow shafts into the 3D printed sliders, then putting the ball screw assembly into the profile and finally tightening the linear bearing bolts:
- Using couplings to attach the motors to ball screw shafts, and then bolting down the motors using 3D printed motor mounts:
- And done!
- Everything almost works, but 1 actuator behaves incorrectly
- This is usually caused by incorrect wiring. Could be a loose ground connection (double-check that first).
- It may also be caused by slippage on the coupling between motor shaft and ball screw – tighten if needed, by accessing it straight through the window in 3D printed motor mount, by raising the rig first, propping with something and then slowly descending to get the screw positioned so that it can be accessed through the opening.
- To debug further, try swapping the pairs of data cables between Arduino and controllers (DB25 cables) – if the problem moves with the swap, it’s the cable, or wiring/soldering of the Arduino/breakout board. If it remains on the same actuator, it’s either the motor or controller.
- One actuator moves in opposite direction to others
- Check connections for the data cable (encoder data) on the controller. Swapping u, v, w connections will result in opposite/unexpected motion.
- Actuators don’t move when game is running
- Is the stop button engaged? Is it wired correctly (should be connected to NC [normally closed] side.
- Is the connection to Arduino correct?
- Is the right COM port set in SimFeedback?
- Is the wiring from Arduino to controllers correct?
- Can you move motors manually using buttons on controllers in Jog mode? (if not, that moves the suspicion from Arduino and emergency button to motors and controllers.
- Steering wheel, mouse, keyboard or some other peripherals lose connection
- This is caused by EMI – can be remedied by adding shielding to motor cables, or swapping those cables altogether with shielded ones (easier to do if you purchased version B of the motors),
- It may also help to add ferrite rings to all the cables, see bill of materials,
- Jog function doesn’t work
- You’re most likely using the motors on 110V. The first time you start them at this voltage, it will trigger an under-voltage alarm. See how to reset the alarm: Powering the motors on 110V and resetting under-voltage alarm
- Loud squeaky noises when actuators are moving
- Motor coupler may be tightened too closely – 2 halves: motor and linear bearing, may be squeezed too much, resulting in both metal parts of the coupler rubbing against each other. This usually starts being audible after few minutes of the motors running. Note that the 3D printer motor mount may compress slightly during assembly, thus do the final tightening of the coupling through the window in motor mount after attaching the motor to actuator.
On to the final part: