Jump to content

Honey, I developed FFB joystick (DIY)


Recommended Posts

On 11/13/2021 at 5:59 PM, slimheli said:

Okay. So I just want to summarize where things are at here. @walmis is working on building a kit that is basically a full re-design of @propeler's original design. I've been working on my own FFB design using ODrive and the MS FFB gimbal as inspiration for way too long and the designs I'm seeing here blow mine out of the water.

So if I wanted to try building this, which repository would hold the best CAD's for me? Walmis' repository just has a STEP file for the box. Propeler's repository has the first version of his design, but it looks like he moved way past that with the latest iteration.

Anyone have some input as to where to begin? I already have an ODrive and two of the D5065 motors with a good power supply. And I've got a 3D printer.

Thanks for all the effort you guys have put into this!

Depends on how comfortable you are with fabricating tbh - in my case I tried to simplify the mechanics to the point that no CAD was needed - the gimbal is the most complex part and admittedly needs some basic machining to make, but it's not overly complicated. mostly off-the-shelf parts which have been modified/carved into shape.

Mine's direct-drive from the motors to the gimbal, and uses the hoverboard motors both as the means of powering the system, as well as mounting, bearings and shafts - so no need for gears/belts etc, just a relatively simple MDF box (which I've further reduced in size compared to the previous pics/vids I posted) to which the motors are bolted along with the aforementioned gimbal.

I'll get some more pics soon to show the latest state.

@propeler Your current iteration looks totally amazing, that silver tower looks glorious!


Edited by SquidgyB
Link to comment
Share on other sites

On 11/14/2021 at 4:59 AM, slimheli said:

Walmis' repository just has a STEP file for the box.

I take it you're referring to this file: https://raw.githubusercontent.com/walmis/FFB-Joystick-Base/master/CAD/BOX-8mm-plywood-6374_motor.step

I've been trying to work with this but can't find a program to open it. I have tried several STEP viewers (including Fusion 360) and every one fails to open saying the file is either corrupt or invalid. Have you had any luck opening the file?

I too have a 3D printer and wanted to have a go at printing it.

Link to comment
Share on other sites

I'm starting a build of one of these using a resin printer. Using siraya blu/tenacious mix.

The frame arm needed some small modifications to get it to print. Once I have it all together and I trust the strength/dimensions of the print I'll post my modified/supported stls.

Planning on using an odrive, 6354-60kv motors with as5048a encoders.

 

20211118_162902.jpg

frame arm change.png

pulley pic.png


Edited by theperson
  • Like 2
Link to comment
Share on other sites

Nice!

I take it that the lugs that hold that second "inner" axle are printed as separate pieces and attached after. It looks like that would lend itself well to mounting the logs on the other side of those arms to give the off-set gimble others have mentioned. Exactly how that would connect to the belt and mesh with the motor remains to be seen but from this point it looks like it could well be doable:
image.png

How do you think those parts would go being used to create a mold from which to cast mettle pieces?

Is it feasible to cast pieces with through holes in them like those? If not, perhaps one could cast a piece with "starter divots" that are then drilled out after.

Link to comment
Share on other sites

On 8/1/2021 at 1:31 PM, TomVR said:


first pass on my adjustments

https://github.com/TomHVR/FFB-Joystick-Base/tree/master/CAD

I've got the holes for the countersunk M3 screws as parameters so they can be adjusted either for putting in brass inserts or tapping directly. I also want to design cam and rollers like the object-77b as a counterweight, as the grip I am putting on is from a Tornado GR4 and is very heavy casted aluminum, and having spring centering will both reduce the strain on the motors and let me test the stick before getting the motors running.


I when I have some time again I'm also gonna add a parameter to adjusting the tolerances on the tabs since there is zero in the design as the laser would be adding a bit of space for them to slip together.

Also the plywood causes conflict with the PULLEY_70T_Hollow components, did you create a 3mm spacer for them?

WIP_printableBase.PNG

 

Hey @TomVR,

I'm not able to open the files in your github in Fusion. Just says it's not a valid zip file. Any ideas for me?

Link to comment
Share on other sites

Hey @propeler!

