-
-
Notifications
You must be signed in to change notification settings - Fork 147
Home
The OpenFFBoard is an open source firmware (and hardware) project for DIY force feedback devices like sim racing steering wheels ranging from budget DC motor builds up to high end servo direct drive wheels.
Together with a custom motor driver and usb interface this project is made for developers and enthusiasts to create their dream setup within a reasonable budget.
The firmware is designed to be easily extendable and to be reconfigured at runtime by the users.
This means the firmware can control different kinds of motors and motor drivers (Stepper, 3 Phase BLDC, DC) motors, read encoder positions and present itself as a force feedback gamepad to the computer via HID.
Having the HID PID implemented in a modular way allows it to be used in different ways without the need to write complex custom USB descriptors.
Info: All features (Number of channels, interfaces...) are based on the official fully featured interface boards. Different firmwares may have different features depending on the hardware.
See other mainclasses for full list.
-
FFB Wheel: USB 1 Axis force feedback device with HID FFB support, multiple analog axis inputs (see analog sources) and digital buttons (see digital sources)
-
FFB Joystick: USB 2 Axis force feedback device
-
EXT FFB Gamepad: USB 2 axis gamepad device without HID FFB. Use this for simple non FFB devices or send custom FFB data via commands (See Ext FFB mode)
-
CAN Remote Analog/Digital: Send all supported digital and analog inputs as CAN packets to a main FFBoard (Receive using CAN Analog/Digital source)
- CAN Interface: GVRET compatible CAN interface for CAN bus debugging
| Name | Interface | 1ch Wheel support | 2ch Joystick support | Supported motors | Supported encoders | Enc forwarding (see FFBoard supported encoders) | Dual interface encoder |
|---|---|---|---|---|---|---|---|
| OpenFFBoard TMC4671 | SPI | yes✅ | limited |
3 phase servo (BLDC), 2ph stepper (w. encoder), (DC) | ABZ, SinCos, (Digital Hall), Analog hall | yes✅ | yes✅ |
| ODrive | CAN | yes✅ | yes✅ | 3 phase servo | ABZ, SPI, Internal (See ODrive docs) | no❌ | no❌ |
| VESC | CAN | yes✅ | yes✅ | 3 phase servo | ABZ | no❌ | yes✅ |
| PWM | PWM pins | yes✅ | no❌ | Any external driver (PWM+Dir, Centered, RC PPM, 2x PWM) | Any FFBoard encoder | no❌ | no❌ |
| MyActuator | CAN | yes✅ | yes✅ | Integrated in servo | Internal | no❌ | no❌ |
| Simplemotion | RS432 w. adapter |
yes✅ | no❌ | 3 phase servo, Stepper | ABZ, BISS-C | no❌ | no❌ |
Encoders supported directly by FFBoard firmware and main board
Can be forwarded to TMC4671 using external encoder forwarding
| Name | Interface | Absolute |
|---|---|---|
| ABZ Quadrature | ABZ | no❌ |
| BISS-C | SPI w. Adapter |
yes✅ |
| MagnTek (MT6825,MT6835) | SPI + ABZ | yes✅ |
| SSI | SPI | yes✅ |
| Name | Interface | Channels |
|---|---|---|
| Digital pins | gpio pins | 8 |
| CAN | CAN | 64 |
| Analog shifter (G29) | Analog pins | 6+1R gears |
| SPI shift registers TM wheels |
SPI | 64 |
| PCF8574 | I²C | 64 |
| Name | Interface | Channels |
|---|---|---|
| Analog pins | gpio pins | 6 |
| CAN | CAN | 6 |
| ADS111X ADC | I²C | 4 |
If you want to create a pull request for the wiki you need to do so on the OpenFFBoard_wiki repo which mirrors this wiki because Github does not allow public PR access to the wiki repo directly.
The following image shows a simplified block diagram of how the OpenFFBoard firmware components would operate in a steering wheel setup and how its software components can be used to interface different peripherals.
