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

Question Noob who needs some direction with getting a GS-5 seat & Gbelt to interface with simtools

Discussion in 'SimTools DIY Version' started by Moe Colontonio, Dec 18, 2020.

  1. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    I recently purchased a GS5-G seat and G-Belt system that I added to the 5 dof SCN6 rig I built. Unfortunately, it seems that flight simulator support (X-Plane & DCS) for these things is non-existent, and I can't say I'm thrilled with the simcommander software. I was able to figure out the interface for the SCNs because there's plenty of info out there. The G seat & G belt not so much! I'm determined to figure this out myself, and I'm not afraid to cut this thing up, void the warranty, or any of that garbage. It's just a pile of motors, controllers, and wires, so there must be a way to make this thing work.

    Here's my total noob punch list:

    1. Figure out what type of motors are on these things
    2. Figure out what type of motor controllers are in these sealed black boxes they gave me
    3. Learn whether or not simtools can interface with the provided controllers

    I can't seem to find anything useful out there, as so few guys dropped the coin for these things, and it seems like they are all iracing types and so are happy with the simcommander interface. Any help anyone can provide is appreciated, I plan on tearing into this thing over the weekend.
  2. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,282
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    49,199Coins
    Ratings:
    +5,093 / 18 / -0
  3. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    • Informative Informative x 1
  4. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,282
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    49,199Coins
    Ratings:
    +5,093 / 18 / -0
    This is a total guess, but maybe worth a try.
    Code:
    BPS:115200
    DataBits:8
    Parity:None
    StopBits:1
    OutPutBits:7
    OutPutType:Binary
    StartupOutput:<241><64><0><67><241><64><1><68><241><64><2><69><241><64><3><70><241><22><63><122><63><122><63><122><63><122><122><0>
    StartHW:10
    InterfaceOutput:<241><22><Axis1a><0><Axis2a><0><Axis3a><0><Axis4a><0><0>
    PacketRate:5
    ShutdownOutput:
    <241><65><0><68><241><65><1><69><241><65><2><70><241><65><3><71>
    StopHW:10
  5. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    Tried it out, no joy, but the help is very much appreciated.

    So say we throw out the simxperience/simcommander interface and start from scratch. Below are the motors, 4 of these guys in the seat, 2 in the belt tensioner.

    No markings on the motors, but I'm guessing someone here could id them. Keeping in mind that I'm more caveman than programmer, what can I do to drive these using a simtools friendly interface?

    I have a Thanos board on order, as well as the materials to build 4 SFX100s and a traction loss. My current home built 5dof is SCN60 based, and I've overloaded it with the 100lbs of added G seat and G belt.

    80259 80260 80264 80261 80262 80261 80259 80260 80261 80262 80263 80264

    Attached Files:

    Last edited: Dec 19, 2020
  6. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,282
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    49,199Coins
    Ratings:
    +5,093 / 18 / -0
    So it sounds like its running 6 motors total, i only guessed for 4.
    We could probably do it just like the guy did with the v4 seat thread.
    Get a serial port sniffer and capture what gets sent to the seat.

    Save the output as a text file.
    Top line would probably be what to send for startup.
    Bottom line would probably be what to send for shutdown.
    Any one in between would be a movement command.

    Anyway, that's where i would go next i think.
    Chat soon buddy,
    yobuddy
  7. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    So I am using a serial port monitor from Eltima, but I'm for sure over my head here. COM 13 is the G seat, COM 14 is the belt tensioner. I started up one then the other while monitoring that port. I do see what looks like startup code around line 41, but it doesn't look anything like what I've seen in some other examples I've looked at here.

    The text files the monitor creates are gigantic. I also don't have an option to move the actuators in sim commander, or even test them.

    Attached Files:

  8. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    So it seems that simxperience has a way to write plugins for their software. Would I be able to somehow use Simtools to control these via UDP?

    Code:
    In an effort to ensure a reliable, quality experience, SimXperience will sometimes not support a game for the following reasons:
    
    -Game does not output telemetry data for consumption by 3rd parties
    -Game does not output sufficient data to meet SimXperience minimum standards
    -Game genre is not fitting
    -Gama data quality is poor
    
    The Sim Commander now allows third party developers to add support for games that are not currently supported by SimXperience.
    
    In no case do third party developers need to write a plugin to integrate with Sim Commander.
    
    Integration can be achieved via UDP. Data must be communicated on IP address: 127.0.0.1 and Port:10001
    
    A range 0f 60Hz to 250Hz will be supported. A 100Hz data stream would be ideal.
    
    The structure is as follows:
    
    <custom_udp>
    <float scale="1.0" channel="total_time" />
    <float scale="1.0" channel="paused" />
    <float scale="1.0" channel="yaw" />
    <float scale="1.0" channel="pitch" />
    <float scale="1.0" channel="roll" />
    <float scale="1.0" channel="yaw_velocity" />
    <float scale="1.0" channel="pitch_velocity" />
    <float scale="1.0" channel="roll_velocity" />
    <float scale="1.0" channel="yaw_acceleration" />
    <float scale="1.0" channel="pitch_acceleration" />
    <float scale="1.0" channel="roll_acceleration" />
    <float scale="1.0" channel="position_x" />
    <float scale="1.0" channel="position_y" />
    <float scale="1.0" channel="position_z" />
    <float scale="1.0" channel="local_velocity_x" />
    <float scale="1.0" channel="local_velocity_y" />
    <float scale="1.0" channel="local_velocity_z" />
    <float scale="1.0" channel="gforce_lateral" />
    <float scale="1.0" channel="gforce_longitudinal" />
    <float scale="1.0" channel="gforce_vertical" />
    <float scale="1.0" channel="speed" />
    <float scale="1000.0" channel="suspension_position_bl" />
    <float scale="1000.0" channel="suspension_position_br" />
    <float scale="1000.0" channel="suspension_position_fl" />
    <float scale="1000.0" channel="suspension_position_fr" />
    <float scale="1000.0" channel="suspension_velocity_bl" />
    <float scale="1000.0" channel="suspension_velocity_br" />
    <float scale="1000.0" channel="suspension_velocity_fl" />
    <float scale="1000.0" channel="suspension_velocity_fr" />
    <float scale="1000.0" channel="suspension_acceleration_bl" />
    <float scale="1000.0" channel="suspension_acceleration_br" />
    <float scale="1000.0" channel="suspension_acceleration_fl" />
    <float scale="1000.0" channel="suspension_acceleration_fr" />
    <float scale="1.0" channel="wheel_patch_speed_bl" />
    <float scale="1.0" channel="wheel_patch_speed_br" />
    <float scale="1.0" channel="wheel_patch_speed_fl" />
    <float scale="1.0" channel="wheel_patch_speed_fr" />
    <float scale="1.0" channel="throttle_input" />
    <float scale="1.0" channel="steering_input" />
    <float scale="1.0" channel="brake_input" />
    <float scale="1.0" channel="clutch_input" />
    <float scale="1.0" channel="gear" />
    <float scale="1.0" channel="max_gears" />
    <float scale="1.0" channel="engine_rate" />
    <float scale="1.0" channel="race_position" />
    <float scale="1.0" channel="race_sector" />
    <float scale="1.0" channel="sector_time_1" />
    <float scale="1.0" channel="sector_time_2" />
    <float scale="1.0" channel="brake_temp_bl" />
    <float scale="1.0" channel="brake_temp_br" />
    <float scale="1.0" channel="brake_temp_fl" />
    <float scale="1.0" channel="brake_temp_fr" />
    <float scale="1.0" channel="tyre_pressure_bl" />
    <float scale="1.0" channel="tyre_pressure_br" />
    <float scale="1.0" channel="tyre_pressure_fl" />
    <float scale="1.0" channel="tyre_pressure_fr" />
    <float scale="1.0" channel="lap" />
    <float scale="1.0" channel="laps_completed" />
    <float scale="1.0" channel="total_laps" />
    <float scale="1.0" channel="lap_time" />
    <float scale="1.0" channel="lap_distance" />
    <float scale="1.0" channel="track_length" />
    <float scale="1.0" channel="last_lap_time" />
    <float scale="1.0" channel="max_rpm" />
    <float scale="1.0" channel="idle_rpm" />
    </custom_udp>
    
    This structure is derived from the custom UDP format we use for Dirt 4. All units will follow Codemasters Dirt 4 standards. [NEED LINK HERE WHEN I CAN FIND IT AGAIN]
    
    General Concepts
    -Consumer will make new game record that properly launces a game and has the right 'Wait On' exe. This game record will reference the 'Open Game API - UDP' plugin.
    
    -Consumer will duplicate an existing profile and then edit it to reference their newly created game record
    
    -Consumer can optionally edit the launch tasks in their profile to automatically launch any third party apps or consumer can launch these manually, following any steps prescribed by the third party developer.
    
    NOTE: We've waivered back and forth a bit on MMF vs UDP in the last month or so. In order to simplify the testing process, we will focus on only UDP support moving forward. This ensures that X-Box and PlayStation developers have equal access.
  9. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,282
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    49,199Coins
    Ratings:
    +5,093 / 18 / -0
    Unfortunately, I think this is the input structure for their software, and not the output that is actually sent to the chair.
    I don't really understand the captured data file posted above.
    Maybe a different serial port capture software may make things easier?

    The real problem here is most of us don't have the same hardware you do to run any tests.
    But if i get any more ideas, I'll be sure to post.
    Take care,
    yobuddy
  10. Moe Colontonio

    Moe Colontonio Member Gold Contributor

    Joined:
    Dec 9, 2017
    Messages:
    118
    Location:
    New Jersey USA
    Balance:
    758Coins
    Ratings:
    +30 / 1 / -0
    My Motion Simulator:
    3DOF
    Here's a video of the output I'm seeing.

  11. Will0214

    Will0214 New Member

    Joined:
    Mar 31, 2020
    Messages:
    17
    Occupation:
    Software Development Engineer
    Location:
    Seattle & Hangzhou
    Balance:
    79Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, AC motor, Arduino, Motion platform
    have you figured it out?

    if not, here is my thought. You can ditch the whole control module from GS-5 and buy 4 of this stepper driver. STEPPERONLINE CNC Stepper Motor Driver 1.0-4.2A 20-50VDC 1/128 Micro-Step Resolutions for Nema 17 and 23 Stepper Motor

    and use arduino or whatever microcontroller you want to send pulses to the stepper drivers.