1. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Download Package Now!
  2. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  3. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant here. Do not following these rules will lead to permanent exclusion from this website: Read the forum rules.

Question 11DOF?

Discussion in 'SimTools DIY Version' started by BrassEm, Aug 8, 2019.

  1. BrassEm

    BrassEm G-Seat + SFX100 Builder Gold Contributor

    Joined:
    Apr 15, 2015
    Messages:
    97
    Location:
    NE of YMML
    Balance:
    762Coins
    Ratings:
    +38 / 0 / -0
    My Motion Simulator:
    DC motor, AC motor, 4DOF, 6DOF
    EDIT: NOT POSSIBLE. SEE PAGE 78 OF USER MANUAL V2.4


    "Each game plugin allows up to nine DOFs (Degree of Force) to be sent and used for output to your simulator including: Roll, Pitch, Heave, Yaw, Sway, Surge, Extra1, Extra2 and Extra3. Each of these nine DOFs that are used for a game plugin should have a corresponding max/min value."

    (I believe more DOFs will be put to good use. Just a suggestion.)


    G'day,

    I am working towards using SIMTOOLS to command my sim rig which has an SFX-100 base with my g-Seat-II on top of it.

    My understanding for SIMTOOLS for use with DCS;

    DCS -> 9 values -> PLUGIN -> 9 outputs (DOFs) -> GAME ENGINE -> Axis1a-Axis6a/Axis1b-Axis6b -> Motors

    For my hardware setup I need the following GAME ENGINE outputs from the 9 inputs from DCS;

    pitch, roll, surge, heave, sway. -> Axis1a-Axis5a for SFX100 DOF(5)(Matrix calculations from input, modified)

    roll, extra2, heave, extra3, sway, surge. -> Axis1b-Axis4b for g-Seat-II DOF(6) (Straight through from input, not modified)

    I need both modified and unmodified variables;
    roll, surge, heave, sway

    modified;
    pitch

    unmodified;
    extra2, extra3

    I need eleven outputs all up. Is this possible?

    Do I need to create a math plugin to command GAME ENGINE with individual AxisXa/AxisXb for each DOF output (5 and 6)? Or does it still get channelled throught the 9DOF?

    Cheers,
    Last edited: Aug 10, 2019
  2. Ads Master

    Ads Master

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
  3. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    535
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,719Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    You can use multiple interface plugins to have as many axis you will ever need.

    For example one interface will be the AMC-aasd15A,
    Another interface will be the controller for the G-seat (not sure what you are using there).
    Then you can assign to each interface which game axis to mix and use, and you can reuse in each interface same game axis if you like.

    Thanks
    Thanos
    • Agree Agree x 2
  4. BrassEm

    BrassEm G-Seat + SFX100 Builder Gold Contributor

    Joined:
    Apr 15, 2015
    Messages:
    97
    Location:
    NE of YMML
    Balance:
    762Coins
    Ratings:
    +38 / 0 / -0
    My Motion Simulator:
    DC motor, AC motor, 4DOF, 6DOF
    The trouble is I need 11 different variables/channels/DOF's to mix around to the controllers.

    9 input DOF's, from that, 6 modified output DOF's, and 5 unmodified output DOF's.

    g-Seat-II 20190806a.jpg DOF11.jpg
  5. yobuddy

    yobuddy Well-Known Member Staff Member Moderator SimAxe Beta Tester SimTools Developer Gold Contributor

    Joined:
    Feb 9, 2007
    Messages:
    3,651
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    29,581Coins
    Ratings:
    +3,688 / 10 / -0
    With the A and B axis assignments available, we have a total of 12.
    I would use A for the sim and B for the g-seat (or visa versa) to make it easy to understand.
    Hope that helps buddy!
    • Agree Agree x 2
  6. BrassEm

    BrassEm G-Seat + SFX100 Builder Gold Contributor

    Joined:
    Apr 15, 2015
    Messages:
    97
    Location:
    NE of YMML
    Balance:
    762Coins
    Ratings:
    +38 / 0 / -0
    My Motion Simulator:
    DC motor, AC motor, 4DOF, 6DOF
    I do understand portioning the output to axes, which I intend to do so in GAME ENGINE as per the diagrams above. The problem is getting all the data output.

    So for my plugin as per the 2.0 Plugin API example;


    Output from DCS; (***** NOTE 9 VALUES HERE ****** )

    socket.try(c:send(string.format("%.4f; %.4f; %.4f; %.4f; %.4f; %.4f; %.4f; %.4f; %.4f;\n", pitch, roll, yaw, surge, heave, sway, TAS, roll_lurch, pitch_lurch)))



    DCS PLUGIN CODE; (Relevant portions only)

    Private Const _PluginAuthorsName As String = "value1/yobuddy/brassem"
    Private Const _GameName As String = "DCS"
    Private Const _ProcessName As String = "DCS"
    Private Const _Port As String = "41230"

    '////////////////////////////////////////////////
    '/// DOFs Used for Output for this Game ***** NOTE 9 VALUES HERE ****** ///
    '////////////////////////////////////////////////
    Private Const _DOF_Support_Roll As Boolean = True
    Private Const _DOF_Support_Pitch As Boolean = True
    Private Const _DOF_Support_Heave As Boolean = True
    Private Const _DOF_Support_Yaw As Boolean = True
    Private Const _DOF_Support_Sway As Boolean = True
    Private Const _DOF_Support_Surge As Boolean = True
    Private Const _DOF_Support_Extra1 As String = "TAS"
    Private Const _DOF_Support_Extra2 As String = "roll_lurch"
    Private Const _DOF_Support_Extra3 As String = "pitch_lurch"

    'Used by GameEngine to Process Incoming UDP Packets from DCS.
    Public Sub Process_PacketRecieved(Text As String) Implements IPlugin_Game.Process_PacketRecieved
    'Split incoming UDP packet to their appropriate variables. Incoming packet data is Pitch, Roll, Yaw, Surge, Heave, Sway, TAS, roll_lurch, pitch_lurch.

    (***** NOTE 9 VALUES HERE ****** )
    Dim Pitch_Input As Double = CSng(DOFs(0))
    Dim Roll_Input As Double = CSng(DOFs(1))
    Dim Yaw_Input As Double = CSng(DOFs(2))
    Dim Surge_Input As Double = CSng(DOFs(3))
    Dim Heave_Input As Double = CSng(DOFs(4))
    Dim Sway_Input As Double = CSng(DOFs(5))
    Dim TAS_Input As Double = CSng(DOFs(6))
    Dim roll_lurch_Input As Double = CSng(DOFs(7))
    Dim pitch_lurch_Input As Double = CSng(DOFs(8))

    'SFX-100 Calculation code here;
    6 DOF Rock and Roll Platform vector calculations


    'g-Seat-II Calculation code here;
    G Seat vector calculations


    (***** NOTE 9 VALUES HERE AND CLASH OF DESIRED OUTPUTS ****** )
    Roll_Output = Roll_SFX-100_Calculation-Result OR Roll_g-seat-II_Calculation_Result ?????
    Pitch_Output = Pitch_SFX-100_Calculation-Result
    Heave_Output = Heave_SFX-100_Calculation-Result OR Heave_g-seat-II_Calculation_Result ?????
    Yaw_Output = Yaw_SFX-100_Calculation-Result
    Sway_Output = Sway_SFX-100_Calculation-Result OR Sway_g-seat-II_Calculation_Result ?????
    Surge_Output = Surge_SFX-100_Calculation-Result OR Surge_g-seat-II_Calculation_Result ?????
    Extra1_Output = TAS_Input
    Extra2_Output = roll_lurch_g-seat-II_Calculation_Result
    Extra3_Output = pitch_lurch_g-seat-II_Calculation_Result

    End Sub
    • Informative Informative x 1
    Last edited: Aug 9, 2019
  7. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,290
    Location:
    Newcastle Australia
    Balance:
    26,826Coins
    Ratings:
    +2,582 / 29 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    I don't see any channels for controlling a Harness - not something that I would easily give up.
  8. BrassEm

    BrassEm G-Seat + SFX100 Builder Gold Contributor

    Joined:
    Apr 15, 2015
    Messages:
    97
    Location:
    NE of YMML
    Balance:
    762Coins
    Ratings:
    +38 / 0 / -0
    My Motion Simulator:
    DC motor, AC motor, 4DOF, 6DOF
    Belt tension is extremely important for effect. It is coupled to the g-seat-II levers so no need for extra channels, but yeah, more channels the better...
    Last edited: Aug 10, 2019
  9. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    535
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,719Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    What I don't understand is why you need custom game plugin? All the axis information for motion is already available in most games...
  10. BrassEm

    BrassEm G-Seat + SFX100 Builder Gold Contributor

    Joined:
    Apr 15, 2015
    Messages:
    97
    Location:
    NE of YMML
    Balance:
    762Coins
    Ratings:
    +38 / 0 / -0
    My Motion Simulator:
    DC motor, AC motor, 4DOF, 6DOF
    You may be right Thanos. It all started with DCS and g-Seat-I only. The original plugin does matrix rotation for a resultant normal to the seat plane which is 6 modified outputs. Brilliant for SFX-100. I just needed pure surge, heave and sway output for the g-seat which is another 3 outputs, (normal to g seat plane?). I found that the fidelity of motion for the g-Seat-I was not proportional while on the ground. in the air, and between aircraft. This was accentuated when I started flying the prop aircraft. Hence the two extra output channels of data to feed into the seat to compensate. Now there is need for Fan control, belt tensioning system, etc. I was very happy with how things were progressing that way. The SFX-100 motion platform is new to me and a real game changer! Unfortunately I am still in the build stage with my g-Seat-II and SFX-100 rig and cannot start testing fidelity yet. Just laying out some ground work now. (BTW your AMC-AASD15A controller was a dream to setup, all I need to do is bolt the motors onto the frame and job done. Thank you!!)
    • Like Like x 1
    Last edited: Aug 11, 2019