Implementing force feedback wheel



I’m about to start a force feedback wheel project and the Odrive popped out as the perfect motor driver candidate. The idea is to stick a steering wheel directly to a motor in direct drive and control the whole thing with an arduino in USB mode connected to a PC. Since force feedback (as in sim racing steering wheels) is all about applying forces the current control mode for controlling torque seems like the logical choice software wise.

However, when considering safety, there is no velocity limitation in current mode, meaning the wheel could spin up very fast and become dangerous. I will of course monitor the wheel position and speed from the arduino, but if something breaks things could get nasty.

Another approach could be to use normal position mode, and when a force is to be applied in a specific direction set a position in the far end of the rotation range (900 degrees), and control the force by the current limit settings. It would then not spin farther than to that position, in an extreme situation. There is also a velocity limit in this mode I believe.

Any thoughts on that? Is it possible to modulate forces with very frequent current limit commands in position mode and thus “simulate” current control mode - with safety applied?


Communications watchdog feature has been included recently (#316), which you might be interested.
Changing current limit in position control mode is an interesting approach. I’d love to hear how this goes. Since current limit is checked in controller.update() loop I don’t think issuing the command too frequently will be a problem.


Thanks for the watchdog info. Excellent!
But, I am afraid it may not be enough. I will be using a very strong motor, with high torques. So an unloaded wheel would spin up really fast. The watchdog checks would have to be issued quite frequently, I guess in the ms domain. But it might work. I will test…

In position mode it wouldn’t go further than to the point set, with velocity limits. Still looks like the best option. Watchdog can be applied to this plan as well.


One of these days we’ll get around to implementing the velocity limiter for current control mode

1 Like