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.

Tutorial Simple Digital Scope for Motion Sim Testing

Discussion in 'SimTools compatible interfaces' started by RufusDufus, May 10, 2014.

  1. RufusDufus

    RufusDufus Well-Known Member

    Joined:
    Jul 21, 2013
    Messages:
    681
    Location:
    Adelaide Australia
    Balance:
    12,356Coins
    Ratings:
    +833 / 7 / -1
    Here is a basic Digital Scope specifically designed for use with motion simulators. It’s primary purpose is to help you understand how well your motion simulator is tracking the motion cues sent out by the game via Simtools.

    motiontrack4.JPG

    Some details:
    • Can monitor Simtools output without any additional hardware
    • Requires a dedicated Arduino UNO (others may work but untested) to monitor your Simulator motion
    • Can be used to monitor any controller – Arduino, JRK, others (as long as they use 0-5V POTs as feedback)
    • Monitor up to 3 motors at once
    • Minimal setup required
    • Configured for use with Simtools
    • Track and compare position targets and motor feedback
    • Can run on a separate networked computer
    • Easily create .bmp snapshot of the chart display
    IMG_0092.JPG

    Setting up:

    (*** If you just want to monitor Simtools output you can skip the Arduino steps ***)

    Step 1 – get yourself a spare Arduino UNO and upload the SimpleScope.ino sketch file (included in .zip file)
    Step 2 – copy the motiontrack.exe and motiontrack.ini to the computer you plan to run it on
    Step 3 – update the motiontrack.ini file with the correct comm port number that your SimpleScope Arduino connects on
    Step 4 – connect the SimpleScope Arduino to the computer and start the motiontrack.exe program

    At this point the MotionTrack should be running and receiving data from the SimpleScope even if though SimpleScope is not connected to your Simulator. In the bottom right of motiontrack.exe you should see that it is receiving serial data at approx. 500 pkts/sec. If this is very different there may be a problem. At this stage there will be 0 pkts/sec UDP data because we haven’t set it up. If you touch one of the bare wires connected to SimpleScope AN0, AN1, or AN2 inputs you should see movement (noise) on the MotionTrack display.

    Step 5 – carefully connect the GND wire of SimpleScope to a GND on your simulator (make sure you don't touch any power signals)
    Step 6 – carefully connect one of the SimpleScope input wires (AN0, AN1, AN2) to the center pin of a motor feedback POT

    At this point you should be able to monitor the actual movement of your simulator. Give it a try, run a game and see if the motor position is displayed on the MotionTrack screen. You can connect upto three motor POTs. There are checkboxes at the bottom of MotionTrack screen that enable you to turn on/off the various signal traces. These inputs are the motor “Actual” position traces. Once you have this working continue on to setup Simtools so the “Target” positions can be displayed by MotionTrack. MotionTrack gets this data from Simtools using a UDP interface.

    Step 7 – open Simtools Game Engine and goto a new “unused” interface tab
    Step 8 – setup for NET interface, enter the IP address of the computer running MotionTracker, use 127.0.0.1 if on the same computer. You can also use 192.168.1.255 to broadcast to all 192.168.1.xxx IP addresses.
    Step 9 – Enter UDP Port 20017 (unless changed in motiontrack.ini)
    Step 10 – Set for 16bit binary output
    Step 11 – Output string [<Axis1><Axis2><Axis3>] and set 1ms delay.
    Step 12 – Save the settings

    You MUST include all three Axis in the output string even if you don’t use 3 axis. If all goes well, when you now run a game the MotionTrack should show approx. 500 pkts/sec UDP data in the bottom left of the screen. You should also see the “Target” traces on the screen moving as you drive round the track.

    InterfaceSetup.JPG

    Ideally the “Target” and the “Actual” signal traces run exactly on top of each other ie perfect tracking. This will be unlikely but the goal is to get it as close as possible by tweaking your controller setting or adjusting the simulator mechanical arrangements. If your controller does any scaling to the target or feedback signals then this will be seen as the target and feedback appearing on screen with different scales – if this turns out to be a common problem I will look for a solution.

    Use the checkboxes to turn the respective traces on and off.

    The "Invert" checkboxes flip the "Actual" traces upside down - use this if they are moving the opposite direction to the "Target" traces.

    The "Align traces" checkboxes move the "Actual" trace directly on top of the "Target" trace at the point in time you click the checkbox on. If it doesn't look right click it off and on again. This is best done when the game/simulator is parked - ie running but not creating any movement.

    I would be curious to see the results from different setups to see if there are any particular mechanical or controller setups that inherently track better than others.

    Attached Files:

    • Like Like x 11
    • Winner Winner x 9
  2. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    you have more time than me
  3. RacingMat

    RacingMat Well-Known Member Gold Contributor

    Joined:
    Feb 22, 2013
    Messages:
    1,926
    Location:
    Marseille - FRANCE
    Balance:
    17,825Coins
    Ratings:
    +1,834 / 16 / -2
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Very good idea @RufusDufus :thumbs
    I'll try this as soon as I got a new simulator!

    By the way, I was thinking on something that could be complementary... but it will wait after my sim building!
    yours
  4. BlazinH

    BlazinH Well-Known Member SimTools 2.0 Beta Tester

    Joined:
    Oct 19, 2013
    Messages:
    1,551
    Location:
    Oklahoma City, USA
    Balance:
    11,240Coins
    Ratings:
    +1,374 / 28 / -1
    This looks to be very useful for members that are having problems they need to solve or just want to know! Thanks for the effort you put forth @RufusDufus ! :thumbs
  5. RufusDufus

    RufusDufus Well-Known Member

    Joined:
    Jul 21, 2013
    Messages:
    681
    Location:
    Adelaide Australia
    Balance:
    12,356Coins
    Ratings:
    +833 / 7 / -1
    @bsft, @eaorobbie, I have responded here to avoid continued hijack of other thread...

    I just had a closer look at Simtools output with different packet delay settings using the MotionTrack above and see what you mean. I had assumed that because it had a 1ms option that is what was coming from the games.

    Thanks for the info.
    • Like Like x 1
  6. RaceRay

    RaceRay Administrator Staff Member SimAxe Beta Tester SimTools 2.0 Beta Tester

    Joined:
    Nov 8, 2006
    Messages:
    4,612
    Occupation:
    Self-employed | Web and application development
    Location:
    Hamburg, Germany
    Balance:
    24,532Coins
    Ratings:
    +1,125 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, SimAxe, SimforceGT
  7. eaorobbie

    eaorobbie Well-Known Member Staff Member SimTools Developer Gold Contributor SimTools 2.0 Beta Tester

    Joined:
    May 26, 2009
    Messages:
    2,593
    Occupation:
    CAD Detailer
    Location:
    Ellenbrook, Western Australia
    Balance:
    19,380Coins
    Ratings:
    +1,621 / 22 / -2
    My Motion Simulator:
    2DOF, DC motor, JRK, SimforceGT, 6DOF
    This can be already be done within the Jrk software without connecting anything extra or having SimTools send anything extra too, but will be handy for testing other systems.

    Some axis labelling and sizing would be handy or like the jrk allows us to actually just track the error of the two values, thus allowing you can change the pid on the fly while tracking the error to tune it to a min.
    Handy , I have my error down to under 2% of the pots value now Im not using halls anymore , before couldn't get it under 8% because of the noise on the Hall effects.

    Nice project.

    Will run a test thou, why not.
  8. ericRacer

    ericRacer You get old because you stop playing ! Gold Contributor

    Joined:
    Jun 11, 2009
    Messages:
    219
    Occupation:
    Pilot
    Location:
    Canada, Quebec
    Balance:
    4Coins
    Ratings:
    +99 / 2 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform
    Hi,
    another beautiful and very useful application for DIYers!
    Congratulations! good idea!
    :thumbs
  9. ericRacer

    ericRacer You get old because you stop playing ! Gold Contributor

    Joined:
    Jun 11, 2009
    Messages:
    219
    Occupation:
    Pilot
    Location:
    Canada, Quebec
    Balance:
    4Coins
    Ratings:
    +99 / 2 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform
    Definitely sabertooth + kangaroo is not made to operate a racing sim. (good for a flight sim but not a racing sim!). When I replaced my S+K by my MM+Arduino (SMC3), the difference was huge. Sabertooth works fine but the response time is too slow. I've never been able to feel the little bumps as with my MM. Here are some images that speak for themselves.

    With MM on a F1 at Spa.:
    F1_spa.jpg


    MM again at Spa :

    test_1.jpg

    and now sabertooth :

    f1_spa_sabertooth_2.jpg

    Thanks @RufusDufus for your digital scope ! :thumbs

    Eric
    • Informative Informative x 2
  10. RufusDufus

    RufusDufus Well-Known Member

    Joined:
    Jul 21, 2013
    Messages:
    681
    Location:
    Adelaide Australia
    Balance:
    12,356Coins
    Ratings:
    +833 / 7 / -1
    @ericRacer, the MM looks like it is setup very well. :thumbs A great example of how well they can work!

    The sabertooth looks like something is not working? more like it is just producing random shaking than actual motion tracking?

    Good to see someone using the software... The reason I made this software is so anyone can see how well there setup is performing which is useful if you have never tried anyone else's for a comparison. I suspect there are alot of sim users out there that could tweak there setups to get better results?
  11. ericRacer

    ericRacer You get old because you stop playing ! Gold Contributor

    Joined:
    Jun 11, 2009
    Messages:
    219
    Occupation:
    Pilot
    Location:
    Canada, Quebec
    Balance:
    4Coins
    Ratings:
    +99 / 2 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform
    I totally agree. See, what's really going on with our engines versus the signal is a necessity. For me it was the day and night difference. I used my Sabertooth long for the simple reason that they were more powerful than my MM, 2x25amp and connected to 24v. but I did not realize that I was losing all the small details. Now it only remains for me to wait for my new MM and connect them in parallel to obtain more power.

    Your software is very good and useful, it should be sticked.
    • Agree Agree x 2
  12. SeatTime

    SeatTime Well-Known Member SimTools 2.0 Beta Tester

    Joined:
    Dec 27, 2013
    Messages:
    1,985
    Location:
    Newcastle Australia
    Balance:
    25,017Coins
    Ratings:
    +2,312 / 20 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    Excellent work. Very useful application for the non-JRK users out there. I could not have reliably setup my PID without a similar system that comes with the JRKs utilities. Remember the Optimum PID will be slightly different on every SIM, due to differences in the rigs motors power&torque, axial loads, friction and inertia.
  13. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    544
    Location:
    Bruxelles
    Balance:
    1,234Coins
    Ratings:
    +268 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    It can be very useful to set correctly the PID ! I'll test it soon. Thank you :)
  14. RacingMat

    RacingMat Well-Known Member Gold Contributor

    Joined:
    Feb 22, 2013
    Messages:
    1,926
    Location:
    Marseille - FRANCE
    Balance:
    17,825Coins
    Ratings:
    +1,834 / 16 / -2
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Here are some pictures to illustrate the connections:

    Arduino:
    Scope RufusDufus (2).PNG

    or JRK wiring:
    Scope RufusDufus (1).PNG

    @RufusDufus : is it correct? :)
    • Useful Useful x 2
    • Like Like x 1
    Last edited: Jan 13, 2015
  15. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    544
    Location:
    Bruxelles
    Balance:
    1,234Coins
    Ratings:
    +268 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Ok ! So the best way is to use 2 Arduino for me with hook gripper cables.
    Maybe tonight I'll test it (my config is Arduino + Sabertooth 2x25 in serial mode)
  16. ericRacer

    ericRacer You get old because you stop playing ! Gold Contributor

    Joined:
    Jun 11, 2009
    Messages:
    219
    Occupation:
    Pilot
    Location:
    Canada, Quebec
    Balance:
    4Coins
    Ratings:
    +99 / 2 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform
    @RacingMat
    nice work and well done. :thumbs
    But I wonder why you drew the + 5v. between 2 Arduinos, I do not see the utility of it :confused: they are already connected via the usb cable and gripper cables needs only the ground.
    • Useful Useful x 1
  17. RacingMat

    RacingMat Well-Known Member Gold Contributor

    Joined:
    Feb 22, 2013
    Messages:
    1,926
    Location:
    Marseille - FRANCE
    Balance:
    17,825Coins
    Ratings:
    +1,834 / 16 / -2
    My Motion Simulator:
    2DOF, DC motor, Arduino
    • Like Like x 1
  18. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    544
    Location:
    Bruxelles
    Balance:
    1,234Coins
    Ratings:
    +268 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Hi !

    I receive my new hook gripper cables today, I hope testing them tonight.

    I wonder if in the Ard code you don't need to set the range of pot (and make a map) because they are used on less than 1024 points (in my case they are using 900 points) ?
    And what do you think about to set Axis on 10 bits (instead of 16) like pot to avoid a conversion ?
  19. stamer57

    stamer57 Member

    Joined:
    Jul 18, 2015
    Messages:
    33
    Location:
    France
    Balance:
    846Coins
    Ratings:
    +27 / 0 / -0
    My Motion Simulator:
    2DOF
    Bon travail.
    Je vais l'essayer sur mon DIY simulateur. Je pense que c'est bien pratique pour voir si tout fonctionne correctement.
    Moi j'utilise Arduino Uno avec Sabertooth 2x32.
    Je posterai une image du résultat.
    Merci

    Good job.
    I'll try it on my DIY simulator. I think a good way to see if everything is working properly.
    I 'm using Arduino Uno with Sabertooth 2x32 .
    I'll post a picture of the result.
    Thank you
  20. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    269
    Location:
    Germany
    Balance:
    2,244Coins
    Ratings:
    +243 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    Hello,
    many thanks for creating this software and tutorial. It is very detailed. I hope this will help me to find the fault in the electrics.