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

FlyPT Mover

Discussion in 'FlyPt Mover' started by pmvcda, May 30, 2019.

  1. mm982566

    mm982566 New Member

    Joined:
    Sep 22, 2017
    Messages:
    27
    Location:
    US
    Balance:
    63Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    3DOF, 4DOF, 6DOF
    This is a small plugin I wrote for Flyptp that supports F1_23 and EA-WCR. Currently, there is only a Chinese explanation available. Sorry for the inconvenience,And then it's completely free

    Attached Files:

    • Like Like x 3
  2. TomKlash

    TomKlash Member

    Joined:
    Nov 21, 2012
    Messages:
    50
    Location:
    FRANCE
    Balance:
    425Coins
    Ratings:
    +10 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, SCN5, Arduino
    I have a few questions about this software which seems super complete and which I am currently testing on my G-SEAT type SIMU.


    1/ How can we apply a different range between the positive and negative values of the acceleration forces longi (for example).

    Like what we do in SIMTOOLS in Game Limits - Min/Max.

    [​IMG]


    2/ I use the MULTI DIRECT modules to manage the 3 rotary motors of my SIMU. For 1 DIRECT I would like to use the same input value twice to apply different filters when we are on positive or negative ranges. I have the impression that this is not possible. I thought about using longi accel and longi accel with gravity but it's not exactly the same thing.

    Do you have an idea to get around this limitation?
    ktSuEnt - Imgur.png


    3/ I am tempted to use the SPIKE filter to attenuate certain peaks when changing gear but this being an active filter (calculated) this induces a small latency. Can you tell what order it is?


    4/ Can we do operations other than summing the values in MULTI DIRECT?

    CP7dyFT - Imgur.png
    Last edited: Mar 10, 2024
  3. Marco Annunziata

    Marco Annunziata Member Gold Contributor

    Joined:
    Dec 2, 2019
    Messages:
    116
    Balance:
    844Coins
    Ratings:
    +17 / 0 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    Hello Pedro,
    what do you think of the idea to release a version without the all the numerous features, which we are aware, that you are working on? That's just to begin to try and test your new creature. Then, over time, it would be nice you would release various small updates with new functions.
    I'm sorry if I permit, it's just an idea
  4. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    157
    Location:
    Polska
    Balance:
    632Coins
    Ratings:
    +42 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Could I please, share a profile for 2DOF motion sim for the DCS game, I am trying to set up a profile using another profile from MSFS2020 but I can't deal with the situation when after the plane is shot down by an anti-aircraft missile the fuselage starts to buck violently, at such a moment sometimes one of the engines rotates the arm well beyond the normal operating range.
    I suspect that the values the DCS transmits when an aircraft is hit by a missile are too high, unfortunately I can't "cut" these values so that my 2DOF works properly.
    Please give me a hint.

    Attached Files:

    Last edited: Mar 11, 2024
  5. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    Hi Marco,
    The problem is that everything is connected an some base problems persist making it risky to share right now.
    I'm sorry. Hope you understand.
    • Like Like x 1
  6. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    Hi, sorry for the late reply,

    You can use the CROP filter to limit the values.
    CROP(VALUE;minimum value;maximum value)
    there's also CROPMIN and CROPMAX

    For now you have to use two multi directs.
    On next release you can do it:
    upload_2024-3-11_18-15-6.png
    Also with vars and conditions you can use the same value multiple times.
    By the way, the simple direct is going to disapear.

    It's using exponential moving average. So you get some latency for strong filtering.
    But... the filter is in action only when "on spike" no while inside the allowed limits.
    In the next release I have some other solutions like :

    DELTAMAX to limit the variation ov value to a maximum
    DELTAFOLLOW to follow a value with a maximum variation allowed (while value not reached increase the specified maximum)
    Maybe I could add something to choose direction also (limit on growing, limit on reducing, limit on both directions)

    For now only subtraction by multiplying with a negative value.
    On the next release, you have variables and conditions.
    You can do filters on variables (instead of VALUE) and use IF THEN ELSE
    Not on the direct module, but on the filters.
    Operations include multiplication (MUL or GAIN) and subtraction (SUB)
    Division is a multiply to avoid problems with division by zero (hmmm, might do something here).
  7. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    Can you show the rig module please.
    I don't have the Mover with me right now, only tomorrow.

    I say this, because you can limit the actuators movement in the rig module to avoid that problem
  8. Marco Annunziata

    Marco Annunziata Member Gold Contributor

    Joined:
    Dec 2, 2019
    Messages:
    116
    Balance:
    844Coins
    Ratings:
    +17 / 0 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF

    Pedro of course I understand and your honesty and your safely concern is really noble.

    Thank you a lot
  9. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    157
    Location:
    Polska
    Balance:
    632Coins
    Ratings:
    +42 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Thank you pvmcda for the answer, no problem I can wait :).
    My motion sim is a standard 2DOF, I found a motion limiting function in the RIG module but for some unknown reason it fails when the plane is hit by a missile.
    During normal flight everything works normally, the range of motion changes according to the imposed restrictions.

    Attached Files:

  10. dureiken

    dureiken Active Member

    Joined:
    Sep 28, 2016
    Messages:
    251
    Location:
    France
    Balance:
    1,248Coins
    Ratings:
    +170 / 2 / -0
    Hi
    servers seems down again :(
  11. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    .. :(
    I will look at it this afternoon.
    But I have a new server for the next release. So this is just temporary.
  12. TomKlash

    TomKlash Member

    Joined:
    Nov 21, 2012
    Messages:
    50
    Location:
    FRANCE
    Balance:
    425Coins
    Ratings:
    +10 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, SCN5, Arduino
    Hello PMVCDA,

    Thanks for your response. Your software is really intressting and the update that you mention it's very promising... Well done !

    Sorry for my english

    So I have some precisions to ask you. There is something that I don't understand.

    For longi acceleration range you said me :

    You can use the CROP filter to limit the values.
    CROP(VALUE;minimum value;maximum value)
    there's also CROPMIN and CROPMAX


    But I don't be sure that is that I want to do.

    FlyPTMover CROP filter_01.JPG


    I want to increase the longi acceleration for positive values. It's like a apply a multiplicator coefficient on positive values.
    In SIMTOOLS in define a different game limit for positive and negative values.
    How to do that with FlyPTMover ?
    Cause braking values are more importants than acceleration values but I want to obtain the maximum stroke also on negative than positive actuations.
    If I change the range for non symetrical range the actuator will not stay at middle position (neutral).

    FlyPTMover Range_01.JPG


    For the subject of SPIKE FILTER.

    You said me :

    It's using exponential moving average. So you get some latency for strong filtering.
    But... the filter is in action only when "on spike" no while inside the allowed limits.


    I use this filter with this settings, what do you think about that ?
    40 of strenght of spike is it a too important level to avoid latency ?

    FlyPTMover SPIKE filter_01.JPG


    In my tests and experimentations I have the idea to use the gear informations gived by the game to limit longi actuations during the gear changing.

    I try to use the passage by gearbox zero value between to gears to decrease the value used to action the longi motor on my SIM RIG.


    Some pictures to explain that :


    Peaks to decrease

    FlyPTMover Gearbox change_01.JPG


    Gearbox change processed

    FlyPTMover Gearbox change_02.JPG


    Result (wrong for negative values)

    FlyPTMover Gearbox change_03.JPG


    Settings

    FlyPTMover Gearbox change_04.JPG


    The problem is to change the sign of Gear value depending on whether we are accelerating or braking.
    The futher LOGIC OPERATION FILTER could allow that.

    For the moment I don't find solution.

    Have you got an idea ?


    A last question/proposition :

    What do you use to realise this 3D graphic preview ? CAD file ?
    Do you want I send you a CAD file from G-SEAT Simulator type to add it or maybe you have also that and planned to do it.

    If I can give you a little help with this, don't hesitate to let me know.

    FlyPTMover RIG view_01.JPG
    Last edited: Mar 13, 2024
  13. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    @TomKlash ,
    Sorry, some crazy days. Had to travel. Saw the comment but...

    For the 3D graphics I use Sketchup Make 2017 (old free edition)
    Link here: https://download.cnet.com/sketchup-make-2017/3000-6677_4-10257337.html

    I planned to build a G-Seat and add it in Mover. But nothing is done yet.
    There's some variants to make it. If you want to make the 3D, I might use it. But can't promise (sorry, to much going on).

    Let me explain the spike filters: (there's 3)

    LDYNLP
    It's a linear dynamic exponential low pass filter
    Might have some lag
    LDYNLP (P1;P2;P3)
    • P1 is the value we want to filter
    • P2 is from the variation of value allowed before filtering
    • P3 is the strenght of the low pass (multiplier)
    In this filter the number of samples in the low pass is the variation of value (minus the allowed variation before filtering P2) multiplied by the strenght (P3)

    EDYNLP
    Same as the LDYNLP, but exponential instead of linear.
    Instead of using the variation of value (minus the allowed variation before filtering P2) it uses that variation squared, so the strenght of the filter increases exponentially with the variation (stronger than LDYNLP)

    SPIKE
    SPIKE (P1;P2;P3;P4)
    • P1 is the value we want to filter
    • P2 is from the variation of value allowed before filtering
    • P3 is the strenght of the low pass (multiplier)
    • P4 is the exponential to use (if 2 it's equal to EDYNLP)
    Same as EDYNLP, but instead of squared we specify the degree

    So for your filter SPIKE(VALUE;0;40;1):
    You are filetring all the values because you use 0 in the range without filtering.
    If you put 10 instead of zero, all the variation up to 10 (or -10) is not filtered.
    Using 40 is a strong multiplier. If the variation of value is 100, is uses 100*40 samples in the low pass.
    In the exponential degree you use 1, so it's the same as LDYNLP.
    If you use 3 the number of samples will be samples*samples*samples

    LDYNLP and EDYNLP exist just to make calculations faster (less parameters and operations).
    Hope I explained the insides of the spike flters in Mover. You can see that if you specify an allowed range, there's no lag because there's no low pass on that range. If the low pass is high, you get the lag, but that's what we want to avoid the spike.
    I think filters in the Thanos and Motion4Sim are different. I did not look at them on purpose to avoid idea contamination...

    An idea to increase the positive values and reduce the negative ones:
    ADD(GAIN(MINCROP(VALUE;0);1.5);GAIN(MAXCROP(VALUE;0);0.5))

    upload_2024-3-15_12-17-50.png

    The value range to bit range in the direct module:
    The idea is to map a value to a bit value in the actuator.
    That default/home value is in reality the parking of the actuator.
    So if we map value from -50 to +100 we say that the actuator at bit 0 is for value -50 and maximum bit value is for value +100. It's just a remap.
    You should act on the filter of the direct and adjust the calculated value to your desired range.
    Just think of it this way:
    You have the actuator that can travel from 0 to 200mm (physically).
    You are calculating values that you send to the actuator.
    I can decide that I want position 80 in the actuator to correspond to the zero of the calculated value.
    For that you need to ADD(VALUE;80) to the filter. This means that if you calculate 0, the actuator is at 80mm.
    If you send -100 the actuator is at -20mm (it's out of the 0 to 200 range so it crops to zero)
    If you send 100 the actuator is at 180mm.
    You can also use gain to change the relation or the remap.
    The value range to bit range is just a remap to say that a calculated value is for a specific bit value. It has to do with the hardware and would be ignored if we sent just the position we want.
    In your case it's not a measure, more a empirical value you need to map to the actuator.
    I would say to put it from -100 to 100 or -1 to 1 and do all the math in filters to match those values.

    Actuators in the next release can be controlled by bit value, position (mm or º) or turns.
    In reality they are just remaps.
    • Informative Informative x 1
  14. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,107
    Location:
    Portugal
    Balance:
    14,963Coins
    Ratings:
    +2,508 / 17 / -0
    My Motion Simulator:
    6DOF
    @TomKlash ,

    Changing the sign of gear change depending on acceleration or deceleration:

    Only thing that I remember right now is to use gear variation (-1 or +1), but there you don't have the acceleration.
    This is why vars and conditions are needed...
  15. Michael Lurie

    Michael Lurie New Member

    Joined:
    Oct 23, 2023
    Messages:
    3
    Balance:
    18Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    Hi. I had recently some startup errors with flypt. It's a net error related to sound output.
    I traced it down to a conflict with voicemeeter banana.

    Has anyone else noticed such a problem?

    Is there a workaround or fix?

    Thanks
    Michael
  16. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    157
    Location:
    Polska
    Balance:
    632Coins
    Ratings:
    +42 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    I have a question about the EMAHP filter.
    I am using the profile from Roman Design, the question is why when I tilt the aircraft in the roll axis to the left and leave it in such a position first the program generates the correct movement of the engine lever in accordance with the movement of the aircraft and then generates the movement in the opposite direction to zero and exceeds this value generating the movement of the lever contrary to the direction of rotation of the aircraft. Removing the EMAHP filter from the roll axis removes this error.
    Below is a screenshot and two short videos showing this situation.

    Roll with EMAHP
    Roll without EMAHP

    Attached Files:

  17. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,185
    Location:
    berlin
    Balance:
    7,636Coins
    Ratings:
    +369 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    This is a good question that has already been answered many times in this topic. The HP filter (return to center) is part of the most popular "classic washout" algorithm - the best solution for the hexapod's limited "workspace". A slow return to the center (below the speed of vestibular perception) is the best way to fool the brain, which generally only perceives a change in angular velocity, ignoring the constant angular velocity. As has the fact that speed cannot be perceived, only its changes (acceleration).

    The aim of high-fidelity signal processing is not to translate all real-life forces within the limits of a simulation, which is intrinsically impossible, but to eliminate false forces as far as possible. In an aircraft simulation, keeping the platform tilted during constant roll would, I think, be a false cue. In most cases, you should only feel the roll in and out.

    Cheers - heXpod
    • Agree Agree x 1
    • Informative Informative x 1
    Last edited: Mar 22, 2024
  18. Attyla.pl

    Attyla.pl Active Member

    Joined:
    Oct 1, 2023
    Messages:
    157
    Location:
    Polska
    Balance:
    632Coins
    Ratings:
    +42 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Thanks for the reply, but looking at the Graphics Viewer window in FlyPtmover, I noticed different behavior of the EMAHP filter depending on what is the signal source for the roll axis:
    1. if the source is "Roll position" then the use of the EMAHP filter is perfectly correct, and when the aircraft is tilted to the left, the platform tilts to the left and then slowly returns to the horizontal position
    2. if the source is "Roll speed" then the use of the EMAHP filter causes the platform to behave differently, and after tilting the aircraft to the left, the platform tilts to the left then quickly returns to neutral and crosses it to tilt to the right and only return to the horizontal position.
    Question what filter can I use to use as a source "Roll speed" to get a fast tilt according to the direction of "Roll speed" and then a slower return to the horizontal position ?
    Below are two screenshots showing the operation of the EMAHP filter depending on the source of the signal.

    Translated with DeepL.com (free version)

    Attached Files:

  19. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,185
    Location:
    berlin
    Balance:
    7,636Coins
    Ratings:
    +369 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I'd advise sticking to "speeds" (angular velocities). I think you can experiment with LP and HP weights to get the right behavior. Try superimposing LP or HP filters one after the other LP-LP - HP-HP-HP (second or third order). This changes the abruptness of the behavior. The more you repeat the same filtering (two or three times), the more gradual the response will be. That way, you can decide on the amount and harshness of the inclination. Depending on scenario, the adverse kick when you stop rolling is not necessarily a false cue.
    • Like Like x 1
    • Informative Informative x 1
  20. Flymen

    Flymen Flymen Gold Contributor

    Joined:
    May 19, 2018
    Messages:
    336
    Location:
    Montreal, Canada
    Balance:
    2,423Coins
    Ratings:
    +191 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    Hello everyone ,
    I'm trying to create turbulence on DCS game , Anyone have idea to do this because the game doesnt give this algorithm .
    Thanks !!
    Last edited: Mar 23, 2024