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

Showroom Blame73's 2DOF Seat Mover

Discussion in 'DIY Motion Simulator Projects' started by Blame73, Nov 20, 2014.

  1. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino

    Ahh, that's a shame, hopefully @Blame73 can add some comment.
    The Cytrons are very good drivers, beyond the initial startup issue theyve worked flawlessly for me for a couple of years.
    Sadly my understanding of the code that runs them is rather lacking & there may be an easy fix that I'm just blind too. Im guessing but there's probably a way to fool the arduino into thinking it's getting the right encoder value for the cytrons to start up & then swap over to the actual value.
    Anyways, sorry I couldn't be more helpful.
    Last edited by a moderator: Feb 10, 2023
  2. Bo Howell

    Bo Howell Member Gold Contributor

    Joined:
    Mar 4, 2020
    Messages:
    33
    Occupation:
    Product Specialist
    Location:
    New Sharon, Iowa
    Balance:
    119Coins
    Ratings:
    +24 / 0 / -0
    My Motion Simulator:
    6DOF
    You’ve been extremely helpful.
    I know it’s not just something I am missing now.
    Thank you for the feedback and it certainly does seem like a great driver if I can get this sorted out.

    cheers!
  3. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    571
    Location:
    Bruxelles
    Balance:
    1,942Coins
    Ratings:
    +296 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 4DOF
    These are the worst drivers I've tested... And that's probably why they're really cheap :)
  4. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Hi @Bo Howell and @p00ky ,
    sorry for my late answer.

    I know what you're talking about, it happened to me sometimes that the arms went too far (mostly because of a pot that started working not correctly and that sent huge peaks).
    In my case is impossible to move the levers by hand so I had to loosen the pots, rotate them and take them inside the allowed limits so that I can operate with SMC3 utils, then - once the rig is centered - restore the correct pots' positions.

    A solution could be to change the range in the arduino code so that when it happens you can make so that the target is inside the limits in the SMC3 tool (this way you can turn the motors on, recenter them, turn them off and restore the original limits).
    I had modified my range and let it commented in the code (you can find it looking for "// added for a narrower range (pot on the shaft) by Blame73"). If you want you can give it a try by modifying the range according to your needs (probably adding values by little steps and checking the results). of course this would just be a workaround

    @Wanegain I had no problems at all with the Cytron drivers, while I had some for example with Sabertooths (that I had replaced under warranty) not even mentioning Monster motor shields... I think a bit of luck is also involved here
  5. Bo Howell

    Bo Howell Member Gold Contributor

    Joined:
    Mar 4, 2020
    Messages:
    33
    Occupation:
    Product Specialist
    Location:
    New Sharon, Iowa
    Balance:
    119Coins
    Ratings:
    +24 / 0 / -0
    My Motion Simulator:
    6DOF
    Excellent!
    Thank you for the response and suggestions.
    I will give that a try and report back with my testing.

    Cheers!
  6. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    571
    Location:
    Bruxelles
    Balance:
    1,942Coins
    Ratings:
    +296 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 4DOF
    Or you can simply add a command you sent through the serial monitor with Arduino IDE to move motors without regarding the pot value (it's what I set in my last sketch). This is very useful when you exceed the value range of your pot :thumbs

    I tested 2*MDDS30 and 2*MDDS10.
    I was looking for a solution to replace the sabertooth (2x12 and 2x32) when they were out of stock worldwide... Maybe I missed something but these drivers are not stable, reliable or fast compared to Sabertooth or even IBT-2... Cytron drivers are used by DOFreality, and their lack of reliability is well established
    • Useful Useful x 1
  7. Bo Howell

    Bo Howell Member Gold Contributor

    Joined:
    Mar 4, 2020
    Messages:
    33
    Occupation:
    Product Specialist
    Location:
    New Sharon, Iowa
    Balance:
    119Coins
    Ratings:
    +24 / 0 / -0
    My Motion Simulator:
    6DOF

    Thank you for the suggestions as well.
    I will give that a try also.

    Cheers!
  8. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Could you share your sketch? That would be very useful :)
  9. Wanegain

    Wanegain Active Member

    Joined:
    Nov 6, 2013
    Messages:
    571
    Location:
    Bruxelles
    Balance:
    1,942Coins
    Ratings:
    +296 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 4DOF
    Of course, here is the link : http://codearduino.simukit.com
    I also wrote a full documentation (in french sorry) about my sketches : http://docarduino.simukit.com

    For example, you can see real time pots values using XP01C (for all pots, you can also select only motors you want to see).
    And you can move motors without regarding the pot value XP1+C (for motor 1) or XP1-C (to move in the opposite rotation)
    • Friendly Friendly x 1
  10. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    I finally had some free time so I started using my rig again.
    Since I had some noise on the signals I've redone all of the wirings, because I had splits, comjunctions, bridges, snurfs and all sort of things...
    Now I have one only wire from for each pin, it's nice and looks way better.


    BUT - because there's always a but - now I have a big problem I never had before (and I'm pretty sure it doesn't depend on wirings): once a motor turns off because reaching SMC3 limits, it doesn't turn on again.
    I put it back inside the allowed range but it doesn't turn on again. It reads no PWM at all.

    I tested this with different PSUs, different Arduinos, different Controllers and different motors, at first it works then once it turns off because of reaching the Max Limits it doesn't turn on again. Using the test buttons on the controllers the motors turn as they should.
    Could it be something related to SMC3? maybe a Windows update broke it? I never had this problem before (untill redoing the wirings these last sessions I didn't exceed the limits so I don't know if I already had this problem).

    @p00ky has it ever happened to you lately?
  11. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino
    Hey there Blame73,

    Glad to hear your back at it even with your big but(s) :D Sorry to hear your having issues.

    So I've been using my rig semi regually all the way through (and a little more in the past few days with the anouncment of "Dirt Rally 3", now known simply as "WRC") but havent had this issue I'm afraid.

    Now, my machine never hits max limits......... anymore.

    How it was setup originaly would allow the front end to ocasionaly dip too low on the odd/rare occasions. At that point the motor would turn off but always re engaged when it was brought back within max limits.

    As it was a nuisance I decided to tilt the machine back by a couple of degrees which eliminated the issue altogether.

    As ever I'm not very helpful :)

    Saying that, I've just finished work & once I've had a cup of tea & a little think, I'll try to miss-configure the machine & see if I can recreate the problem for you & let you know my findings.

    There's probably a simple, rational explanation. I'll report back shortly.
  12. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Hey, thanks for your answer.
    I was taking a look at the SMC3 code because I thought that it could be something related to the EEPROM, I supposed something like this: when an 'off the limits' happens, something is written to the EEPROM then when on next launch the EEPROM is red it still has that problem marked and it's not reset.
    I tried bypassing the first EEPROM read (in fact it starts with default values) but still I'm not able to start the motors again.
    I'll keep digging...
  13. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino
    So I've made you a little video showing you the test I did and uploaded it to youtube as an unlisted video. Youtube is taking it's sweet time processing the HD version but it is watchable right now (30 mins till HD processing is done).

    I think my test does suggest a code related issue in how it handles "max limits". Because I can physically make my motors turn against the worm drive I've been able to ignore it but some one recently (ish) had tried making a machine and couldn't get it to start the motors, as the controller never thought the machine was at default position. Anyways, Im explaining this badly :D

    Watch the video and you might see what I'm talking about.
  14. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Just saw the video. Yep, seems we have a problem with max limits.
    Are you scaling the range (as I do) or using the default one?
  15. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino
    I'm just using defaults, nothing crazy set here.

    Let me know if you need me to test anything. Always happy to help :)
  16. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    I think I found the problem, I'm probably sending you a new code tomorrow.
    Thanks
  17. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino
    Hey thats quick work. I'll be happy to give it a go and let you know if I have any issues. I'm guessing the fact I can move my motors by hand ment that I never had to deal with the issue. Anyways fixing it will no doubt help others in the future. Problems eventually lead to solutions...... which envitably lead to problems :D It's the circle of life my friend.
  18. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Ok, I modified the code and tested it; now it seems to be working fine for me with and without reverse force (PWMrev) that seemed to be the problem in my case.
    I also modified it in order to decrease the force in the clipping zone even when PWMrev = 0

    I'm sending you the updated code, if it works for you too I'll update it here.
    • Like Like x 1
  19. Blame73

    Blame73 Well-Known Member

    Joined:
    Nov 6, 2014
    Messages:
    1,210
    Location:
    Italy
    Balance:
    8,255Coins
    Ratings:
    +1,103 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    The new code works for me (MD30C) but is still to be adjusted for p00ky (MDDS30).
    I think it depends on the new modification that invert the motors in the Clip Input zone (as it does the original SMC3). I'm not a lover of this approach that's hard on motors and causes some strange behaviors like bouncing, so I think I'm going to just keep the 'slow down motors' approach when entering the Clip Input zone (as it does when pwmrev is set to zero).
    Tomorrow I'm posting here my mod.

    Meanwhile, since I redone all the soldering and wiring I decided to change the pots positions too.
    I had pots on the center of the shaft but this way I had very little range available, maybe 40° and I was losing a lot of informations.
    So I bought a 3D printer synchronous pulley (60 to 20 teeths) and built this
    image.jpg

    Now I have to buy two new hall effects pots, the ones I had before stopped working some months ago
    • Like Like x 1
  20. p00ky

    p00ky Active Member

    Joined:
    May 4, 2020
    Messages:
    109
    Occupation:
    Self Employed Laser Cutter
    Location:
    Wales
    Balance:
    350Coins
    Ratings:
    +56 / 2 / -0
    My Motion Simulator:
    2DOF, Arduino
    They are some pretty pulleys, for sure.
    • Friendly Friendly x 1