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

Budget Compact 6DOF Universal VR Flight / Racing rig - MSFS, SMC3, FlyPT, Transducers, Controls

Discussion in 'DIY Motion Simulator Projects' started by Ronan Design, Oct 11, 2024.

  1. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,200
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,880Coins
    Ratings:
    +10,922 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Please run the Sine test and re-post the SMC3 results.

    How did you arrive at the settings you have? I ask because I would have anticipated Kp to be higher and PWMmax and PWMrev to perhaps be a bit lower.
    Last edited: Jan 4, 2025
  2. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    217
    Location:
    Polska
    Balance:
    925Coins
    Ratings:
    +63 / 0 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    in my 2DOF I used such settings with these engines

    Attached Files:

  3. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    217
    Location:
    Polska
    Balance:
    925Coins
    Ratings:
    +63 / 0 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Did you mount Gas Struts / Gas Springs ?
  4. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    OK, will run the sinewave test and repost. It's possible the shudder is a reflection of sliding the sliders with the mouse, though it didn't feel like it.

    I arrived at the settings I have by running the motors without load (because it's impossible to run just one motor under load in 6DOF). My reasoning for the PWMmax and PWMrev maxed out is that I think I need all the power I can get from my motors. 255 is basically max power, so why not use it when I can? Same for the reverse: why not use max power for stopping when needed? Is my reasoning flawed? The question is if I can find settings that work well with it. Higher Kp didn't work well without load, but maybe it's different under load, so I can try increasing it.

    Thanks, I see that Kp is much higher than mine. I'll try yours.

    I installed one gas strut in the middle. It's working fine when I'm on the rig, but without me, it's doing weird things and the problem is that without power the motors are easily moved and so the rig gets into some random weird position that's beyond SMC3 disconnect bounds, so I have to manually move arms and find a precariously fragile position of balance, where I can turn the rig on so the motors would hold it in a normal position. I'm thinking about how to solve it, not sure yet.
  5. eightK

    eightK New Member

    Joined:
    Sunday
    Messages:
    4
    Balance:
    39Coins
    Ratings:
    +0 / 0 / -0
    I'm very new here, but i've been looking at tons of different videos and tons of different peoples' DIYs on these projects.
    I have a genuine question. I'm not being snarky here.
    Do the control rods from the motor to the frame have to be so long? I'm obviously missing something obvious. Could you design it in a way to use less lengthy rods to be a bit more stable/strong?
  6. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    In order to have enough motion range, including up/down (heave), sideways (sway), forwards/backwards (surge) and yaw there has to be enough length so the top frame has enough clearance to move in all those directions. It's just the way the geometry works in 6DOF Steward Hexapod. There are some racing simulators that only use 4 motors and 4 vertical rods - they can be short, and 2DOF systems can have shorter rods too, if desired.
    • Agree Agree x 1
    • Informative Informative x 1
  7. eightK

    eightK New Member

    Joined:
    Sunday
    Messages:
    4
    Balance:
    39Coins
    Ratings:
    +0 / 0 / -0
    Clearance makes sense. That helps me understand. Thank you for the reply!
  8. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,200
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,880Coins
    Ratings:
    +10,922 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Additionally, whatever the rig design, its speed and control settings should ensure fast and accurate motion!
  9. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    OK, I have finally fully tested it with a live pilot - myself!
    Overall things seem to be working OK, but I do have some judder, even when testing with a sine wave. Heave Sine Wave test starts at 3:00 mark, Roll - at 5:00 mark. Nothing too bad, but definitely doesn't feel smooth, though it doesn't look rough on video. You can see the side panel shaking slightly from the shudder.
    Large motions don't feel shuddery, smaller ones do.

    Here is the settings I tried it with:
    upload_2025-1-5_1-20-17.png
    I also tried it with my previous settings (Kp=100, PWMrev=255) I don't think there is any difference in smoothness.

    The good news is that after many weeks of working on this project I was never sure the motors would be powerful enough and they definitely are! I didn't feel or hear any strain in the motors. The drivers heated up to around 32 degrees, nothing major. Now I need to try and get rid of the shudders so the motion feels smoother. Advice is very welcome!

    I installed a gas strut roughly in the middle of the rig, it's rated at 54kg of weight. The rig has a master low-pass filter at 300, which really smooths out the motion. Even with it, it can be quite fast. LFP 50 can be really fast. I'll set it somewhere in the middle eventually.
    • Winner Winner x 1
    Last edited: Jan 5, 2025 at 07:22
  10. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,200
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,880Coins
    Ratings:
    +10,922 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    The benefit of the SMC3 interface is to allow you to properly tune settings to suit your particular hardware and rig. Max settings are not the way to go. While written with an other controller in mind here is a gentle introduction to PID tuning: https://www.xsimulator.net/community/faq/a-laymans-analogy-guide-to-pids-pid-tuning.219/

    Unfortunately the picture of the settings does not post the Sine test properly, please directly upload the example settings: https://www.xsimulator.net/community/faq/upload-pictures-or-files.81/
  11. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Strange, I see the image in my previous post perfectly well. Here it is, attached again.

    Tuning is difficult with 6DOF, because it's 3 separate boards and 6 motors that I can't isolate under load, so I can't test motors under load individually, as they are all linked and have to move together. So I can't use the normal procedure of commanding motor from SMC3 Utils software and adjusting the parameters based on the graph.

    Attached Files:

    • smc.png
      smc.png
      File size:
      31.3 KB
      Views:
      10
  12. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,200
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,880Coins
    Ratings:
    +10,922 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    That picture shows the settings but is not running the sine test in Out Mode.
    • Like Like x 1
  13. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Oh, I thought you meant sinewave test in FlyPT. How can I run the sine test in SMC3 Tools under load when it can only control one motor at a time on a single board? I can't run all of them together, as the app doesn't let to rune more than 1 instance at a time, and just running it on a single motor would just crash the rig.
  14. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,200
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,880Coins
    Ratings:
    +10,922 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    You could disconnect the top frame and run them unloaded, following the SMC3 setup instructions, taking note of the PWMmax value when the rig starts to move, and once settings are tweaked run the Sine test: https://www.xsimulator.net/communit...3dof-motor-driver-and-windows-utilities.4957/

    Other than that it would be an educated guess. Mine would be reduce the lever CTC by one hole, initially set Kp to 400, Ki and Kd to 0, Ks to 1, PWMmin, PWMmax, and PWMrev as per your current settings.
  15. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    I played with all kinds of settings and some are better than others, but while it got better on medium movements and fast movements are very responsive, very slow movements still have the small even shudder. It's small, almost a vibration. This is common with all settings and if it changes, only a little.

    I'm starting to suspect that what I'm feeling is what's called "cogging", i.e. the interaction of the gear in gearboxes. I didn't feel it at all with 2DOF PGSaw motors, but they had a worm gear gearbox, different from the Yalu motors. Also, my 2DOF is very soft, bendy and spongy, so it is not very precise, so maybe this effect was dampened. My 6DOF wooden frame and plywood top platform is flexing a bit, which actually may be an advantage that softens the rough motion, but still, the movements feel way more precise and really fast compared to the 2DOF. I had to use LPF 200 damper filter on the whole rig just so as not to feel scared to break the rig and myself, and it still feels very fast and powerful. I guess that 6 gearboxes moving together would amplify gear vibrations or do all kinds of phase-related effects amplifying and cancelling each other's cogging. That also may play a role.

    I guess I'm too picky. I'll have to try it in an actual flight simulator and racing games. I suspect it won't be very noticeable under constant movement. Small slow bank turns could be a problem, but then I'll have engine vibration via transducers masking it somewhat, I guess.

    I'm out of ideas what else to try to decrease it. Reducing lever CTC could help, though it will reduce the movement range. Maybe I will see the practical application with this CTC and if I keep noticing it - will try to reduce CTC. It could reduce cogging amplitude I suppose.

    I've seen a few videos showing shudder/vibration problems with an expensive DOFReality rigs, so if they have this problem, I'm in good company. Though if I keep noticing it in practical application it will be annoying. We'll see.

    Here's the settings that seem to be working the best so far:

    Attached Files:

    • smc.jpg
      smc.jpg
      File size:
      97.5 KB
      Views:
      11
    Last edited: Jan 6, 2025 at 17:10
  16. Josh_Possa

    Josh_Possa Active Member

    Joined:
    Jan 25, 2021
    Messages:
    122
    Location:
    Catalunya
    Balance:
    560Coins
    Ratings:
    +34 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Motion platform
    Did you try adding a little of Deadzone?
  17. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    I tried up to 3 and felt no difference. I could go wider just to check, I guess. When I have slow full heave sinewave I kinda hear the motors cogging at the same frequency as I feel the judder. The best way to describe it is that the motor sound matches the vibration that I feel. So I'm getting more convinced that this is cogging. I was wondering why I didn't have it on 2DOF when I read that it's a prominent problem even with off-the-shelf rigs. I can't compare it with one because I don't have access to it. But if it's cogging I think there's nothing to do about that. There's no vibration on faster/wider movement. But it's there on slow ones. I'll see how banking turns feel in the sim. With racing it probably won't matter at all, but in flight sims where slow movements are common it may be felt a little, though hopefully masked by engine vibration and smaller movements.
    This video describes the issue and the upgrade to fix the issue and it sounds very similar to what I'm experiencing. The "upgrade" costs $300 per motor or $100 per motor with a new rig that already costs thousands. They themselves acknowledge the issue by advertising the upgrade with "say goodbye to cogging" on their FB post. So I think this is what I'm feeling. Most videos that refer to "judder" show large irregular vibrations on slow movement which are different. What I feel is more of a "stepping" feel mostly. Sometimes, I guess, 6 motors act in phase or out of phase so the cogging is more or less prominent, but it's the same frequency so I think this is it. OK then, off to completing other parts of the rig, putting it all together and testing in the sim.

    Update: This topic describes the issue in detail. It does sound like what I'm feeling...

    The most important milestone was reached: the rig works, the motors are powerful enough and bear my weight without any problems, move the rig fast and I didn't have any issues with overheating or PSU protection so far. I didn't do any stress testing, but I did repeated large movements and a few minutes of heave sinewave. So far so good. We'll see if it holds up in actual sim sessions.

    I'm using modified SMC3 firmware with soft start and it just refused to work on boot - I got a violent jump when powering up the rig. I modified the code and now I have a soft boot. For some reason, it now does a weird dance of softly going to the neutral position, then to the high position (that I wanted for idle) and does it 3 times until it settles, and I can't get rid of that. But it's not a problem, let's call it a "boot cycle". Much better than a violent shake on boot.
    Last edited: Jan 6, 2025 at 20:27
  18. Josh_Possa

    Josh_Possa Active Member

    Joined:
    Jan 25, 2021
    Messages:
    122
    Location:
    Catalunya
    Balance:
    560Coins
    Ratings:
    +34 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Motion platform
    I built a 2 DOF rig inspired mix with yours and mix with SNK and also never experienced the judder/coging issue but the gear play (solved with springs). Then, with my current 3DOF with heave, I experienced problems with the PC-Arduino communication that was making problems very similar to the judder issue. After solve it I'm still experiencing some cog issue but not while the motor runs at low speed but when the motor stops really near of the targeted position.It is not a motion problem, it is a noise and eventually a overheating problem. I checked increasing Kp the motors are able to reach the target position with accuracy and the problem goes but it makes the rig very "violent" so I decided to "suffer" a little bit coging.

    Now (well, a few weeks ago), after see the same solution as DOFR makes (the SFU, previous version as the post you linked of them), I'm building an actuator based on the DOFR's SFU but using the whole 500mm ballscrew instead of use a planetary gearbox and only using 7-8cm of the ballscrew that DOFR uses. It is a monster (in the aesthetyc terms) but I hope it will solve the really bad performance the wormgear does and the problems associated with that gearboxes (play, coging, bad efficiency, fast wear and tear in the worm, etc).

    I recommend you continue playing with the Kp, Deadzone and even a bit of Ki values. Try to installing the dumper to see if it helps with the slow movements (sometimes the problem is because the torque at low speed is not enough and the motor +driver acts as wave due a bad PID performance/configuration).

    I hope you'll found and solve the problem.
    • Like Like x 1
  19. Ronan Design

    Ronan Design Roman Design - Custom MSFS Scenery

    Joined:
    Jun 4, 2021
    Messages:
    231
    Occupation:
    Web Designer, MSFS Scenery Designer
    Location:
    Toronto, Canada
    Balance:
    1,505Coins
    Ratings:
    +94 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Thanks for the feedback. What kind of damper do you mean? Ho large a deadzone should I try? I tried a lot of Kp and some Ki values, but as for you Ki makes the rig very shaky and violent, while not solving cogging for me.

    Can you tell me more about the communication issue? How did it manifest and how did you solve it? I need to eliminate this possibility, so I need to figure out how to test it and solve it if it's there. In theory this could be an issue.
  20. Aerosmith

    Aerosmith Active Member

    Joined:
    May 30, 2024
    Messages:
    325
    Occupation:
    self employed
    Location:
    Germany
    Balance:
    1,903Coins
    Ratings:
    +182 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor
    May I ask how the control loop(s) in jour system are designed? Is it just one PID loop per motor which compares actual and nominal position and outputs the PWM to the motor driver? Or are there nested PID loops, one for speed and one for position?

    Industrial servos typically have nested PID loops. There, if you have vibrations during movements but a stable control for standstill and very fast movements (PWM saturated) then increasing the speed loop gain generally helps.

    Small and simple systems like model servos typically have a single PID loop. In this case decreasing P and/or I or increasing D gain helps fighting vibrations.