Adding motion to the simulator seemed like a really fun thing to do. Commercial systems are hugely expensive but I’d seen a few DIY projects online which looked like they would cost maybe $1 to $2k or about the same as a race weekend. So started thinking about designing my own actuators for a platform similar to the ones used in flight simulators etc. These can control motion with 6 degrees of freedom (6DOF) by allowing the platform to move up & down, left & right, forward & backwards, and also rotate along the axes of those directions too (yaw, pitch & roll).
I got to the stage of ordering servo motors and other parts and then came across opensfx.com which is an open source design for a DIY motion platform using their SFX-100 linear actuators which was ready to build, complete with all hardware and software and they even gave shopping lists for all the bits. It wasn’t quite the full 6DOF platform I was thinking of but it was more compact, much faster to get going and videos I’d seen looked really impressive.
I modified the SFX-100 actuator design to use the motors I had bought and changed several other parts so that more compact, lower cost and more easily available 80mm profile could be used. I’ve now built the full system and have it working well with my sim rig. It pretty much worked first time (see EMI notes below) and was really funny to drive the first few goes with a VR headset. I was surprised at how quiet it is too as the first actuator I built made a fair amount of noise when tested on the bench. I saved about £200 overall on the parts by using the smaller profile and 80ST motors. Motors and all mechanical parts came from one very helpful supplier in China.
In keeping with the open source ethos of the original project I’m making the design freely available. I’ve christened this version SFX-80 for the obvious reason.
Not all 80 x 80mm profiles are the same. There needs to have a 40mm clear diameter down the centre (see drawing below for example) and check the models to ensure that the slider arms fit. I used profile from dold-mechatronik on eBay and you may need to tweak the slider parts if your profile is a bit different. Check supplier drawing/3D model of the profile to make sure the ball nut/sliders/piston assembly etc. will fit. Holes in the profile are also threaded to bolt the top and bottom mount so the holes need to be in the same positions for the assembly.
All the 3D printed parts were printed in generic ABS on Ultimaker 3 using a 0.8mm nozzle and 0.4mm layer height. The parts named ‘slider’ are the parts that fit closely with the profile. The other slider parts are smaller and easily fit in the right profile. Suggest printing one of the sliders at first and checking it fits nicely in the profile. Mine were a little tight in some orientations but rotating through 90 degrees gave a nice fit with hardly any play.
A small piece of 5 x 5mm steel keyway is required to keep the ball nut from rotating in the slider. I sawed a 20mm length and rounded the ends with a bench grinder then gently tapped the keyway into the ball nut slot.
The M5 Allen bolt heads are normally too large and too long for the FK12 bearing mount. I machined these down to less than 8mm and reduced the head length by 1mm. If you don’t have access to lathe then you could use M4 bolts instead.
During assembly some mechanical sympathy is required when tightening up the bolts. The 3D printed parts can be damaged if the bolts are too tight. If you think about where the loads are supported you realise that the motor mount is not taking the weight of the sim rig and the linear bearings have very little sideways loads so these do not have to be ultra tight. I greased the ball screws and applied a little to the sliders as well.
Parts list for one actuator:
- 80ST-M02430 servo motor 220V 750W with AASD controller. Ask for shielded leads to reduce problems with EMI.
- 1605 Ball screw 250mm long machined for FK12 ball screw support. Ball nut is 30mm diameter by 45mm long. Ball nut must not have flange!
- FK12 ball screw support bearing.
- Precision hollow shaft 30mm diameter, 20mm bore, 270mm long with bevelled ends
- LMEK30UU (30*47*68mm) linear bearing
- Coupler 19mm to 10mm. Coupler diameter 40mm by 55mm long.
- Aluminium profile 80×80 section by 190mm long.
- 5 x 5 mm square steel keyway cut into 20mm length for the ball nut
- 27mm ID x 3.5mm cross-section Nitrile O-ring for bump stop
- M6 x 100mm Stainless Allen bolts for motor mount (4 required)
- M5 x 65mm Stainless Allen bolts for internal piston (4 required)
- M8 x 30mm, M8 x 35mm Stainless Allen bolts for top and bottom mounts (4 of each required)
- M6 x 30mm Stainless Allen bolts for linear bearing (4 required)
- M5 x 25mm Stainless Allen bolts for FK12 (4 required) heads need machining down to fit FK12 or could use M4 x 25mm
- M8 Form B Stainless washers (8 required for top and bottom mounts)
- M6 Stainless washers (4 required for linear bearings)
- M5 nyloc nuts and washers for the piston assembly with washers (4 required)
The holes in the profile need to be threaded using an 8mm tap. The top and bottom mounts need threading with 5 and 6mm taps. You’ll have stronger wrists after doing a set of 4 actuators 🙂
Please email us at hello@fastmateracing.com for the files
Electromagnetic Interference (EMI)
I finished everything late one night, started up and the rig lifted up ready to use. Success! This was short lived as I had no steering as the direct drive wheel was suffering from continual USB disconnects. Looking online spotted several posts that were complaining of interference from the servo drives. The servo motors use switched high-voltage supplies and the cables are unscreened 3 metres long and snaking all round my rig and PC. Luckily I had a few ferrite clamps and ferrite rings so fitted these to my USB leads. I also coiled up the servo cables to reduce their loop areas and moved them away from the PC leads. Since doing this I’ve not had any trouble with the wheel but a joystick interface I made for the wheel buttons still seems to be affected.
I understand that using the USB2.0 ports rather than USB3.0 may also help. I wish I had known that screened servo cables are available and strongly advise anyone building a system to buy these.
Well done Jim! What is your name over on the SFX discord? Mine is Flag Ghost.
Jim, Why did you reverse the linear bearing in your build? Was it to shorten the required length of the profile?
If I wanted to modify your design to accomodate a 200mm stroke I assume I would simply need to extend the profile length and the screw length. Would I simply add 100mm to each?
Jim, let me know if this isn’t your chosen place for questions. Any chance of converting those stp files to stl’s? My software certainly won’t handle the stp files.
Hi Chris, will email you the STLs. Yes, you could extend by adding equal lengths to the ball screw and profile. The linear bearing is too big to fit into the profile so reversed it to save machining. My discord name is JimIrlam but I’ve not joined SFX channel just yet.
Thanks very much Jim
Hi jim how do you change the STL files i have just sent for the files but came as STP and will not open in cura
thanks nigel
Hi Nigel, you’ll need to use CAD software to load the STP files and generate STL
Hello!
Should I change something in the firmware for Ardruino? What about 80ST motor parameters?
And another question, could you provide a project to create sfx-80? STL or STP files of the entire project.
Did you have any problems using the SFX-80 during this time?
The 80ST motor has same spec so no changes required and we do provide the STP files already. Had EMI issues as already posted but it’s working fine
Hi Jim,
Where did you buy the coupler 10/19?
Thanks and greetings
Jens