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

Showroom My 3 DOF motion-enhanced G-Seat

Discussion in 'DIY Motion Simulator Projects' started by MarkusB, Jun 28, 2020.

  1. MarkusB

    MarkusB Well-Known Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    552
    Location:
    Germany
    Balance:
    4,212Coins
    Ratings:
    +594 / 2 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    At last: Almost 8 months after disassembling my second rig, I have finally finished my third one:
    000 Rig 01.jpg 000 Rig 02.jpg 000 Rig 03.jpg 000 Rig 04.jpg

    My first two rigs were 2 DOF motion platforms that I documented in my first and second build thread.

    Now I wanted to add ‚heave‘ as third DOF and also change the overall concept compared to my previous builds: While rig #1 and #2 were mainly motion platforms with some G-Seat add-ons, my current build is more a G-Seat with integrated motion.

    The seat motion (roll, pitch, heave) is meant for letting the body move into the same direction into which it would also move in a real vehicle. The G-Seat components are meant for applying additional pressure to certain body parts in order to increase the sensation of the force(s).

    In this way I am following the approach of Bergison with his Motion Integrated G-Seat:
    https://bergisons.simpit.info/motion-integrated-g-seat

    My rig is driven by six second-hand wheelchair motors that are controlled with Arduino/Sabertooth 2x32 combinations and the famous SPS motor driver sketch, formally known as SMC3-SPS.

    001 Motors.jpg

    Since most of my thoughts went into the ‚heave‘ component, let’s start with this part.

    My heave system creates five different sensations of the heave force, which are illustrated in the sketch below. (Since I never learnt to use any CAD software, I drew the sketch on this ancient stuff that the older ones among us may know as ‚paper‘.)

    002 Sketch.jpg

    Here is an explanation of the heave sensations:

    Positive heave force (in real vehicles increasing the sensed weight of the body):
    (1) The G-Seat paddles on the seat base increase pressure to the thighs from below.
    (2) The entire seat moves down, so that the knee and ellbow joints bend a little bit, because the foot rest as well as the HOTAS are fixed and don’t move together with the seat. This shall increase the sensation of the body sinking into the seat.
    (5) The backrest moves into the opposite direction as the seat (i.e. upwards), causing friction against the back of the body and in this way again simulating the sinking into the seat.​

    Negative heave force (in real vehicles reducing the sensed weight of the body):
    (1) The G-Seat paddles on the seat base reduce their pressure on the thighs.
    (2) The knee and ellbow joints bend into the other direction as with positive heave force.
    (3) An additional inner shoulder harness applies pressure on the shoulders from above, as if the body would be lifted upwards due to its reduced weight.
    (4) The harness belt around the thighs applies pressure from above, causing the same effect as (3).
    (5) The backrest again moves opposite to the seat, causing friction at the back of the body. This time into the downwards direction, as if the body is lifted upwards out of the seat.​

    So far about the concept. Now I will come to their implementation.

    The seat is mounted on a u-joint, which sits on top of a heave assist block shown in the pictures below.

    003 Heave Assist 01.jpg 004 Hreave Assist 02.jpg 005 Heave Assist 03.jpg

    This purpose of this block is to stabilize the heave movement and to unburden the motors via a spring. (The pictures still show 2 springs, but at the end I only put one inside.) Thanks to @Tim McGuire from whom I took the idea of this heave assist block. Tim's construction is much more sophisticated than mine, because it allows to configure the spring pressure on the fly, while I would have to disassemble most of my rig. Besides it is much more elegant in design.

    As shown in the picture below, the heave assist block also has connection points for two bowden cables (1). Their counter parts are on the backrest paddles (2) and cause them to slide up and down in the opposite direction as the seat. That means, when the seat moves upwards, the backrest paddles move downwards, and vice versa.

    006 Heave Assist with bowden connectors.jpg

    So in fact, the backrest paddles only move relative to the seat, while their ‚absolute‘ position remains fix. (See the video at the end of this post, starting at timepoint 01:00 minutes).

    I have already explained the purpose of this movement with the sketch above.

    The next picture shows the heave assist block integrated into the rig:

    007 Heave Assist integrated.jpg

    Here are some pictures of the backrest paddle construction. The slider rails are actually meant for drawers. I got them from the local DIY market.

    008 Backrest paddles in parts.jpg 009 Backrest paddles in two halfs.jpg 010 Backrest paddles in two halfs.jpg 011 Backrest paddles assembled.jpg

    The backrest itself is the most complicated part of the rig, and with around 16 kg also a quite heavy one. Here is an overview picture:

    012 Backrest overview.jpg

    The forward/backward movement of the backrest paddles is done via bowden cables. Credit to @SeatTime for introducing them in this forum years ago.

    013 Backrest bowden cables 01.jpg

    The same bowden cable approach is used for the up/down movement of the paddes (already explained above) and the harness tensioner.

    014 Backrest bowden cables 02.jpg

    The paddles on the seat base don’t have their own motors. Instead they are connected with steel rods to the base of the rig. In this way, they ‚automatically‘ move up/down when the 3DOF motors perform heave or roll movements. This movement also tensions/losens the seat belt around the thighs.

    015 Base paddle connectors.jpg

    I have added a safety circuit, consisting of one little safety switch per motor. If a motor moves out of its intended range, the switch is triggered and immediately shuts down the power. I will go into more detail in a next post.

    016 Safety switch.jpg

    The backrest and seat base have a foam cover that is mounted with velcro straps.

    020 Foam covers.jpg

    And to fulfill at least the minimal set of WAF requirements, the backrest can be folded down, so that the rig can be easily stored in a corner of the room.

    021 WAF.jpg

    As mentioned above, I will add more details in upcoming posts. Then I will also open up the covers and show the intestines of my build.

    Now I would like to conclude with a little demonstration video. Have fun.

    • Like Like x 12
    • Winner Winner x 8
  2. EduardoMoreira

    EduardoMoreira Member

    Joined:
    Jul 5, 2016
    Messages:
    31
    Balance:
    113Coins
    Ratings:
    +20 / 1 / -0
    My Motion Simulator:
    AC motor, Arduino, Motion platform, 4DOF
    Insane work man. Very good. Congratulations
    • Like Like x 1
  3. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    Mighty impressive mate!

    Im going down the same rabbit hole as you these days and ill be doing a f16 Ejection seat with 6 motors for the various things.
  4. MarkusB

    MarkusB Well-Known Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    552
    Location:
    Germany
    Balance:
    4,212Coins
    Ratings:
    +594 / 2 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
  5. MarkusB

    MarkusB Well-Known Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    552
    Location:
    Germany
    Balance:
    4,212Coins
    Ratings:
    +594 / 2 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    My Safety Circuit

    With my last rig it happened two or three times that one of the motors moved outside of its intended range. Once this caused some damage, and another time I strapped my fingers in a bowden cable loop during an early test run in which I had to tighten the cable with my hand.

    For this reason I have now added a safety circuit that shuts down the main power as soon as one of the six wheelchair motors moves farther than intended.

    Here is how this circuit works:

    I added a micro switch to each of the motors as shown in the picture below.
    001 Safety Switches.jpg

    The three main motors lifting/tilting the seat have the switches directly at their gear box axis (see #1 in the picture).
    The other motors, which are responsible for moving the backrest paddles and the harness tensioner, have their switches at the backrest (see #2 and #3 in the picture).

    The state (closed/open) of the six switches is permanently read by an Arduino Mega. (An Uno would also have done the job, but I only had a Mega lying around.)
    The 'closed' state means that everything is fine, while the 'open' state tells the Arduino that a motor has rotated too far.

    As soon as one switch is in 'open' state, the Arduino shuts down the main power, which is provided by two 12V PSUs connected in series. This shutdown is done via two relais.

    Besides, the Arduino permanently shows me the states of all switches via six green and one red LED:
    If a green LED is on, the corresponding switch is in closed state. As soon as the switch changes to 'open', the corresponding LED turns off. In this way, I immediately know which motor causes the problem.
    At the same time as one switch changes to 'open', the red warning LED turn on.

    The main power remains 'off' until all switches are closed again AND I have pressed the 'restart' button. (Pressing the 'restart' button while a switch is still open won't turn on the power.)

    The picture below shows the components of the safety circuit:
    002 Safety Circuit.jpg
    • (1) Arduino Mega
    • (2) relais card (only two of the four relais are used)
    • (3) six status LEDs, one for each motor
    • (4) red warning LED
    • (5) restart button for re-powering the rig
    • (6) shielded cable going to the switches
    Here is what the status monitor looks like in normal condition and in case that Motor II is out of its movement range:
    003 Status Monitor.jpg
    • Informative Informative x 2
    • Like Like x 1
    • Winner Winner x 1
  6. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    A couple of questions.

    The paddles. Did you have these CNC cut? What is the thickness?
    The padding, is that a Yoga mat?
  7. MarkusB

    MarkusB Well-Known Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    552
    Location:
    Germany
    Balance:
    4,212Coins
    Ratings:
    +594 / 2 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    The main parts of the paddles have a thickness of 6 mm. It is a very rigid, water-resistent, synthetic material. In the DIY market it was labeled "Baumehrzweckplatte". The English term would be something like "Multi-purpose construction plate".
    The black side parts of the paddles are made of Aluminium with a thickness of 1.5 mm.

    My set of tools is very limited, so that I don't have access to a CNC machine. Even my print-outs are limited to 2D on good old paper.

    I cut the parts with this saw:
    IMG_7895.JPG IMG_7896.JPG

    Yes, correct.
    • Like Like x 2
  8. RacingMat

    RacingMat Well-Known Member Gold Contributor

    Joined:
    Feb 22, 2013
    Messages:
    2,234
    Location:
    Marseille - FRANCE
    Balance:
    20,890Coins
    Ratings:
    +2,083 / 21 / -2
    My Motion Simulator:
    2DOF, DC motor, Arduino
    incredible built with these combined movements! I really wish I could seat down in it and feel how it behaves :)
    and sooooo quiet! (my RCservos are too noisy)
    • Agree Agree x 1
  9. MarkusB

    MarkusB Well-Known Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    552
    Location:
    Germany
    Balance:
    4,212Coins
    Ratings:
    +594 / 2 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Thank you, @RacingMat!

    I am quite satisfied with how the heave force feels in my rig, although it definitely cannot compete with "real" heave. I just made one more change to my rig, which was converting it from a seat mover into a full frame rig. For achieving this, I mounted the rudder pedals to the moving part of the seat. The following pictures show the pedals before and after this modification.
    SeatMover.jpg FullFrame.jpg
    The reason for this was that I don't like to feel my knee joints bend when the seat moves.

    Now especially positive heave forces feel good in a sense that I get the impression to be pressed into the seat.
    Negative heave forces are not so convincing. The seat paddles are reducing their pressure, the backrest moves down (relative to the seat), and the thigh belt tightens. However, it still does not feel like my body is lifted upwards. In the meantime I think that this can only be achieved by a rapid downward acceleration of the seat, which is what happens in real life. But in a simulator this cannot be a sustained force, because the downward movement is limited by the length of your actuators.
    I know that @SeatTime is currently working on this approach by using rather long actuators, and I am looking forward to seeing the results.
    • Like Like x 2