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 Now a Download Plan!
  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. 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

2DOF DIY simulator - Brushless by cliojohn

Discussion in 'DIY Motion Simulator Projects' started by cliojohn, Aug 28, 2019.

  1. cliojohn

    cliojohn New Member

    Joined:
    Aug 14, 2019
    Messages:
    7
    Occupation:
    Automation engineer
    Location:
    Norway
    Balance:
    67Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, Motion platform
    I have finally started my project which is based on @Zennix design with brushless actuators. The goal and motivation is to use the motion simulator for flightsim, although I can see that racing is fun also. I have been purchasing 70% of the parts on the actuators and currently I am doing initial testing using the Odrive motor controller (2 channels). ZennixFramedwg.png
    • Motors: Dualsky EC 225KV
    • Actuator screws: ordered, more details to come
    • Encoders: AMT102-V
    • Power supply: 36V, 3 x 12V HP server supplies (still waiting for them to arrive)
    • Control cabinet: Old gutted PC mini tower to fit the server supplies, Odrive, emergency stop relay etc.
    • Frame and seat: Trying to source a cheap Playseat to modify + I have 30x30 steel tube for welding/cutting.
    • Design is still in progress, using Fusion360 for CAD.
    I am using a small ProFab 3D mini 3D printer to print parts. Already I have received and preliminary configured the Odrive motor controller as well as printed a base for mounting this into the mini tower.

    Starting off a bit backwards with focus on the brushless motors and control setup:

    First motor wired up and added a dummy 3D printed mounting plate for the AMT102-V mounting screws.

    AMT102-V Odrive pinout.png
    AMT102-V pins.png
    • Python 3.7.1 installed and added to PATH
    • Python -m Pip install odrive (due to admin rights on windows 10 run cmd as admin)

      The ZADIG TOOL http://zadig.akeo.ie/needs to be installed to ensure the USB drivers in windows is using the correct one for Odrive (here we can replace the existing interface drivers and set something which actually works..):
    • Use the Zadig utility to set ODrive driver to libusb-win32 (INTERFACE 2) Zadig config1.png
    • Check ‘List All Devices’ from the options menu, and select ‘ODrive 3.x Native Interface (Interface 2)’. With that selected in the device list choose ‘libusb-win32’ from the target driver list and then press the large ‘install driver’ button.


    For INTERFACE 0 - To be able to communicate to the Odrive via USB COM3; replace the winusb driver on Interface 0 with the USB serial CDC driver Zadig config2.png


    Run "odrivetool" and make sure it connects (WAIT 2 minutes!)
    It will use Interface 2 to connect there. From CMD: odrivetool + enter
    odriveconfig1.png


    If verboseoutput is required for more info:
    Odrivetool -v
    odriveconfig2.png


    Number of Pole pairs = 7 from default, this is OK for 14 magnets/2 = 7 as for the Dualsky 225kv motor.
    odriveconfig3.png

    The motor encoder configuration can be changed if required:

    From datasheet AMT102-v:
    Resolution selected via adjustable DIP switch, pre-set to 2048 PPR. All resolutions are listed as pre-quadrature, meaning the final number of counts is PPR x 4, so in odrive:

    odriveconfig4.png

    Again; no change is required, the encoder max steps will be 8192 (PPR x 4) so it is OK!

    Let us try to check on the position control
    odriveconfig5.png
    Result: Motor spins in a calibration setup after a beeping sound.
    This procedure first measures your motor’s electrical properties (namely phase resistance and phase inductance) and then the offset between the motor’s electrical phase and the encoder position.


    odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL Enter. From now on the ODrive will try to hold the motor’s position. If you try to turn it by hand, it will fight you gently. That is unless you bump up odrv0.axis0.motor.config.current_lim, in which case it will fight you more fiercely. If the motor begins to vibrate either immediately or after being disturbed you will need to lower the controller gains.


    SimTools:
    - Installed Live For Speed
    - Ran GameManager, patched up LiveForSpeed
    - Connected to COM3 using Interface 0 and the USB Serial CDC.
    SimTools1.png
    Select game profile, patch the game.



    Game Engine1.png

    Assign some axis setup. Testing only motor for Roll movement first.

    GameEngine2.png
    Setup communication.

    More exiting news to come. The motor works at least! Running only 15V for test purposes, but working OK.
    • Like Like x 2
    • Informative Informative x 1
  2. Ads Master

    Ads Master

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

    BiT0 Member

    Joined:
    Mar 13, 2019
    Messages:
    39
    Balance:
    225Coins
    Ratings:
    +6 / 0 / -0
    Nice! ODrive is a very interesting platform for BLDC dev.
    Following...
  4. PeterW

    PeterW alias Wickie

    Joined:
    Oct 21, 2018
    Messages:
    185
    Occupation:
    Dipl. Ing. Mb (FH)
    Location:
    Germany
    Balance:
    1,524Coins
    Ratings:
    +341 / 2 / -0
    My Motion Simulator:
    6DOF
    Hi cliojohn!
    wellcome at xsimulator!
    I am also working on a simulator driven by Odrive. Maybe you have already seen my thread here on the board (https://www.xsimulator.net/community/threads/wickie´s-6dof-sim.13660/) or at the Odrive-community?
    You did a very good dokumentation of how to set up a Odrive-System!! I think it will be very helpful for people that will use Odrive in the future.
    I wish you all the best for you project and please keep us up to date - thanks.
    regards Wickie
    • Like Like x 1
  5. cliojohn

    cliojohn New Member

    Joined:
    Aug 14, 2019
    Messages:
    7
    Occupation:
    Automation engineer
    Location:
    Norway
    Balance:
    67Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, Motion platform
    Thanks! I had not noticed the article before, but I have checked it out now. Great, and I will probably need some details on actuator design. I am also planning for a 1605 ball screw type actuator with BK12/BF12. I have ordered some parts but not all. I will need to post a topic here on the actuator build to summarize design vs. questions. All CAD file details on actuators are much appreciated.
  6. Will974

    Will974 Member

    Joined:
    Jan 11, 2020
    Messages:
    92
    Occupation:
    Industrial Ingeenering Teacher
    Location:
    Reunion Island
    Balance:
    704Coins
    Ratings:
    +95 / 0 / -0
    My Motion Simulator:
    6DOF
    • Like Like x 1
  7. cliojohn

    cliojohn New Member

    Joined:
    Aug 14, 2019
    Messages:
    7
    Occupation:
    Automation engineer
    Location:
    Norway
    Balance:
    67Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, Motion platform
    Finally. Time for an update! This project has not been prioritized a lot so it has come together really slowly. I now have the basic upper and lower frame ready for initial tests and currently working on getting the second linear actuator built. Earlier in this project (late 2019 and early 2020) I had most of the work on the frame done and the first actuator built. Also I have put together the power supply for the motors, using three 12V 1200W HP server power supplies. I did some simple tests as posted in 2019 with the brushless motors, but that was with a different power supply. What happened when testing with the 36V supply (3 x 12V) was a ground loop via the USB cable of my computer. That put the project on hold for months and left me in need for replacing the computer. Going back to the project this year, I solved the ground loop issue using an USB-isolator. Turns out that the Odrive board was fried in the ground loop incident, so I had to order a new one (expensive!). So far putting together the actuators has proved to be the most difficult task in this project. Still some bits and pieces for the limit switches and possibly some rubber end-stop parts will be added but it is now all starting to come together. Enclosed some photos, enjoy, happy building and I can post some details when I have time
    . 20210717_204354.jpg Actuator 1 bottom end motor and mount.jpg Actuator 1 glider bearing top end.jpg Actuator 1 motor with sensor assy.jpg Actuator 1 top end joint.jpg Actuator 2 ball screw assy.jpg Actuator 2 ballscrew mount.jpg Actuator 2 bottom end in progress.jpg Actuator 2 top end.jpg Actuator 2 top internal with bushing.jpg Frame rear top view.jpg Frame top view.jpg
    • Like Like x 2
    Last edited: Jul 26, 2022
  8. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    18,291
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    131,098Coins
    Ratings:
    +10,153 / 47 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Just checking how progress is going on the second actuator?
  9. cliojohn

    cliojohn New Member

    Joined:
    Aug 14, 2019
    Messages:
    7
    Occupation:
    Automation engineer
    Location:
    Norway
    Balance:
    67Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, Motion platform
    Hello! After a long break (fried mainboard and Odrive due to ground loop, COVID, work and kids), finally some vacation and time off, so I am working with the project (with one of my sons as a helping hand). :)
    Actuators:
    I have just about completed both actuators (some pinching in the movement on one of them, so need to do some re-alignment). I recently made some brackets for the limit switches, so these are now mounted and ready for testing. I have also replaced the end plates on the actuator which was originally 3D-printed, with new aluminium ones.

    Wiring for the actuators will then be:
    1. Motor power cables to the Odrive control unit Output power section
    2. Encoder signal cable to the Odrive control unit encoder input I/Os
    3. Limit switch cables to the Odrive control unit GPIOs

    Odrive and motor control:
    I purchased a new Odrive board after I fried the first one with a ground loop (floating DC supplies and grounding via USB without isolator). I purchased an USB isolator(! Use between Odrive and PC!) so when I got a replacement board, I could connect without problems. I struggled a lot with the replacement card as this would just trip on motor current limit. After a lot of trial and error, and after flashing firmware, I did another mistake, forgetting to reconnect the USB isolator, and fried board count = 2 (!!). Thinking, "this is it, I will not finish this project", I contacted OdriveRobotics explaining the situation. Due to my effort and details shared with OdriveRobotics support with configuring the second board, an agreement was made to send a replacement board for the cost of shipping & taxes only :) I made also a backup plan this time and ordered a "MakerBase" Odrive 3.6 clone. I have tested now running motors on both original and clone board, works fine.

    Basic steps for configuring has already more or less been documented above. I could add a note on the limit switches, you will find the documentation here to set them up:
    https://docs.odriverobotics.com/v/latest/endstops.html

    Power supplies and control cabinet:
    I added relays for emergency stop button to cut 230V power. The relay coils are triggered with 24VDC via the stop button. Connecting this now. I did some clean-up on 230V supply to the PSUs. I was looking for a decent way to connect signal wires between equipment and at the same time easily disconnect. I chose RJ45 wall sockets and CAT5 cabling. Using the pairs I need and keeping other pairs as spare.

    Some pictures attached showing some of the work. More to come, soon I hope.

    2022-07-26_22-33-40 - Odrive with isolator.png 20220726_Actuator 2 assembled.jpg 20220726_Control box content 2.jpg 20220726_Control box front panel.jpg
    • Like Like x 1
  10. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    18,291
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    131,098Coins
    Ratings:
    +10,153 / 47 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Sad about the drive but at least you are moving forward.

    Any further progress in getting the rig assembled, ready for testing?
  11. cliojohn

    cliojohn New Member

    Joined:
    Aug 14, 2019
    Messages:
    7
    Occupation:
    Automation engineer
    Location:
    Norway
    Balance:
    67Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    2DOF, Motion platform
    Summer holidays and "busy" with vacation, but during holidays I managed to find a stronger joint for the coupling between lower frame and upper frame, so will do some welding shortly and use that instead of the old steering wheel coupling joint. I did the configuration on the Odrive for the limit switches and initial test, but I need to check why the logic is not reading the input correctly. I think it is correct in config and I measured the voltage across pull-up circuit when toggling the switches, so should be OK. On the side line I tested a full motion sim with the kids,https://newtonflightacademy.com/, More to come soon on the build.