I've had some closer look at the schematics and pcb (Very nice work on the PCB by the way ❤️. I always appreciate when layouts are a piece of art and not just a bunch chaotic connections). It seems the main difference to a stock Odrive is you are not using the DRV8301 motor drivers, but instead half-bridge ICs with separate current sense amplifiers for each phase. 

What's the reason you are doing this instead of just measuring the total consumption of the Motor as Odrive does? The reason I'm asking is because sourcing those current sense amplifiers in the current semiconductor shortage is really hard. The only source for them I could find is aliexpress, and they are 25€ each, multiplied by 6 those suddenly become more expensive than the whole board 😱 I do happen to hav a few F405 MCUs around from repairing drone flight-controllers for friends and the half-bridge ICs are rather easy to get in comparison. 

I'm looking for the best solutions to proceed. Ofc if you could provide a version that works with stock odrive would be ideal (already have one of those). Or maybe substitute those ics with jellybean opamps would probably be most const effective, but for that I'd need more understanding how the circuit works. Ideal of course would be if you shared the sourcecode so we can adjust and make that build ourselves. I'm a bit late to the party so I don't know if releasing the source has been discussed or if you plan to do it or not. 

It would for sure be a huge contribution to the community if you did! The hardware design itself is already fantastic! We just need a way to maneuver around the semiconductor shortage 😭

Link to comment
Share on other sites

47 minutes ago, 0xDEADBEEF said:

What's the reason you are doing this instead of just measuring the total consumption of the Motor as Odrive does?

ODrive uses two shunt on low side solution to measure motor current. Two of shunts connected to DRV8301. So as I do not have it I decided to use in-phase current measurement(it was cheaper solution that ODrive at the moment of creation before global chip shortage) . BUT. It was a prototype, and based on real usage I come to decision that whole that current measurement circuit can be totally removed without any issues. Simplified FOC algorythm having only position feedback is more than "good enough" for FFB joystick purpose.  You can either remove that part in easyeda project or simply do not solder them. I use couple of PCBs unsoldered without problems... Or vait for ODrive firmware.

 

47 minutes ago, 0xDEADBEEF said:

if you could provide a version that works with stock odrive would be ideal (already have one of those)

Version for ODrive with incremental encoder is still in work. But will be soon I hope, because I decided to swith to it because of chip shortage and difficulties with ordering custom board.

 

On 11/27/2021 at 3:08 PM, 0xDEADBEEF said:

Why are you not putting the code on github?

I can't share right now. It have parts of "commercial" code that I can't share by agreement.

 

On 11/15/2021 at 7:23 PM, Bard_the_Bowman said:

Have you tested your hoverboard build yet?  I am very curious how that turned out.

It is really good! 6kg of force on stick and motors are cool and silent. Zero cogging, it is smooth as butter.  I already send it to tester so more information will be soon.

But printed gimbal is not stiff enough for such a high load. So I already work on full metal gimbal with enother kinematic: 

image.png

 

On 11/15/2021 at 9:00 PM, slimheli said:

I purchased the 8192 cpr encoder that the ODrive shop recommended.

I work on version of firmware for ODrive with incremental encoder. So it will be there.

 

 

 


Edited by propeler
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 11/29/2021 at 9:12 AM, propeler said:

It is really good! 6kg of force on stick and motors are cool and silent. Zero cogging, it is smooth as butter.  I already send it to tester so more information will be soon.

But printed gimbal is not stiff enough for such a high load. So I already work on full metal gimbal with enother kinematic: 

 

That build looks very interesting.  And would have excellent axis separation.  It is a little complex and took me a minute to look through it and parse out what all the mechanisms are doing, but I think it's quite ingenious and could use mainly off-the-shelf parts.  On that topic, are the metal plates attached to the linkages something that already exists?  Or would they need to be custom cut?  They almost look like random 3D printer braces to me.  

Link to comment
Share on other sites

That is a very interesting and ingenious design you have there @propeler and I too have spent some time analysing the mechanics. Unfortunately however, unlike @Bard_the_Bowman, I'm not convinced that the axis are truly separated.

I grant that the forward/back axis as pictured does have a direct 1:1 coupling with the pully at all times, and the left/right axis will have an (almost) 1:1 coupling while the first axis is vertical; however when the first axis is inclined the second axis will no longer be 1:1 with its pully.

