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

Showroom FlyPT - 6DOF Brushless DIY Actuators

Discussion in 'DIY Motion Simulator Projects' started by pmvcda, Aug 29, 2017.

  1. Peacemaker105

    Peacemaker105 Active Member Gold Contributor

    Joined:
    Jul 18, 2017
    Messages:
    147
    Location:
    Perth, Aus
    Balance:
    1,494Coins
    Ratings:
    +241 / 1 / -0
    My Motion Simulator:
    6DOF
    Cool, Thanks.
    Yeah basically the COG is the main thing i thought of, i think racing would feel more realistic with the pivot points across the center of the body. Main thing is I just don't have the expertise to do simulations like a lot of you to see if certain dimensions will cause a failure. My actuators are similar length to you guys so i was just going to hope copying your dimensions would offer similar rewards :) just thought i'd ask as i will be tweaking the dimensions a bit and wondering what i should be looking out for.

    What are your thoughts on actuator weight and affecting response/speed? surely it shouldn't matter a great deal except the extra load on the universal joints.. i was considering going aluminium plates over steel but not sure if the added cost is going to reap much benefits.. (i get mild steel for free)
  2. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    In my opinion, weight of the actuator doesn't affect to much on the result. The lower weight even less.
    The top of the actuator that connects to the top platform already is lighter by design. Unless you put there something crazy.
    • Like Like x 1
  3. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Trying to make an interface between work times...
    Well it's something to stay between SimTools and the ESP32's.
    It gets data from SimTools by a memory map.
    It also receives some information from the ESP32's with actuators current position.
    Then makes some calculations for inverse kinematics and speed calculation, sending pretended position to ESP32's.
    Not totally working. Missing some parts between the interface and the ESP32's.
    But it's getting there.

    Sem nome.jpg

    In the image, the red actuators are beyond limits, so it's an impossible pose for my actuators (3D drawing needs work).

    Why make this?
    -Easier to make some C# code and test than make ESP32 code and test... I have to be in the garage
    -Can collect info from all actuators from the two boards
    -Leave this load on the PC, specially to add some filters and speed calculation

    But the bad part is:
    -Add some extra delay

    I'm also thinking of using serial over Bluetooth. One of the advantages of the ESP32, but in my tests, I'm having trouble to disconnect and reconnect. Needs more testing, because when it works, it works well.
    • Like Like x 2
    Last edited: Oct 12, 2018
  4. Rooligan

    Rooligan New Member

    Joined:
    Jun 13, 2009
    Messages:
    8
    Occupation:
    Web developer @Qoden
    Location:
    Goor, Overijssel , Holland
    Balance:
    325Coins
    Ratings:
    +1 / 1 / -0
    That's some cool looking software. Looking forward to be able to visualize the feedback from the actuators.
    Maybe some graphs with response times etc.

    Have you seen the Hexpod software for the AMC1280USB? (http://hexpod.xyz)

    I've been playing with a Chinese bldc controller like the one you have. It's no good.
    The controller has a fixed soft start function and it takes about a second to switch directions and after that it takes some time to get up to speed.

    I've now ordered an other controller, the ZS-X11D. Will let you know the results.
  5. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    I'm aware of Hexpod, but I like to do my things and experiment... :p I'm a bit on the crazy side.
    What model did you try? I have no problems changing direction or getting speed.
  6. Rooligan

    Rooligan New Member

    Joined:
    Jun 13, 2009
    Messages:
    8
    Occupation:
    Web developer @Qoden
    Location:
    Goor, Overijssel , Holland
    Balance:
    325Coins
    Ratings:
    +1 / 1 / -0
    I love that you're making your own software. Just wanted to know if you knew the project. ;)
    The controller I used is the JYQD_V6.3E1.
    I will try the ZS-X11D next. If that doesn't work I'll order the wantai controllers.
  7. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    • Like Like x 1
  8. thecure

    thecure New Member

    Joined:
    Aug 21, 2011
    Messages:
    15
    Balance:
    - 91Coins
    Ratings:
    +2 / 1 / -0
    hi......question....if a buy this but is long 550 it's possible to have any problem? tks

    Attached Files:

  9. Rooligan

    Rooligan New Member

    Joined:
    Jun 13, 2009
    Messages:
    8
    Occupation:
    Web developer @Qoden
    Location:
    Goor, Overijssel , Holland
    Balance:
    325Coins
    Ratings:
    +1 / 1 / -0
    If you look at the first page of this topic, you can see which components are being used by pmvcda.
    Your image does not provide the diameter of the spindle. The topic starter uses a spindle with a diameter of 16mm.
    • Dislike Dislike x 1
  10. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Had some work to be done, and less time to dedicate to the motion rig.
    But here's some news:

    After some more profound tests, I found some problems:

    -Slower actuators have nothing to do with controllers.
    It's just lack of power from the PSU.
    So I need another one or some batteries. In reality, what I need is some €€€. :eek:

    -Making my interface, I found some electronic problems.
    My code was made to handle direct input from SimTools, so I mapped a range of 0 to 4095 into 0 to maximum_travel.
    This was hiding a wrong calculation of maximum_travel. The result was two actuators with less resolution, since they had 1/3 of the correct value.
    Now that I send absolute step position, I found two actuators travelling much less than the others???
    It was some bad contact in my boards.
    This was solved, so I also decided to change the voltage used for the hall sensors. My motors work with just 5V, so instead of 15V from the controllers, I use the ESP32 5V voltage.
    This put's less stress in the level shifters, that although they worked, they could misbehave with a voltage beyond the specs.
    I will update the schematics as soon as I can.

    -Until now and since I was mapping the values I never took a good look at the steps per turn.
    I was wrong :oops:. I have more resolution than I thought.
    Steps per revolution are given by:
    Electrical_angle = Number_of_poles/2 * Mechanical_angle
    In a 6 pole motor we have 6/2*360º = 3*360º = 3 electrical angles per mechanical revolution
    Since we have 6 step in each electrical revolution, we have 3*6=18 steps in each electrical revolution
    Nanotec DB59 - 6 poles - 18 steps per revolution (the motor I use)
    ACT/Longs/Wantai 57BLF03 - 8 poles - 24 steps per revolution (alternative cheaper motor, more resolution, but slower)
    So in reality, I have 18 steps for 5mm travel witch is a resolution of 0.28mm.

    -Changed the way calibration works.
    I was looking for minimum and maximum when switches where activated.
    Now I'm looking when they are released.
    I also add a tolerance, to avoid activation of switches in normal use.
    I keep checking if they are activated. In that case, position is corrected to minimum/maximum and travel is stopped.

    I'm also working on the interface that as a new look:
    Sem nome.jpg
    More news soon, maybe with a new video...

    Edit: Replaced image with latest version. It was an image of a previous one, very similar but only int's, less dimensions and 10 bits from simtools...
    • Like Like x 4
    Last edited: Nov 5, 2018
  11. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Latest update:



    The 6DOF interface in action!
    Before any comment, I know there's some squeaking. It's a mouse... ;)
    Well, no, I have some mechanical adjustments to make. Some washer springs to add and I think it's solve.

    One new problem detected. Some peaks in the values received from the boards.
    I will try to find the cause, but if I can't, I will apply a filter and ignore them.

    An old problem: Speed diference between actuators, perfectly visible in calibration at the start of the video.

    I think there's not much explanation about the interface, but I will answer any question.
    Take a look at the video...
    • Like Like x 8
    • Winner Winner x 1
    Last edited: Nov 10, 2018
  12. Spit40

    Spit40 VR Flyer

    Joined:
    Nov 3, 2016
    Messages:
    337
    Location:
    United Kingdom
    Balance:
    2,800Coins
    Ratings:
    +193 / 3 / -0
    My Motion Simulator:
    3DOF
    Great job. I can't wait to build one of these myself. That configuration system you built is very impressive- i couldn't see close enough, is it in english?

    I saw you switched a simtools setting to extra1. I use the acceleration DOFs all the time, does your config tool work with them. I can't quite get my head around the relationship yet between simtools and your application. With my 3dof the simtool values go straight to arduino to move the motors with just a little scaling work. How does it work with yours?

    Do you expect more speed when you upgrade the PSU? Are you happy with the motor strength you went with?
  13. JAD

    JAD Active Member

    Joined:
    Jan 17, 2016
    Messages:
    204
    Location:
    Australia
    Balance:
    1,433Coins
    Ratings:
    +140 / 3 / -0
    Really impressive. Well Done.
    I like how you can change PID while in motion.
    Its looks very close to finished!

    I see you are using the min and max length limits on the actuators to define the physical range(in the dimensions/setup).
    I noticed when you start the ESP32 boards, it looks like it calibrates by running to the min and max positions then park in neutral.
    Is this startup routine using both bottom and top limits switches to find the range? How does this relate to the software defined range?
    Or is it just homing to the bottom switch, then using the defined max-min delta to reach to upper position?
  14. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Yes, it's English.
    Changed to Extra1, because Extra1 is rear traction loss.
    I don't want the rig to point the North/South direction (value given by LFS to Yaw).
    That way, Yaw on the rig is the rear traction loss.
    With my interface, you use SimTools like you use in your case, but the axis output, instead of thinking of them as actuators, they are the pose: yaw, roll, sway...
    My interface then picks those values and converts them to actuator positions.
    So in my case, Actuator 1 in SimTools is sway on the rig, Actuator 2 in SimTools is Surge and so on.
    Certainly you can still mix what you want for each of the 6DOF.
    Besides calculating the positions of actuators for that pose, my interface also receives current positions and calculates the speed for each actuator.
    Advantage is that in a pose change you make each actuator arrive to destination at the same time even if one travels 50mm or 200mm.
    Also, I need the interface to get info from all 6 actuators, since I have to use 2 ESP32 that don't communicate with each other (although it's possible).

    So my current ESP32 code (like Arduino) is really simple.
    I just get a desired position and speed from my interface.
    I apply that to the controller.
    I also read the position to send to the interface.
    I will post the Arduino code after some cleanup, but it's really basic.
    Only special thing in the code, is the use of the second processor/thread to determine current position and the associated algorithm that uses tables to not loose position.

    I already have more speed. But in that video I had a lower maximum speed and I used a low P value so it was way softer and with a delay.
    Increasing P will be way faster and violent. I show it in the video, but not for big values.
  15. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    You can change everything while in motion. Even sizes, and that has no logic to be done (maybe minimum and maximum extension).

    When I start the ESP32, first thing they do is calibrate the actuators.
    I search minimum. It's when the switch is pressed and make that position zero.
    Then I go up and count steps until switch is pressed and make that the maximum.
    But it doesn't end here.
    I send the values of each actuator to my interface. You can see them when I press the DEBUG button in the lower left of the screen.
    In the interface I select the lowest one and recalculate the maximum length of the actuator, based on 5mm per turn and 18 steps per turn (for my motors).
    So min length is a measured value in the rig, when the rig is at zero position and maximum is the minimum plus the calibration value.
    I don't know if this was implemented in the video already. I think so.
    You can change maximum if you want, but after calibration, if you have the interface connected, maximum is updated.
    I also have another value that I call Top and bottom crop. That's the number of steps I want to remove from minimum and maximum to ensure switches are not activated.
    So for the interface, minimum becomes that value and maximum is subtracted of that value.
    Why?
    Because the ESP32 has a safety code that makes position zero/maximum when switches are activated.
    Resuming:
    If minimum is 0 and maximum is 1500 sent by the ESP32 calibration and if top and bottom crop is 20.
    Then the interface sends to the ESP32 values between 20 and 1480.
    Now, if in the ESP32, one of the switches is activated because of some drift in positioning, position is immediately corrected.
    • Like Like x 1
    Last edited: Nov 10, 2018
  16. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Some more explanation:
    image4493.png
    • Like Like x 1
  17. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Solved the different speed problem! :D

    First I said it could be the controllers...
    Then the PSU...

    So, again, I changed everything, connected, disconnected and the problem was:

    The controller!

    So I remembered that some time ago I burned one and took a look inside.
    In one corner there was a small pot...

    Yes a pot!
    With the help of my Interface, I adjusted the pot's of the controllers that where slow and VICTORY :cheers

    So here's the inside of a BLDC8015A (pot at top left in blue with a screw R40):
    WP_20181112_17_41_57_Rich.jpg
    Turn right, faster.
    Turn left slower.

    I used my interface and moved the rig up and down (heave).
    WP_20181112_17_46_06_Rich.jpg

    That makes actuators move the same length.
    The blue lines are the current position and the black ones the requested position.
    We can see the actuators that lag.
    Graphic before adjustment (only one actuator left to adjust):
    with error.jpg

    And after adjustment (all actuators):
    Adjusted.jpg

    I also received a ZL180 24V 200A relay.
    Mounted it on the emergency switch, so now it's safer and more durable.
    WP_20181112_17_02_57_Rich.jpg
    • Like Like x 4
  18. xiatian

    xiatian Member

    Joined:
    Sep 5, 2017
    Messages:
    78
    Location:
    Xi'an, China
    Balance:
    282Coins
    Ratings:
    +28 / 0 / -0
    My Motion Simulator:
    2DOF
    Hello, I have been paying attention to your project. I am not good at English. I am using Google Translate. I ordered a 440W brushless motor. After the esp32 board is connected, the motor is not working. Sometimes the motor turns, the micro switch does not respond. I hope I can. Get help, thank you
  19. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    What motor and controller?
    What code did you use?

    EDIT: Found your build thread, I will take a look.
    • Like Like x 1
    Last edited: Nov 12, 2018
  20. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,413
    Location:
    Portugal
    Balance:
    10,998Coins
    Ratings:
    +1,478 / 13 / -0
    My Motion Simulator:
    6DOF
    Updated electronics schematics in first page.
    Also added the latest video (removed the older ones)
    Added info about the interface program with updated diagram:
    Interface.png

    One of the changes was the bytes sent as start of info.
    This sequence of values only happens if I send them. Never as a composition of position and speed.