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

3DoF G-Seat, All metal

Discussion in 'DIY Motion Simulator Projects' started by Gefahren, Jun 16, 2024.

  1. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    This will be my second G-Seat build. The build thread for the first one is Here.

    I learned a lot from the first build. First off was to design BEFORE I build. Trying to do it the other way around caused me a great deal of headaches.

    This time I wanted to try and make it more compact, plus not rely on my poor wood and metal working skills.
    So, I modeled it up in Alibre CAD and had all the metal parts laser cut and bent from OSHcut. I only mention their name because I was very happy with their price, speed and the quality of the parts.

    Now I've had a few people ask me to explain how the seat is supposed to work, and I figured I'd take a moment to try explaining it here. Now, I am no expert on anything at all, so if I say something wrong then someone, please correct me. I'll start the build pictures and such in my next post after this.

    This motion seat has three degrees of freedom which means it has three different motions that it can do. Those motions are Pitch (tilt forward and backwards), Roll (tilt side to side) and Heave (move up and down) as illustrated here. Pitch.png Roll.png Heave.png

    The seat is supposed to provide false cues to your body that it is under an acceleration (G force) in some direction. To accomplish that, the seat has movable 'flaps' on the seat bottom and back
    Flaps.png along with a 5-point harness that changes tension as the seat moves.

    The three accelerations we want the seat to make us 'feel' are Surge, Sway and Heave.

    Surge is an acceleration forward or backwards. To simulate that the seat uses its pitching motion. For example, a positive Surge, like if you are accelerating in a car, or launching from an aircraft carrier catapult, would make the seat pitch up (tilt back). This would cause several things to occur. The flaps on the seat back would fold inwards, the shoulder harness would loosen up, your head would bump into the head rest, and you would be farther away from the physical controls (steering wheel, flight stick, etc.). All of that would provide false cues to your body. The flaps and shoulder harness would make it feel like you've sunk into the seat cushion. Your head hitting the head rest and your viewpoint (in VR) moving back would make it feel like your head was being pushed back. The controls being farther away would make you have to reach out to them, which provides the false cue of having to hold your arms out against the acceleration.

    Sway is an acceleration side to side. The seat uses its rolling motion for that. The effect is achieved very similarly to the way Surge is done. However, this time the parts of the seat are actuating differentially. That is, they are moving in opposite ways. The flaps on one side of the chair will fold in while the opposite side will flatten out. The harness will tighten up on one side, while loosening on the other. Your viewpoint will shift to one side along with the physical controls. This provides the false cues that you are being pushed to one side, like if you take a sharp turn in a car.

    Heave is an acceleration up or down. The seat uses its heave motion for this (go figure). For positive heave, the seat moves down which causes the flaps to fold inwards, the harness (lap and shoulder) to loosen up, your viewpoint to shift down and the physical controls to be higher. Opposite all of that for a negative heave. These provide the false cues as if your being pulled up or pushed down like if you go over the top of a hill or through a loop on a roller coaster.

    One thing that is nice about G-seats is that they can sustain those false cues for as long as you want such as if you fly a plane inverted or roll your car onto its side.

    Well, that is it for my very wordy late-night explanation of what the seat does and how it does it. Now on to some actual work on the new seat.
    • Like Like x 3
  2. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    A good place to start is at the bottom and work your way up. So here is the bottom plate of the new G-seat, the Mk3. (don't worry about what happened to the Mk2...) For this build I designed everything out of 3/16" (4.7625mm) aluminum. Then I used all metric measurements and hardware after that. I had originally planned for 4mm aluminum and 1/4" hardware. I like to mix it up like that.
    PXL_20240612_000204390.jpg
    To this we need to attach some feet.
    PXL_20240612_004036436.jpg
    I got tired of moving the old seat around. It wasn't because it was heavy, but because it was awkward to pick up. I usually got one of my children to help me. The reason I just didn't leave it in front of my computer is because my desk height didn't match up well. The new seat addresses both those problems.
    PXL_20240612_005742741.jpg
    I put wheels in each foot. I will sit on the rubber pads normally, but I can pick up on one side of the seat to tilt it up onto a wheel and move it around like a wheelbarrow. I originally printed all four feet the same, but then realized that if I make the one on the back wider and put at least two wheels on it I can tilt the seat back and move it like a hand truck for even easier moving if I need to go more than a few feet. The wheel will be attached with a Clevis pin, but Amazon has decided to delay my package for over a week. They will be easy to install whenever they do arrive.

    PXL_20240612_005809798.jpg doesn't look much different with the feet from this side.

    Next, I need to put all the stuff underneath the base plate because it is going to start getting heavy.
    So, just like on my previous seat the power supplies live on the bottom. I am using the same supplies from my previous build, Meanwell LRS-350N2-24.
    PXL_20240613_033613492.jpg PXL_20240613_034039117.jpg

    And to finish this post off I started attaching the motors/gearboxes. This time I'm attaching the motors directly to the baseplate whereas before I had the Angle Iron braces that they were attached to. To keep things from flexing there is another plate that attached to the top of the gearboxes to make a sandwich structure, but we will get to that later. Also, some more detail on the gearbox mounts in the next post.
    PXL_20240613_042439735.jpg
    • Like Like x 3
    • Informative Informative x 1
  3. hcee2022

    hcee2022 Member

    Joined:
    Feb 13, 2022
    Messages:
    34
    Location:
    Finland
    Balance:
    194Coins
    Ratings:
    +45 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    This will be epic. Keep up the good work!

    How do you like the motors and gearboxes? Is the movement fluid or jerky? My Alibaba worm gears have some play/backlash that makes my rig miss some small/fine movements.
  4. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    One of the worm gears is a no name from Amazon while the other two are from StepperOnline. They all have some backlash. (spec'd at 1° on the StepperOnline ones) The more expensive one from Amazon makes a clicking noise when unloaded. So far, I've not noticed during normal flight it since they are loaded by the weight of the seat and myself.

    I had looked at the same type of wormgear/motor that you have on your setup but after shipping was added in it was cheaper for me to get Ampflow motors from Amazon and the gearboxes from StepperOnline. I've been very happy with the performance so far.

    As far as jerky movement I've found that I need to keep the PID values for the motor drivers lower than the recommended starting points in SMC3. It appears like the motor was able to drive the axis close to the desired setpoint before SMC3 received the next update from Simtools more or less. So, it was constantly accelerating and decelerating the axis during movement. At first, I thought I was feeling the meshing of the teeth on the worm drive but adjusting the PID values lower smoothed it out.
    • Like Like x 1
  5. hcee2022

    hcee2022 Member

    Joined:
    Feb 13, 2022
    Messages:
    34
    Location:
    Finland
    Balance:
    194Coins
    Ratings:
    +45 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Thanks for the detailed answer, good to know. Could you please also post a screenshot some time of your SMC3 settings and tracking graph in the SMC3 motion mode.
  6. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    Since I've disassembled everything to transfer the motors and such over to the new build it will take me a moment. I'll have to retune things because of the difference in crank arm length and some geometry, along with the weight difference. As soon as I've got something workable I'll post some pictures of that.

    With that being said I have an Uno R4 Minima sitting on my desk and I've started writing firmware for it to replace my Uno R3 and SMC3. More on that later when I'm farther along with it.

    Well, I'm about to get out of town and won't make any progress for a few days, but I've been randomly putting different parts together to check the various assemblies. Also, I've been printing the various other parts I'll need. I did want to assembly everything in order from the ground up as if this was a kit, but I'm too impatient for that.
    So, here's a few more pictures.
    PXL_20240617_035059536.jpg PXL_20240617_035121464.jpg
    This is the moving platform that the seat is on. It's kind of hard to tell how it fits into everything, but it'll make more sense when I put the rest of it together and get some good pictures.

    PXL_20240617_034815942.jpg
    This is the headrest and shoulder harness support frame. Also, it will be a good thing to grab on to tilt the whole seat back and move it around like a hand truck.

    PXL_20240616_074222814.jpg PXL_20240616_074300906.jpg PXL_20240616_074313025.jpg
    This is the part that attaches the seat platform to the crank arms on the gearboxes. I used the same M14 rod ends from my last seat. I only picked that size because it had a higher maximum angle it could go to. Other than that, it is much larger than needed for the small stresses I'm putting on it.

    PXL_20240617_034548917.jpg PXL_20240617_034624933.jpg
    Here's the new motor control box next to one from my first seat. The small 40mm fans in the old ones were very noisy so I switched to an 80mm fan in the new one. Much quieter and more airflow. I also replaced the small bar graph voltmeter on the old ones with a digital meter. Also, for no really good reason I mounted them on the inside so you can see them by looking through the fan.

    When I get back from my Vacation, I'll be working on attaching the position sensors to the gearboxes. I like the way I've come up with for this much better than what I had previously.
    • Like Like x 2
  7. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    Well, I made it back from Vacation so I can get back to this build (and my day job...sigh).
    I put together my position sensors and forgot to take any pictures so here's an exploded view from my CAD software.
    upload_2024-6-23_23-29-35.png PXL_20240624_043357013.jpg
    They are the same magnetic sensors I used on my previous build, but I redid the housing so that they would have double ball bearings supporting them. This was to eliminate all the wobble that they had from using a single cheap skateboard bearing. While I was at it, I integrated the mounting flange on them and made a single piece shaft for them.

    On the old seat I wasn't happy with where the sensors were mounted.
    They were on the outside end of the gearboxes which made them vulnerable to getting caught on something if I were moving the seat or hitting my leg on them as I moved around the seat.
    PXL_20240612_231507570.jpg
    Also, the old gears I had printed worked ok, but I didn't like the ratio I had.
    PXL_20240123_065222134.jpg

    To fix these issues I moved the sensor to be underneath the gearbox and changed from gear teeth to a string driven pully system. With this not only is the sensor safe from things hitting it, but I have a gear ratio of 102.4:360. That gives me a resolution of 0.1° on the position sensor over the 90° travel of the crank arm. My old setup only had a resolution of ~0.176° (which coincidentally is the alt code for the degree symbol Alt+0176).
    PXL_20240624_031600628.jpg PXL_20240624_031547731.jpg PXL_20240624_031632949.jpg
    I'm using some Spiderwire fishing line for the string. It's rated at 65lb test so it should hold up to this.
    There is a hole through the middle of the sensor pulley, then the wire is wrapped a few times around it in each direction before going up to the large pulley. The small spools at the top have some holes through them that the spiderwire is looped through before being tied off and glued. Then it is wrapped around them. They have radial notches in the bottom of them that lock into matching features on the large pulley to keep them from turning, then the M4 screws hold them in place. All together there is about 42" of wire wrapped up on it all.

    I have access to the wires on the sensor from the opposite side of the gearbox. I covered that with a simple blanking plate. I can also reverse which side the sensor is on if I ever wanted to. The wires for it run out under the motor towards the center of the seat. I've not had any noise issues on my old setup which routed the wires in a similar way.
    PXL_20240624_034327291.jpg

    With the sensor in place, I can mount the crank arms. Originally, I was going to get the crank arms machined out of 12mm aluminum but instead I had them lasered out of the same 3/16" plate as the rest of the seat. This just meant that they need to be layered up to hold the bearings and for strength.
    PXL_20240624_033443959.jpg PXL_20240624_033840695.jpg PXL_20240624_034119051.jpg
    The big fender washer is for an M12 bolt, so I just printed a small spacer to keep it centered on the M6 bolt.
    The crank arm on the opposite side of the gearbox is the same, only the printed spacer is different since it doesn't have the large pulley on that side.
    • Like Like x 1
    • Winner Winner x 1
  8. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    I have been able to make some more progress.

    I wired up the motor control boxes and sensors using all the wiring from the old seat. All but one wire is much longer than needed so I'll have to go back and clean all of it up later, but I wanted to check if everything was working still. I got lucky in that when I eliminated the gears and went with the string pulleys it reversed the direction of the sensors. This would have caused the motors to have run off in the wrong direction unless I swapped the wires on them (I hadn't). However, because I also swapped which side of the gearbox the sensor was on, it changed the direction back to what it needed to be. I didn't think of all that until after I had powered it up and tried moving the motors.
    PXL_20240626_051434654.jpg PXL_20240626_051422390.jpg
    I will go back and shorten and bundle those wires properly.

    Next, I attached the support arms that go up to the seat.
    PXL_20240627_013641516.jpg

    Now, I'm sure someone has noticed that with the motors and gearboxes bolted to a piece of sheet metal that the whole thing would flex in use. On the original I had the pieces of angle iron to stiffen everything up and my first design for this one had something similar out of aluminum. Then I started adding bracing to strengthen the headrest support which also has the shoulder harness pulling on it. Somewhere along the way I realized that if I make it more of a sandwich design it would be stiffer, and simpler. So, I made a large plate that attaches to the top of the three gearboxes tying them together. This also provides a good place to attach the connecting rods that move the seat flaps and some optional fans to cool the motors if I find them necessary.
    PXL_20240627_022008741.jpg

    and one more photo to give it that dramatic throne look.
    PXL_20240627_022044391.jpg

    Next up is putting the 'platform' and seating surface together.
    • Like Like x 2
  9. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    Well, I've gotten some more done.

    I however didn't do a good job of taking pictures like I should have so there will be some gaps.

    I put the platform together but had to wait a moment to attach the seat to it while the wedges that go under it printed out.
    PXL_20240627_035303182.jpg PXL_20240627_035315265.jpg PXL_20240627_041252419.jpg PXL_20240627_041304328.jpg
    I made it a sandwich structure for this also. Btw, the axis for pitch and roll intersects right in the middle of the hole thru the platform in between the two plates.

    Next, the headrest was attached. It has several mounting holes so it can be moved forward or backward. I probably should have put some to move it up or down also, but it seems to be alright in that respect.
    PXL_20240627_042533647.jpg

    This is the point I skipped taking pictures. On the two vertical supports for the seat back I had forgotten to get some M3 holes tapped when I ordered the metal. So, the first thing I did was break my tap off in the first hole. Then I wasted a day trying to get the piece of the tap out of the hole. It's still there, not going anywhere, ever. The other 9 holes gave me no problems, so I'm not worried about it. After all that I attached the hinges and flaps to the seat bottom and back. Fortunately, I had remembered to have the 64 M4 holes for those tapped. I then proceeded to attach platform to the base, then the seat to the platform, the pneumatic cylinders to the seat bottom and back, then attach all the linkages so I could finally sit in the thing.

    Here are some pictures of where it's at now.
    PXL_20240630_023811544.jpg PXL_20240630_023848679.jpg PXL_20240630_024051783.jpg PXL_20240630_023837374.jpg
    On of my original goals was to try making it only take up the same amount of floor space as my old worn-out office chair. I think I've done a good job on that point.
    PXL_20240630_024837748.jpg
    The support for the head rest makes it only a little deeper. Btw, I am so glad I put rollers on the feet. It makes it Soooo much easier to move around.

    And here are a few detail images.
    PXL_20240630_023821571.jpg PXL_20240630_023827963.jpg
    Here is the linkage for moving the bottom flaps, and then the linkages and bell crank for moving the back flaps.

    PXL_20240630_024108069.jpg PXL_20240630_024124543.jpg
    This is the pneumatic cylinder for moving the seat back up and down, then the one under the seat that controls it. Also, you can see the optional motor cooling fan mounting locations.

    Some of the next things to do are to hook the pneumatic cylinders to each other and get a higher than ambient pressure in them. To do that I put them in the freezer for about an hour then when I get them out, I plug all the tubes into them. That way when they warm up to ambient the air pressure in them has risen also.

    I need to also print out the attachment brackets for the 5-point harness along with the shoulder belt guides that go at the top of the seatback.

    Seat cushions are still needed. I've been debating trying to find someone to sew those for me. Right now, I'll just be using the ones from the old seat.

    As soon as I do the pneumatics, I can at least start tuning out the settings in SMC3 and Simtools. This seat has a greater range of motion and a different resolution on the position sensors.

    Feel free to leave any questions or comments. I'm always happy to get feedback, it probably encourages me to work faster.
    • Like Like x 2
  10. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    No pictures this time, but I did get the pneumatic pistons hooked up. They are not working up to expectations. The pressure I from the temperature change between my freezer and ambient doesn't create enough of a pressure rise in the system. I need to get some one-way valves so I can pump additional pressure into them.

    I did however find out that I should have adjusted them to have the midpoint of their travel at the midpoint of the seats travel. That was my plan, but I somehow skipped that step. Fortunately, when the lower piston bottomed out and the seat kept going it was only the 3d printed universal joint that was connected to the piston that exploded. It did have a satisfying metal clank sound before parts started hitting the wall opposite side of the room.

    So, now I'm off to Amazon to find some inlet valves then tomorrow after work I'll print out the one piece I need to replace.
    • Informative Informative x 1
  11. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    379
    Location:
    Colorado
    Balance:
    2,721Coins
    Ratings:
    +266 / 1 / -0
    Man those parts are beautiful. Very nice work and very inspiring!
    Those caster feet are excellent.
    Its great seeing your evolution from the lessons learned on the first.
    Its too bad we arent neighbors, I've always wanted to try this style of gseat.
    I had to laugh at the 3d printed parts hitting the wall.
    I dont fully understand the pneumatics. At first I thought the one under the seat was a counter balance for weight but now im not sure. I really dont get the one on the back. It moves the seat back up and down? Are there bearings there?

    Watching with interest.
  12. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    Thank you for the compliment. The seat is nice to look at, sort of like industrial artwork. Somewhere in the back of my mind I keep thinking I need to add brass hardware and tubing to it, so it looks more Steampunk.

    The roller feet have been great and my back thanks me every time I've adjusted the seats position while working on it.

    After reprinting the broken part and installing it I left the rest of the U-joint disconnected from the seat so I could check the travel of the piston to see why it bottomed out. I then moved the axis in the opposite direction I wanted meant to and caused the new piece to shatter in the same way. :roll

    So, after printing a third one (with some minor improvements for installing it) and fully installing everything, I then carefully moved each axis of the seat to find out what the travel limits where before the piston hit its max or min travel. In my CAD model, I had no problems with ever reaching its limits, so I was scratching my head trying to figure out what I had wrong. Finally, it hit me that I was only using half of my travel for Heave inputs (~50mm). So, in use, any combination of Heave, Surge and Sway values from Simtools would never result in the piston being compressed or extended outside of that +/-25mm range. However, in SMC3Tools, I was moving each axis close to their limits of +/-45°. As I deflected the third axis is when bad things were happening. The rest of the seat can handle all three Axis being deflected to the max or mins at the same time, but I didn't allow for that with the piston.

    Now, as for what the pistons are doing. Yes, the seatback can move up and down. There are some IGUS linear rails on the two vertical seat back supports. I colored them Orange in the following image. The seatback has the four carriages on it (in yellow). They are the small NS_01_17 rails with the NW carriages.
    They fit nice and tight and are virtually silent when moving.
    upload_2024-7-2_23-44-41.png upload_2024-7-3_0-17-53.png
    The idea for the seatback was it moving up and down would give you the feeling of sliding up or down the seatback. It is supposed to enhance the feeling of being pushed down into or lifted up out of the seat with G forces. I got the idea from another person's g seat build on these forums, but I've been unable to find that build thread again to know who it was. My first seat had the seatback on some drawer slides to try doing the same thing, but they were too loose, and I never found a good way to actuate it, so I just locked it in place.

    This time I tried many different mechanisms to link just the heave motion of the seat to moving the back up and down, but they all quickly got too complex. I was about to give up on it when I thought about using the pistons. Both pistons are double acting and connected together, bottom chamber to bottom chamber, and top chamber to top chamber. The lower piston is a smaller diameter than the back piston, giving it ~half the piston surface. So, when the lower piston is compressed by the seat moving down (Positive G), it drives the back piston to extend by about half the amount (with no load). The opposite happens when the seat moves up (negative G), the lower piston is expanded, and the back piston is contracted. It remains to be seen how much this enhances the effects, or if it affects it at all. I installed Schrader valves on both the airlines today so I could pump up the system pressure, but one of them keeps leaking and I've not found it yet.
    • Creative Creative x 1
  13. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    379
    Location:
    Colorado
    Balance:
    2,721Coins
    Ratings:
    +266 / 1 / -0
    Maybe it was Markus or Seattime (dont know why seattime had to pull all his great threads)?

    Interesting take on using the cylinders to transfer motion. I am curious to see how that works. You clearly have a good grip on the mechanical system so I hesitate to interject other ways to do it but it seems like it would be hard to tune the motion to be exactly how you want it. Plus you might run into issues with the air compressing and then not transferring motion (but maybe thats better because it would be force based?). Have you considered a motor and ballscrew to move the seatback? It would fine tune in flypt mover beautifully.

    I am curious to hear how it works either way.
  14. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    I sort of wanted the seat back to have a soft movement instead of a hard one. So, the springiness of the air pistons actually helps with that. The springiness can be adjusted by changing the air pressure in the system too. I did consider making it motor driven, but I was also trying to stay within the limits of a single SMC3 Arduino. The problems it is giving me at the moment is one side of the air system will not stay pressurized and I can't seem to locate where it's leaking from. I tested it off of the seat and it held pressure for days, at least the pressure I got from the temperature rise between the freezer and my room. Since I needed more pressure than that I added some valves so I could use a bike pump to pressurize them. I am assuming that is where the leak is, but I'm hesitant to start spraying soapy water on it to really find where it is.
    I'll go look at the threads from Markus to see if that was where I got this idea from.

    BTW, I have discovered that without any cushions the seat is great for cooling down after being outside. We are under a heat advisory around here, the heat index is 109°F.

    Edit: cfischer Yes, MarkusB's third seat build was where I got the idea from. I remember his hand drawn diagram in his first post.
    • Like Like x 1
    Last edited: Jul 4, 2024
  15. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    Well, I found the leak in the pneumatic system. One of my quick connect fittings had something wrong with the threads. After the replacements have finally arrived, it all appears to be holding pressure.

    I did make some other progress while waiting. I got the 5-point harness attached.
    For the shoulder and lap belts I was originally going to do a hard mount, but after looking at other people's sim chairs and thinking about it I did a soft mount for them instead.
    PXL_20240708_125654121.jpg PXL_20240708_125701342.jpg

    I'm still using the cushions from my first seat and after some advice from my dad I am going to get a local upholstery shop to make a set that looks more like the quality of the rest of the seat.

    Does anyone have any suggestions or examples of some good-looking upholstery?

    The other thing I'm working on with the seat is a clicking noise coming from the front gearbox. I had noticed the clicking noise when I first ran the gearbox (this is the one I got off of Amazon). I only made it when driving in one direction while unloaded. With the previous seat it worked out that the direction it was loaded kept it from clicking. Also, the fans in the motor control boxes on the old seat were extra loud, and it made lots of noises when moving so I don't think I would have noticed the clicking so much. On the new seat the gearbox is loaded in the opposite direction, so it clicks all the time. The other two axis and the rest of the seat are super quiet, so this clicking really stands out. I am tempted to take the gearbox apart and try finding out what is making it click but before I do that, I think I'll order another one from StepperOnline. Thats where I got the other two gearboxes.

    hcee2022 now that I've got things this far I'll try to hurry up and get the tuning better so I can give you those screenshots from SMC3util that you asked for.
    • Like Like x 2
  16. hcee2022

    hcee2022 Member

    Joined:
    Feb 13, 2022
    Messages:
    34
    Location:
    Finland
    Balance:
    194Coins
    Ratings:
    +45 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Great work, the metal seat looks very professional! @Sielu have you seen this one?

    No hurry with the tuning screenshots, I haven't been able to fly much during the summer.

    For the upholstery, I used this - something similar is probably available in the US:

    www . amazon . de/dp/B08NF76PL4

    So far working very well and shows no wear. For the cushioning I used two types of foam, a soft and a firm one. For the bottom part I later added another layer of the soft foam to make it more comfortable for longer sessions.
    Last edited: Aug 2, 2024
  17. Udonnis

    Udonnis New Member

    Joined:
    Aug 6, 2024
    Messages:
    6
    Occupation:
    Engineer
    Location:
    Australia
    Balance:
    47Coins
    Ratings:
    +1 / 0 / -0
    I was looking for inspiration for my own 3DOF chair and I stumbled upon yours. Holeee cow! Your seat is looking fantastic! The sheet metal is a work of art all by itself. Really inspiring stuff.

    Ok, don’t answer this question if the answer is too scary, but how many hours do you think you have in the design? It must be quite a bit, and on that note, what are you using for CAD?

    I do have one suggestion for you, you may have already thought of this and rejected it so take it with a pinch of salt.

    Your encoder setup looks a bit complicated and might lead to issues with long term use. Why don’t you pop the cap off the end of the gearbox (the input shaft), attach a magnet to it and use a magnetic rotary encoder. You can get any flavour of position output from them these days and you will also get 1:50 upscaling (I assume you’re using a 50:1 gearbox). Backlash won’t be a problem because there is always weight on the worm gear and it never drives the cam arm on the other side, meaning when the motor reverses, you’ll never see the backlash.

    I’ve been using AVAGO AEAT-8800 for my motor controller designs on the input shaft to worm drive gearboxes with great success. You’d need to design a PCB to hold them though.

    Anyhoo great project! Can’t wait to see it running.
  18. Udonnis

    Udonnis New Member

    Joined:
    Aug 6, 2024
    Messages:
    6
    Occupation:
    Engineer
    Location:
    Australia
    Balance:
    47Coins
    Ratings:
    +1 / 0 / -0
    Oops, forgot to post the picture of the cap to remove so you can attach the magnet to the shaft. The shaft has 3 holes which might be tapped that you can mount a 3D printed encoder case to as well.

    Attached Files:

  19. Gefahren

    Gefahren Member

    Joined:
    Mar 9, 2024
    Messages:
    55
    Occupation:
    Electronics Engineer
    Location:
    Central Mississippi, USA
    Balance:
    395Coins
    Ratings:
    +66 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform
    I appreciate the kind words.

    For some reason I thought that if I opened that cap, I would let the oil leak out. With an encoder on the input shaft like that, how do you know your center position? or your position on power up? I assume there is a limit switch, and you do a homing procedure like a 3d printer?

    What I do like about my position sensor setup is that, with the gear ratio between the output shaft and it, I can get 1 full turn of the sensor for the limited angle my output moves. With how I have it set up now (not like the picture you showed, that was my old setup) I theoretically have 1 bit value change to 0.1° of rotation on the output. Also, with the new chair, the sensor isn't as exposed as the old one, so there is a much lower chance of damage.

    I failed to keep a good count of the hours of CAD work I did. Technically this is the fourth chair I designed since I would find something about a core aspect of the design that I just didn't like and would start a new project from scratch. Like switching from Imperial to metric. Rough estimate is about two months of nights and weekends. I use Alibre Design Expert for the CAD work, it has a sheet metal module that helps out a lot.

    As for your mention of designing a PCB for other encoders, that is one of the things I do at work, so I have the tools and it's easy. Problem I run into with things, is the very cheap little boards off of Amazon make it not worth bothering with unless I have something very specific in mind.

    One of the things that has been keeping me away from the forums recently is I have been doing the design work to add a 4th axis (yaw) to my seat along with a force feedback stick and rudder pedals.
  20. Udonnis

    Udonnis New Member

    Joined:
    Aug 6, 2024
    Messages:
    6
    Occupation:
    Engineer
    Location:
    Australia
    Balance:
    47Coins
    Ratings:
    +1 / 0 / -0
    Yup, that cap is usually a seal on this type of gearbox, but once the magnet is installed you can put the cap back on and sense through the seal, as long as it isn't too thick (oil shouldn’t affect it). Sensing distance is quite important with these magnetic encoders. The higher the gauss of the magnet the further away they can be. If the plastic of the endcap seal is too thick or you can’t fit a magnet you can 3D print your own seal and encoder housing and just use the three screws on the back of the gearbox to mount it.

    The worm gears are usually stainless steel (with a bronze material for the output gear for the highest metal to metal lubricity) so nearly non magnetic and placing a magnet on a stainless steel shaft is usually fine. A good CA glue works great for this. You just have to make sure you use a glue that is oil resistant and that the surfaces are clean before you glue it. Sometimes there’s even a handy tapped hole in the end of that shaft so you can 3D print a magnet holder and screw it into the shaft. Just make sure you use a non-magnetic screw!

    The bearings are usually steel and can influence the magnetic field but in my experience it’s not really an issue. It only becomes an issue when you need very precise position control, and I don’t think that’s the case here given that at 50 to 1 you need 50 turns of that shaft to move 360°.

    You bring up a very good point in that you need limit switches and a homing routine for this to work. I’m not sure if you can program these magnetic sensors in absolute mode for multiple rotations.

    Hmm, I just checked the data sheet and those encoders have a three wire SSI interface for absolute output, so it may be possible to home them without a limit switch. I’ve never used the absolute output from these encoders so I don’t know if it’s possible because in this control scheme as they’re doing multiple turns so it may not be.

    Limit switches is a bit of extra wiring and a microswitch on a bracket which touches off when the motor reaches its lower limit. Basically just put on a bracket with a couple of screws holding in place that enable you to change its position a little bit so you can set the home point. I’m not sure if you’ve ever written homing routines, or if there included in any of the currently available firmware, but it’s straightforward.

    One thing I didn’t mention in the previous post is that you do need a programmer to set the fuse bits in the AVAGO (now Broadcom) sensors. They’re very expensive, but I have one and if you wanted to go down this route I’d be happy to program, and put them in the post for you.

    With regards to resolution, the output of that shaft will be 50 turns for one revolution of the output shaft. If you are using quadrature and the magnetic sensor was programmed to give you 128 CPR that would be the equivalent to 25,600 pulses per revolution (0.0141 deg/pulse) of the output shaft. An order of magnitude higher than what you currently have. These encoders can go up to 4096 CPR which would give you a whopping 819,200 pulses per rev (0.00044 deg/pulse). But that level of accuracy comes at the cost of high overhead in reading that many pulses via interrupts on your processor. In practice and Arduino compatible processor like a teensy 4.1 can easily handle 64 or 128 CPR across multiple axes.

    Depending on the type of motor control you’re using, the more pulses you have the smoother your control loops will be. If you’re using a standard PID controller more pulses per degree means that the control loop doesn’t “wait” for input and can affect the output more times per second which equates to smoother control.

    Now because I’m a noob at XSimulator I have no idea how it interfaces with the microprocessor, or what firmware runs on the processor, and I don’t know whether this type of implementation is even possible. You’d be in a much better position than I am to know that!

    I've uploaded the datasheet and app note for the Mag Sensors FYI.

    Attached Files:

    • Useful Useful x 1