1. 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!
  2. 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
  3. 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

2 DOF motion rig using 4 wiper motors & Arduino

Discussion in 'DIY Motion Simulator Projects' started by Captain Jack, Nov 20, 2021.

  1. Captain Jack

    Captain Jack New Member

    Joined:
    Nov 20, 2021
    Messages:
    7
    Balance:
    111Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Hi,

    I'll detail my setup below. Let's start with the frame:

    Frame is based on an off-the-shelf play seat (light & foldable) + a DIY frame built to support motion. I don't have a welder so had to drill a ton of holes and assemble the frame. Somehow, all holes ended up fitting, which is a small miracle in itself.

    Steel used to make the frame (already cut to size):
    IMG_3043.jpg

    Parts were painted using a can of black automotive primer:
    IMG_3042.jpg

    The universal joint that supports the frame was screwed into two steel plates and then welded to prevent it from twisting:
    IMG_3080.jpg


    This is the rear beam that has mounting points for the ball joints to connect to motors - painted & assembled in the photo. The right-angle brackets are held with two screws each - only one visible in the photo as the other one will be added later as it screws into another piece of frame:
    IMG_3089.jpg

    Frame assembly continues:
    IMG_3086.jpg

    Mostly finished frame below - this attaches to the original playseat frame
    IMG_3128.jpg

    Attaching the DIY frame to the playseat frame:
    IMG_3132.jpg

    Universal joint location shown below:
    IMG_3134.jpg

    Standing on its own rubber feet!
    IMG_3136.jpg

    Finished frame below (still no motors though):
    IMG_3137.jpg

    Lessons learnt when making a frame:
    - I've used a universal joint from aliexpress to support the frame. While it is strong enough, it doesn't prevent the frame from twisting well enough - will need to add a support to prevent this as the frame tends to wobble side to side too much for my liking.
    - If your frame is assembled with bolts like mine and not welded, drill the holes slightly bigger for a better chance of the parts fitting together during assembly. I used 10mm holes to fit M8 bolts
    - Rubber pads are much better than felt pads under the frame in preventing the frame from sliding on the floor. Not a big deal at all for a weak 2 DOF wiper rig like mine, but if yoiu have a powerful sim with high angles of deflection, rubber holds almost like glue.
    - I've painted the steel frame with a black automotive primer. It took 3 layers for a very clean look. It looks as good as a factory finish. I obviously had the steel prepared but it was straightfoward. Note that the primer is not as durable as if the frame was painted but it's good enough, looks excellent and very straightforward to apply - 3 layers and you are good to go. Takes 10 minutes between layers to dry.

    More photos coming soon
    • Like Like x 1
    • Winner Winner x 1
    Last edited: Nov 20, 2021
  2. Ads Master

    Ads Master

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
  3. Captain Jack

    Captain Jack New Member

    Joined:
    Nov 20, 2021
    Messages:
    7
    Balance:
    111Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Now, onto the motors, which is what makes this build slightly different than others.

    I didn't want to spend big money on industrial worm gear motors and decided to use wiper motors as I could get new ones for equivalent of 20$ each. Because this build is not a seat shaker but a full moving frame, I decided to go with 4 wipers motors to have enough power. 2 motors will work in parallel on each axis (this is a 2 DOF rig).

    I bought four 12V motors meant for a Fiat Ducato delivery truck. I've no idea if they are stronger than typical passenger car wiper motors but that was my assumption - delivery truck is bigger...

    To make motor mounts, I used 3D printed parts. 3D printing is one of my hobbies. I used regular PLA for all 3D-printed parts (20$ for 1kg of plastic). Most parts were printed with 50% infill with the exception of the motor arms, which I printed with 100% infill for extra strength.

    This is what the motor mount and motor arm look like (arm length from axis to the 8mm hole is 65mm):
    IMG_3163.jpg

    Please note that most wiper motors need to be ground-isolated. I didn't want to do it so I looked for motors that didn't have ground wired together with the metal gear casing. If you google "fiat ducato wiper motor", you will see that the motors I used have wires coming directly out of the motor. If you unplug those wires from the PCB, these motors don't need ground isolation!

    The motors will be powered by a 750W server power supply. I've read some posts on the forum earlier that these server power supplies have built-in over-current and voltage protections that can trigger shutdowns when running electric motors.

    To mitigate this, I used a bridge rectifier hooked up in a way to prevent reverse voltage from the motors (when they are freewheeling) from reaching the power supply. The downside of this solution is that you lose 0.7V from the voltage reaching the motors, which means slightly less power available and the bridge rectifier may get hot (due to it dissipating the energy from the 0.7V voltage drop). I had it mounted directly to the steel frame so heat is not an issue.

    For extra safety against the power supply shutting down, I also added a big 35V 22000uF capacitor to the circuit before the bridge rectifier to support current spikes.

    Partially complete wiring loom shown below. I used a long wire for the bridge rectifier as it is mounted to the steel frame directly - the frame acts as a radiator. You can also see the capacitor and a 30A automotive fuse.

    IMG_3153.jpg
    • Like Like x 2
    Last edited: Nov 20, 2021
  4. Captain Jack

    Captain Jack New Member

    Joined:
    Nov 20, 2021
    Messages:
    7
    Balance:
    111Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Let's talk about the electronics now, which consist of an Arduino Uno and two IBT-2 motor drivers.

    I've mounted everything in a project box for a tidy installation. I underestimated the amount of wiring needed though. Everything ended up fitting but it's a tight fit.

    Arduinos are attached with hot glue:
    IMG_2725.JPG

    As you can see, there are 2 Arduinos. You only need one for the motion sim to run SimTools. The second one is to manage bass shakers, vibration motors and fans that simulate wind. If you look in the previous photos, you will see the bass shaker under the seat and the fans above the steering wheel. This second Arduino runs a sketch that connects to SimHub, which is a separate piece of software that runs in the background when you play a game.

    Here's a close up of the bass shaker and one of the vibration motors under the seat. I used a flexible cutting board from Ikea to mount everything - it worked out great. You can't feel there's anything under the seat.
    IMG_2754.JPG

    In total, there are 5 vibration motors:
    - one under the seat
    - one in the seat back
    - two under the pedals
    - one attached to the brake pedal to simulate ABS

    Another vibration motor seen here:
    IMG_2758.JPG

    There are also 3 bass shakers (100W + 2x 15W) - one big one under the seat and two small ones attached with double-sided tape near the pedals.

    The front of the electronics box has switches to control various functions. The 750W server power supply is attached with double-sided tape to the case. The other black part is a powered USB Hub (I'm using 3 USB connections so far - steering wheel + 2x Arduino, may add a HOTAS in the future).
    IMG_2726.JPG

    The switches are wired as follows:
    1 Blue - 220v mains power
    2 Blue - 220v for the steering wheel
    1 Red - Motion
    1 Red - Fans
    1 Red - Vibration

    Please note that I used a 40A automotive relay to power the motion motors, the switch only turns on the relay.

    Nearly completed electronics below, which are starting to look like a spaghetti monster:
    IMG_3157.jpg

    Most of the wiring coming out of the back is to power the vibrations motors and fans. Note that there is a 30mm fan pulling in air in the back of the case - this is to provide airflow through the case.

    The IBT-2 motor drivers are not yet mounted at this stage in the photo - they will go outside the box and have an additional fan for cooling.

    Fully completed electronics mounted under the seat in the photo below. Note the green 30A fuse for the motion motors.
    IMG_3225.jpg

    IBT-2 drivers attached to the bottom of the case and the fan that has a 3D-printed shroud to cool both of the motor drivers:
    IMG_3227.jpg

    Lessons learnt:
    - Use a big project box, the wiring can grow in volume very quickly and it's easier to add components in the future if you have spare room.
    - I've had no issues using a USB Hub at all (it's a good quality USB Hub powered by 12V straight from the server PSU)
    - If you haven't heard about it before, you can use isopropyl alcohol to remove hot glue very easily. You need a few drops and it comes off immediately - check out this link:
    - I think it's a good idea to secure lose connections with hot glue inside the electronics box so that they don't work lose when you play.
    - Bass shaker under the seat is awesome to simulate kerb impacts however I didn't like the gear change effect as it felt to me like driving a car with a broken transmission that slams hard into gears. I'll try to use seat motion to simulate gear changes.
    - Small bass shakers near the pedals are not that noticable for impacts or road texture as they don't transimit such low frequencies that well but they are awesome for simulating engine RPM and load - you can feel the vibration note change as you go through the rev range and when changing gears. SimHub also does a great job of simulating engine load - you can feel the chasis vibrate the more you press on the gas. It's very realistic.
    - Fans are great for F1 and open cockpit cars. I've got about 120W of power in fans - they are all server fans. Regular PC fans are much too weak. The top one is a dual-motor coaxial Delta fan pulling 70W alone. Please note that headphones are a must as they are quite loud.
    - Vibtration motors simulate speed - the faster you go, the more they vibrate. The effect is nice, it's not useful to make your laps faster but it adds to immersion and feeling of danger whey you are going 200km/h.
    • Like Like x 2
  5. Captain Jack

    Captain Jack New Member

    Joined:
    Nov 20, 2021
    Messages:
    7
    Balance:
    111Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    As the title of the thread suggests, this 2 DOF sim uses 4 wiper motors.

    Here's the motor configuration:
    IMG_3209.jpg

    Close-up of the motors (the bolt was there temporarily for testing):
    IMG_3211.jpg

    There's a couple things that I learned about wiper motors:

    - First of all, they have three wires and combinations of wires give you different speeds. Black+Blue is the slowest, Red+Blue is the fastest on my motors, which is how I wired them.

    - Wiper motors are faster in one direction (the direction they normally operate in). I measured 4.5A no load in one direction and 3.5A in the other.

    The way I have the motors set up is that the motors run together. Because they are on opposite sides, one pulls harder in one direction while the other pulls harder in the other. As a pair, they will have the same force in both directions. With just one wiper motor per axis, you'd have to live with the speed/force mismatch.

    Don't the motors interfere with each other having slightly different speeds? - Not at all actually.

    I tested this earlier on the bench by coupling the axes of the motors together and running them while holding the motors. One did pull harder but it's not something that will cause any issues as I could easily rotate their position against each other by hand while they were both running.

    To sum up, no motor interference and probably a more optimal setup having the same force in both directions - will see once the sim is tuned.

    The position of the motors is monitored by a Hall sensor. I didn't have enough room with this motor setup to use a rotary Hall sensor, so I used a regular one and 3D printed the housing myself.

    The hall sensor sits stationary in line with the motor shaft and two magnets are rotating around it:
    IMG_3212.jpg

    The Hall sensor I used is a Honeywell ss495a. Magnets are D8x4mm.

    I got the idea for the Hall sensor here:
    https://www.xsimulator.net/communit...igh-precision-potentiometers-cheap-hall.7433/

    And here are the pushrods and ball links added (length of the pushrod from ball to ball is 26cm):
    IMG_3220.jpg

    First time standing on its own:
    IMG_3222.jpg

    I still need to address the side-to-side wobble resulting from the universal joint being the only thing preventing the platform from twisting. Using a larger universal joint would probably solve it, so I suggest going for a big one with your builds.

    I will 3D print a bracket to prevent any twisting - need to pick up some bearings tomorrow.
    • Like Like x 1
  6. Captain Jack

    Captain Jack New Member

    Joined:
    Nov 20, 2021
    Messages:
    7
    Balance:
    111Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Anti-rotation bracket now added. It's basically a pair of 22mm bearings rolling inside a 22.5mm guide. The guide allows for pitch and roll motion but stops any unwanted yaw. It feels very solid

    Roll is possible because the bearings are positioned in line with the universal joint axis (not sure how to explain it - you can see the position of the bearings vs the universal joint in the first photo).

    IMG_3239.jpg

    IMG_3238.jpg

    I've also had my first run in Live for Speed today to see if the sim work at all and it does!

    I will need to spend some time tweaking the settings though. Without any smoothing filter in SimTools the gear changes were a bit jerky. I'm now thinking of adding some dampers to the rig (maybe from a moped?).

    I'll do some more testing before I buy any more parts.
    • Like Like x 1
  7. herve069

    herve069 Simracer

    Joined:
    Mar 25, 2021
    Messages:
    29
    Occupation:
    workshop instructor
    Location:
    France
    Balance:
    - 56Coins
    Ratings:
    +19 / 0 / -0
    My Motion Simulator:
    2DOF
    Great job!! Any video about first tests?