The second axis action will become more and more separated from the pully the further the first axis is deflected until, in the extreme, if the first axis were to be deflected by a full 90° the second axis pully would have no effect at all. I grant that in the typical range of motion this effect may not be significant however it is still the case that the two axis are not truly independent.


Edited by Slartibartfast
Link to comment
Share on other sites

I love all the creative ideas but still can't fathom why not just let the roll motor/pulley for for a ride as you move the stick in pitch. It's easy to counterbalance the mass and you never saw on the stick in pitch in any form of flying though you might vigorously slam the ailerons from stop to stop.  Even aerobatics pitch inputs are relatively tame but most types of flying you hold steady pitch for long periods and do minute adjustments.

I mean, I understand why it was done on the MSFF II, it makes a smaller/more marketable base that follow domestic joystick expectations but anyone making one of these at this caliber here are not constrained by that yet the trend seems to be towards increasingly large and complex workarounds.  Keeping both motors stationary on the base seems like a solution looking for a problem.

Link to comment
Share on other sites

On 11/29/2021 at 6:12 PM, propeler said:

You can either remove that part in easyeda project or simply do not solder them. I use couple of PCBs unsoldered without problems... Or vait for ODrive firmware.

Ahh that is very good to know, thanks! I understand it was cheaper back in the day.

On 11/29/2021 at 6:12 PM, propeler said:

Version for ODrive with incremental encoder is still in work. But will be soon I hope, because I decided to switch to it because of chip shortage and difficulties with ordering custom board.

That is good news for most of us, odrive is rather simple to obtain, albeit not cheap, it's still affordable

On 11/29/2021 at 6:12 PM, propeler said:

I can't share right now. It have parts of "commercial" code that I can't share by agreement.

ouch that's bad news, but understandable.

On 11/29/2021 at 6:12 PM, propeler said:

I work on version of firmware for ODrive with incremental encoder. So it will be there.

🚀

 

Any news on wether there will be support for warthog-style grips? Maybe I could contribute some code for that in the future, shouldn't be too difficult.

Oh and one more question, would you mind sharing your original Fusion 360 designs, alongside the step assembly? 

Again, thank you for the great work you've shared!

Link to comment
Share on other sites

On 11/17/2021 at 8:55 AM, Slartibartfast said:

I take it you're referring to this file: https://raw.githubusercontent.com/walmis/FFB-Joystick-Base/master/CAD/BOX-8mm-plywood-6374_motor.step

I've been trying to work with this but can't find a program to open it. I have tried several STEP viewers (including Fusion 360) and every one fails to open saying the file is either corrupt or invalid. Have you had any luck opening the file?

I too have a 3D printer and wanted to have a go at printing it.

you can't just right click and download on github, you either have to download the entire repo or use a git client to pull a specific file.

Right clicking and saving as on something will just download the html file with the binary in it.

On 11/29/2021 at 12:12 PM, propeler said:

ODrive uses two shunt on low side solution to measure motor current. Two of shunts connected to DRV8301. So as I do not have it I decided to use in-phase current measurement(it was cheaper solution that ODrive at the moment of creation before global chip shortage) . BUT. It was a prototype, and based on real usage I come to decision that whole that current measurement circuit can be totally removed without any issues. Simplified FOC algorythm having only position feedback is more than "good enough" for FFB joystick purpose.  You can either remove that part in easyeda project or simply do not solder them. I use couple of PCBs unsoldered without problems... Or vait for ODrive firmware.

 

Version for ODrive with incremental encoder is still in work. But will be soon I hope, because I decided to swith to it because of chip shortage and difficulties with ordering custom board.

 

I can't share right now. It have parts of "commercial" code that I can't share by agreement.

 

It is really good! 6kg of force on stick and motors are cool and silent. Zero cogging, it is smooth as butter.  I already send it to tester so more information will be soon.

But printed gimbal is not stiff enough for such a high load. So I already work on full metal gimbal with enother kinematic: 

image.png

 

I work on version of firmware for ODrive with incremental encoder. So it will be there.

 

 

 

 

jeez it's just getting bigger and meater! Also should be careful to put a leather boot over it as I can see a ton of pinch points.

