{"id":65,"date":"2020-02-11T19:01:24","date_gmt":"2020-02-11T17:01:24","guid":{"rendered":"http:\/\/y-richter.de\/?p=65"},"modified":"2025-11-17T20:39:31","modified_gmt":"2025-11-17T18:39:31","slug":"open-ffboard","status":"publish","type":"post","link":"https:\/\/y-richter.de\/?p=65","title":{"rendered":"Open FFBoard"},"content":{"rendered":"\n<p>After the old powerstep based motor controller i improved the idea of an open source force feedback interface for direct drive wheels and other simulation interfaces with high torque demand in a modular way<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/Ultrawipf\/OpenFFBoard\">OpenFFBoard<\/a> consists of a simple STM32F407VG based usb interface with defined pins for SPI, buttons, leds, encoder input, CAN bus and more.<\/p>\n\n\n\n<p>Take a look at the full development story on <a href=\"https:\/\/hackaday.io\/project\/163904-open-ffboard\">hackaday.io<\/a><br><br>Firmware and hardware design ressources are available on <a href=\"https:\/\/github.com\/Ultrawipf\/OpenFFBoard\">Github<\/a><\/p>\n\n\n\n<p>A TMC4671 based motor driver which is also developed in this project as a reference can drive 2 phase steppers, 3 phase servos and DC motors at up to 60V DC and over 20A.<br>It has an active anti backfeed diode circuit for use with power supplies and a brake resistor mosfet included. It also features highly accurate current sense amplifiers and voltage sense dividers.<br>An onboard 5V DC converter can supply the hardware directly from the motor power supply.<br><\/p>\n\n\n\n<p>The TMC4617 can also use external BISS-C and Magntek encoders by forwarding positions via SPI from the FFBoard since firmware 1.8. This causes a lot of additional load on the microcontroller so it is not ideal but it seems to work pretty well and reliably.<\/p>\n\n\n\n<p>Additionally the ODrive and VESC via CAN and a PWM output with PPM, 0-50%-100% centered, pwm+dir and dual pwm (different pins per quadrant) are supported.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard DIY FFB update 6: New GUI, ADS1115 ADC, Analog scaling, CAN instruments, USB-C\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/isNhK6jMn-M?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard DIY FFB update 5: Button sources, BiSS-C encoders &amp; autohoming, Linux compatibility\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/GBKCCanImxA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard update 4: ODrive, VESC, HID Communication\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/yFGB28YnUWI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard | Full DD wheel build with SEM HR115 and TMC4671 (DIY Force feedback)\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/hHY1PyycJ5s?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"is-layout-flex wp-block-gallery-1 wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"683\" data-id=\"84\"  src=\"https:\/\/y-richter.de\/wp-content\/uploads\/2021\/01\/DSC01459-1024x683.jpg\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/y-richter.de\/wp-content\/uploads\/2021\/01\/DSC01459-1024x683.jpg 1024w, https:\/\/y-richter.de\/wp-content\/uploads\/2021\/01\/DSC01459-300x200.jpg 300w, https:\/\/y-richter.de\/wp-content\/uploads\/2021\/01\/DSC01459-768x512.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard update 3: The big software update, Effects, FreeRTOS, TinyUSB (DIY Force feedback)\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/dMhRGMg6ikQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard update 2: New hardware and motor drivers (TMC4671)\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/rv30x97DCaw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Hardware v1.2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Open FFBoard update 1: Comparing motors, new GUI, PWM and wheel mounts\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/gG_dbnKfH5Q?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Update: Servos<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Custom force feedback interfaces with Open FFBoard (DIY direct drive wheel)\" width=\"648\" height=\"365\" src=\"https:\/\/www.youtube.com\/embed\/WKUdg9dCMyo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Presentation &amp; Demo<\/figcaption><\/figure>\n\n\n\n<p>Short video in action:<br><\/p>\n\n\n\n<figure><iframe loading=\"lazy\" src=\"https:\/\/player.vimeo.com\/video\/391673113\" allowfullscreen=\"\" width=\"640\" height=\"360\"><\/iframe><\/figure>\n\n\n\n<p><a href=\"https:\/\/vimeo.com\/391673113\">OpenFFBoard Assetto Corsa FFB Test raw<\/a> from <a href=\"https:\/\/vimeo.com\/user96758300\">Gigawipf<\/a> on <a href=\"https:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After the old powerstep based motor controller i improved the idea of an open source force feedback interface for direct drive wheels and other simulation interfaces with high torque demand in a modular way OpenFFBoard consists of a simple STM32F407VG based usb interface with defined pins for SPI, buttons, leds, encoder input, CAN bus and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,4],"tags":[3],"_links":{"self":[{"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/posts\/65"}],"collection":[{"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/y-richter.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=65"}],"version-history":[{"count":13,"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/posts\/65\/revisions"}],"predecessor-version":[{"id":112,"href":"https:\/\/y-richter.de\/index.php?rest_route=\/wp\/v2\/posts\/65\/revisions\/112"}],"wp:attachment":[{"href":"https:\/\/y-richter.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/y-richter.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/y-richter.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}