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.

Hoddem's DIY Linear Actuator

Discussion in 'DIY Motion Simulator Projects' started by Hoddem, May 23, 2017.

  1. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I’m using a usb to serial converter. Spark fun FTDI basic 3.3v board. No particular reason other then I had one in my box of parts and it worked.

    https://www.sparkfun.com/products/9873

    I am connected directly to the kangaroo with the usb to serial converter using 3 wires going to tx-s1, rx-s2, g-g (serial-kangaroo).

    8478EA96-215B-47BF-A7A0-6EAA89D88D8B.png
  2. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    ok it appears that with ard a jumper from reset to ground holds processor in reset and frees pins 0, 1, to be used freely as ttl converter. seems pretty simple.

    edit: this method is known as tristate mode.
    Last edited: Feb 24, 2018
  3. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    why the <13><10> command? I only see those commands on the sabertooth manual. no reference on the kangaroo? sorry but i'm slow.

    edit: lol <13> ascii code for enter, carraige return, newline. the <10> is the code for line feed
    told you I was slow...ty @Hoddem
    Last edited: Feb 26, 2018
  4. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I just assumed that was a carriage return or new line or something and required for each individual command but I don't know for sure.
    • Informative Informative x 1
  5. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    so after speaking with joshua @ us digital he explains that the e2 series encoders are push-pull (hi-low) and shouldnt need pull up resistors at the kangaroo. although he also stated it could be a solution if you are getting interference.
    Last edited: Feb 26, 2018
  6. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    Good to know, I haven't been getting any interference since I started using the E2 encoder, I did buy the shielded cable from us digital though and took care to keep my encoder cable away from the motor power wires.

    the cable I bought was.

    CA-LC5-SH-NC-6


    Cable Assembly, Shielded cable, LC5 Connector to No Connector, 6 ft length

    On my other actuator I was having a lot of problems, but I never did determine if it was the encoder (sparkfun 10932) or the limit switches.
    • Informative Informative x 2
  7. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I don't think the carriage return <13> command is required for the kangaroo, I just did a little testing and it doesn't seem to be doing anything.

    Test 1
    Start - 1,start<13><10>1,home<13><10>1,units65535=1900<13><10>
    Interface - 1,p<Axis1a><13><10>
    Shutdown - 1,powerdown<13><10>
    Result in serial monitor
    1,start
    1,home
    1,units65535=1900
    1,p32767
    1,p32767
    1,powerdown

    Test 2
    Start - 1,start<10>1,home<10>1,units65535=1900<10>
    Interface - 1,p<Axis1a><10>
    Shutdown - 1,powerdown<10>
    Result in serial monitor
    1,start
    1,home
    1,units65535=1900
    1,p32767
    1,p32767
    1,powerdown

    Test 3
    Start - 1,start<13>1,home<13>1,units65535=1900<13>
    Interface - 1,p<Axis1a><13>
    Shutdown - 1,powerdown<13>
    Result in serial monitor

    upload_2018-2-26_11-32-10.png

    The commands all run together, however when I try to copy and paste the code the computer automatically adds the new line like so
    1,start
    1,home
    1,units65535=1900
    1,p32767
    1,p32767

    all of my testing is using just a virtual serial bridge and the arduino serial monitor so I will have to test this out on the actual kangaroo when I get a chance.
    • Informative Informative x 2
  8. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    ok @Hoddem after reading the manuals I notice the units command should be placed after the start command but before the home command. also a quick question are you getting limited movement? I think simtools outputs 0 to 255 but for the kangaroo 0 is the middle of its range, it goes from -128 to 128 so something will need to be written to adjust that so the output is correct.

    @yobuddy is there an easy way to subtract 128 from each position command output by simtools?
    Last edited: Feb 27, 2018
  9. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0

    Simtools output depends on how many bits you choose.
    I’m running 16 bit decimal output so simtools sends 0-65535. The kangaroo using the scale function maps my travel range of 0-1900 lines to 0-65535.

    I have full range and no centering issues. If you are getting travel issues you probably have a setup error. Maybe post all of your describe and simtools settings.

    Also the home command can be setup so that it is run once at power up. That way you don’t have to home each actuator every time you start a game. I think a limit switch is required for startup homing though.
  10. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    this is a quote from the kangaroo packet serial manual page 9 it reads as follows.

    "Units Sets custom units for a channel. If you do not set custom units, the units you have set up in DEScribe will be used. If you haven't set any, machine units will be used. This command may be called after you start the channel but before you home it. Command Format The command number for Units is 33. Its data is: Channel Name (1 byte) Flags (1 byte) 0 for no options. 64 if a sequence code is used. Sequence Code (optional, 1 byte) Desired Units (bit-packed number) The amount in your units that correspond to the specified amount of machine units."
  11. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    Pretty sure we are running simplified serial not packet serial
    • Informative Informative x 1
  12. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    Here are the simplified serial commands from the manual
    C1538224-4ED1-486C-9068-E8BEE853D0D8.png
    • Like Like x 1
  13. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    sweet ty for clarifying that for me. I told you i was slow. yes its simplified. I was looking at smc3 which is packet serial and just assumed. I am just hooking up the electronics for the first time. so following your example I should be just fine. thanks again @Hoddem you have already saved me time and educated me a bit. :)
  14. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    No problem, can’t wait to see your finished actuator.
    • Friendly Friendly x 1
  15. PaulB

    PaulB Titanium2dof

    Joined:
    Apr 15, 2017
    Messages:
    73
    Location:
    Canada
    Balance:
    346Coins
    Ratings:
    +32 / 0 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    6DOF 2.jpg 6DOF 1.jpg

    The cylinder spins on this. (be cool if they were all striped)
    Designed for easy maintenance, good thing with 6 cylinders.
    Belts should reduce some of the noise.
    Adjustable gear ratios.
    Fairly simple to build.
    Easy access to components.

    I still like my 2dof so someone else can fave the honer of being the first to build : )
    Model needs to be cleaned up some, but I think it works!
  16. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    Interesting concept, it would be neat to see a working model.
  17. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I had a chance to get some additional testing done tonight, Here I am running positional commands in describe to show the accuracy of the actuator.
    My actuator is 1900 lines of travel so when I scale 1-1 or units1900=1900 one position should be .2mm, when I scale units7600=1900 one position should be .05mm

    Here is what I found




    2018-02-27 22_33_41-Greenshot.png



    These numbers are going to be best case, no load and small movements. I will have to repeat the test again with a load at some point. Based on what I was told by dimension engineering the actuator will always be in "1/4 step mode" as long as my simtools output is greater than 0-7600 (13bit or greater).
  18. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I hooked up the actuator to my simrig just to test the output. Unfortunately the video doesn't do a very good job of capturing the screen, but it was the best I could do.
    I am running the rally car on the Daytona short course, the actuator is setup as 100% extra-2 (heave-1g) and I have the tuning center a +/-2.00 so I am getting a lot of movement. I also don't have game sound so I am driving like crap (amazing how much that makes a difference). The actuator is strapped to a bar-stool and every time it changes directions it spins and clanks against the stool leg so that is the noise you hear. It's pretty smooth on the tar, but as soon as I hit the dirt it really starts jumping. Make sure to watch the big finish (don't ever take your eyes off the road:))

    • Like Like x 6
    • Winner Winner x 2
    • Funny Funny x 1
  19. bruce stephen

    bruce stephen Hammer doesnt fix it, must be electrical

    Joined:
    Jun 7, 2015
    Messages:
    1,292
    Occupation:
    general contractor
    Location:
    michigan
    Balance:
    8,980Coins
    Ratings:
    +1,223 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform, 6DOF
    i think i got a faulty kangaroio. i cant get it to connect (describe)no matter what i try. got a teach tune done and it moves but describe wnt find the kangaroo, 4 different arduinos both hardware and software serial couple different cables.. it doesnt make any sense. 2 different computers also. I'm pumped to see your actuator kickin butt too cool. it looks like it will be awesome with 6..
  20. Hoddem

    Hoddem Well-Known Member

    Joined:
    Sep 27, 2016
    Messages:
    336
    Occupation:
    Engineer
    Location:
    Minnesota, USA
    Balance:
    2,827Coins
    Ratings:
    +535 / 2 / -0
    I would pick up a usb-serial converter, Somewhere in all of the describe documentation they have a recommendation.

    Also you can remove the kangaroo and try to connect to the sabertooth directly. If that doesn’t work it is probably the Arduino method.

    Do you have tx, rx and ground connected to the Arduino, and the sabertooth is powered up.