Link to comment
Share on other sites

14 hours ago, TomVR said:

you can't just right click and download on github, you either have to download the entire repo or use a git client to pull a specific file.

Right clicking and saving as on something will just download the html file with the binary in it.

Huh, you're right!
Somehow I did manage to download the HTML file.

Bizarrely though right-clicking on the link I actually posted though does actually work: https://raw.githubusercontent.com/walmis/FFB-Joystick-Base/master/CAD/BOX-8mm-plywood-6374_motor.step

I must have somehow downloaded one file and posted a link to another.

Link to comment
Share on other sites

Update to my build.

Had the metal plates cut and bent by SendCutSend. I spent an afternoon deburring edges and tapping holes. The holes came slightly undersized and needed a pass with a drill before they were tapped.

I'm running the odrive off a 24v-350w power supply that currently runs my bass shakers. Motors are limited to 8A as the gimbal made some unnerving creaking sounds at 10A. Might need to get another psu since both motors at 8A will pull 380W and leave no headroom for the shakers.

Had some trouble with noise on the SPI lines disrupting the encoders, but rewired with shielded cables and they now work with the motors at "full" draw. Still waiting on ferrite rings for the motor leads which would help.

I'm very impressed with the sensitivity of the encoders. They react to the slightest pressure on the stick with no slop.

Currently my plan for the programming side is to run the odrive in torque mode and control it with a teensy board running this FFB library. (apparently the usb libraries used by the teensy are not the same as the standard arduino libraries and therefore not compatible with the ffb library without serious effort, so now I'm waiting on a arduino pro micro)

Big thanks to propeler for all the work developing the design and making it freely available.

20211207_155922.jpg

20211207_155941.jpg


Edited by theperson
  • Like 4
Link to comment
Share on other sites

So i've had to put my plans for the project on hold for awhile as the costs of motors + odrive I keep putting into regular life/house stuff instead of this hobby, but just had a really dumb idea of remixing the object-77b cams and cheap skateboard bearings.

https://imgur.com/a/DeUFvlK

The roller at the bottom and the piece that holds it flexes too much so I'm either going to have to make that part from metal or cantilever it with a strap going over the top of the cams to pull it back straight.

Using the miss's hairbands as temp springs.

I actually wonder if having a cam spring, even with the motors engaged could be balanced to "neutralize" the weight of the grip over the long extension. On Cinema camera heads we use a similar system of counterbalance springs to make a 60lb+ camera be able to tilt up and down without being difficult to operate. My thought is having a light cam centering system tuned to keep the grip balanced might help a lot with the motors having to work much less to keep the stick centered.

For now I'm just gonna use it so I get get a working stick and get around to adding the motors much later.

Image from iOS (14).jpg

edit: also in reality it would just be way way easier to take the entire object-77b gimbal and scale it up but damn it I'm too far along now!


Edited by TomVR
Link to comment
Share on other sites

On 12/7/2021 at 6:33 PM, theperson said:

Update to my build.

Had the metal plates cut and bent by SendCutSend. I spent an afternoon deburring edges and tapping holes. The holes came slightly undersized and needed a pass with a drill before they were tapped.

I'm running the odrive off a 24v-350w power supply that currently runs my bass shakers. Motors are limited to 8A as the gimbal made some unnerving creaking sounds at 10A. Might need to get another psu since both motors at 8A will pull 380W and leave no headroom for the shakers.

Had some trouble with noise on the SPI lines disrupting the encoders, but rewired with shielded cables and they now work with the motors at "full" draw. Still waiting on ferrite rings for the motor leads which would help.

I'm very impressed with the sensitivity of the encoders. They react to the slightest pressure on the stick with no slop.

Currently my plan for the programming side is to run the odrive in torque mode and control it with a teensy board running this FFB library. (apparently the usb libraries used by the teensy are not the same as the standard arduino libraries and therefore not compatible with the ffb library without serious effort, so now I'm waiting on a arduino pro micro)

Big thanks to propeler for all the work developing the design and making it freely available.

20211207_155922.jpg

20211207_155941.jpg

 

Wow. This looks amazing! What material and thickness did you specify for the metal bits?

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...