-
MyActuator RMD CAN motor support
02/03/2025 at 11:20 • 0 commentsWhile there have been unofficial builds with support for the MyActuator CAN motor drivers it was not officially implemented until now.
The protocol is unfortunately a bit limited only allowing for <100Hz updates but it might be improved by the manufacturer in the future.
For testing the new motor driver support class a demo build of a compact RC style transmitter with the L5005 motor was documented:
The RMD motor mode will be available in firmware v1.16.0.
3D print files for the controller:
Original controller design: https://www.printables.com/model/1074755-rc-style-ffb-controller
Modified files: https://www.printables.com/model/1172877-rc-style-openffboard-controller-with-rmd-l5005
-
TMC4671 1.3.3 kits and setup video
03/17/2024 at 17:40 • 0 commentsAfter a long time finally a reliable version of a TMC4671 + STM32F407 kit has been produced.
This version used the AC724 30A current sensors for lower noise and more reliable mosfets and protections for the mosfets as the previously used BSC030N08NS5ATMA1 can briefly glitch on due to the miller effect during steep switching transitions at voltages over 36V.
This issue has been eliminated in this version by using different mosfets and discharge diodes on the gates.
For this an updated setup and tuning tutorial is available:
The STM32F407 is available on Tindie, the full kit now available on Elecrow (at the time of this log).
-
2 Axis joystick support
04/05/2023 at 08:01 • 0 commentsFor a long time 2 axis support was always promised and was partially implemented but just now I finally got an actual FFB joystick to test and improve it with.
And to my surprise even the TMC4671 which was never tested in a dual configuration worked almost perfectly after some small modifications.The ODrive CAN bus implementation caused more time debugging than the TMC4671 :)
See for yourself in the video below.
-
Simplemotion V2 support
01/17/2023 at 09:40 • 0 commentsWith having basic support for Granites Simplemotion V2 protocol users have more options of motor drivers again.
While the project is best uses with our custom designed TMC4671 based driver the Granite Ioni drivers were in the past used for Simucube V1 / OSW kits and also provide good quality force feedback with high compatibility.
The drivers use RS485 instead of CAN or SPI so it has to use the less reliable uart peripheral of the STM32 with new pins but it still works perfectly fine at 1kHz single with a single axis by using the fast cycle update. The regular protocol has a high overhead and does interfere slightly so it should be avoided at the moment and is only used for the setup and getting specific data from the driver.
-
Update 6: Live effect monitoring, ADS1115 ADC, Analog processing
09/21/2022 at 08:07 • 0 commentsWatch the video for a full summary and demos.
In V1.9.x the GUI was redesigned to be easier to use, and we added effect monitoring options to see the calculated forces and statistics.
A simple profile management system allows to quickly change between settings for different games.
The speed and accel filters for the encoder can be tuned with 3 presets now with preview graphs.
The ADS1115 is now supported via I²C to allow 16b differential inputs with variable gain settings. This can be useful for pedals and reducing noise by placing the ADC close to the sensors.
The ADS1115 and local analog inputs now have manual range selection options and an optional digital lowpass filter.
Belt/Gear driven setups with a reduction between the encoder and the wheel/handle can use a fraction based reduction setting that prescales all positions so the range selection and all effects still work normally.
-
Update 5 - BISS-C, Linux, CAN button/analog sources
05/08/2022 at 14:11 • 0 commentsIn version 1.8.6 the OpenFFBoard now has support for more button and analog sources:
- Local pins
- CAN frames for buttons and analog sources
- PCF8574t I²C port expander for buttons
- Analog Shifter (Logitech G29/G27)
- SPI shift registers and Thrustmaster wheels
External encoders for TMC allow the use of BISS-C and Magntek MT6825 encoders with the TMC4671 motor driver module even when those are not directly supported by it.
This works by reading the encoder at fast intervals and forwarding the position via SPI to the TMC4671. This increases the load of the microcontroller dramatically but seems to work well in usual setups so it is a viable solution if you don't have a directly supported encoder.From this version on the configurator also supports the windows dark mode and the TMC graph follows GTK styles as well.
-
Update 4: VESC, ODrive support & new command system + HID
01/13/2022 at 14:17 • 0 commentsODrive and VESC based motor drivers can be used via the CAN bus now.
Those drivers need to be configured manually for torque mode as the FFBoard will just be sending torque values and reading the encoder positions from the drivers.
The old command system did not really fit into the current modular class structure after the introduction of FreeRTOS previously so it was completely reworked into a system with a modified syntax.
Each command and class has a string name and also an integer ID allowing readable terminal commands and transmission of strings from the firmware to report back lists of enabled features and names but also almost full control via HID which does not support strings.
The new command list is available in the github wiki.
The changes in the configurator also make it more stable and responsive.
HID can be used in the FFBWheel mode with third party applications to change settings automatically. For example changing the steering wheel angle or intensity scaler based on the currently driven car. (Example implementation submitted for AC content manager).
-
FreeRTOS + TinyUSB + Multiaxis support
05/23/2021 at 10:11 • 0 commentsThere was a long time between the last 1.2 and current 1.3 firmware release.
The reason is a huge internal change porting everything to support freertos and using TinyUSB as a USB backend instead of the customized ST middleware examples which had to be modified a lot to fix bugs in the original code and making it composite device compatible.
With TinyUSB its a matter of a few lines of code to define a new composite device now.
At the same time we also got basic support for multiple FFB axes (2 at the moment) by sending force to multiple motor drivers based on the direction sent by the game. This is still quite experimental.
Doxygen site: https://ultrawipf.github.io/ffboard_doxygen/index.htmlThe serial protocol was changed to echo back the original command to be more resilient to out of sequence or lost replies. Which should normally never happen but it makes programming a user interface a bit easier and safer as well.
That of course also required changes in the configurator gui as well.
Changes GUI:
- The axes and common ffb gamepad settings were split into separate tabs.
- The integrated DFU uploader now also supports hex files directly out of the stm32cubeide.
- Option to change the Q value of the constant force filter
- Encoder configuration and selection changed
- Independent damper option
- Unavailable but existing options (already selected motor drivers, sources with pin conflicts) show up greyed out
- Spinboxes on most values as an alternative to sliders
- Added dump and load options for settings
Changes Firmware (+more):
- FreeRTOS support
- TMC4671 split into separate subclasses for multiple instances
- TMC now using current control mode during init phase
- TMC calibrating ADCs with PWM active (Better offset correction)
- Encoder system reworked to pass encoder to motor driver
- Multiaxis support in FFBWheel
- USB System using TinyUSB
- USB running in rtos task
- New serial protocol
- CAN bridge supports GVRET/SavvyCAN
- Improved TMC debug bridge to support newer TMCL-IDE
- All FFB effects implemented
- Independent damper support
- User selectable CF filter Q factor
- Improved PWM output
- Added dump and load options for eeprom emulation
- Basic error handling system
- Improved led blink effects for status messages
- Fixed many bugs impacting stability
-
Full build video. HR115 + TMC4671 demo build
02/26/2021 at 10:50 • 0 commentsThis video was made over the course of a few months and may be outdated at some point.
I hope this gives you an idea what you need for building your own direct drive wheel and what to watch out for.
The quality is extremely good. Feels even better than the 130ST-M15015 but the SEM HR115 is sadly not manufactured anymore. Sometimes they come up for sale used.
-
New FFBoards (Update Video)
12/10/2020 at 17:02 • 0 commentsThe project switched from the STM32F411RE to the F407VG because we need more pins and the availability is currently still better.
In the video many changes from the last update are discussed.
The new TMC boards were already shown in the last logs but in the video i am again going over some changes and what new features can be helpful.