Skip to the content
2 layers71.1 × 80 mmArduino fanatec pcb, the printed circuit board in 3D

A do-it-yourself steering wheel to Fanatec's wheel base

Size
71.1 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
39
Pads
133
Tracks, vias
326, 23
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
16 Jun 2019
Updated
6 Dec 2025

Overview

Arduino fanatec pcb is an open-source printed circuit board by lshachar, from the lshachar/Arduino_Fanatec_Wheel repository on GitHub. It is a 2-layer board of 71.1 × 80 mm with 20 parts on 39 nets, routed with 326 tracks and 23 vias.

Its parts include 5 resistors and 4 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

README

README.md

Arduino_Fanatec_Wheel

A do-it-yourself steering wheel to Fanatec's wheel base.

28.04.2020 Coronavirus update: Version 1 is out!
Steering wheel assembled check out more photos here

*The buttons delay bug is fixed, buttons code is working great!
*I fixed several large bugs with the SPI communication, which now works flawlessly.
*Updated schematics - Added a 5 buttons Analog input that feeds into a single analog input on the arduino. You can calibrate your wheel center by using the D-pad and alphanumeric display, without plugging the Arduino to your PC!
*Added Diode, and connected D2 and D10 together, both changes are necessary! please revise your board to include these changes if you've built one already!
*Updated board layout - it's possible to either manufacture a single layer board, and solder a few jumper wires for the top layer, or manufacture the complete two-layers board. (I used a CNC machine and milled a single layer board)


This project is donationware, if my work helped you out maybe get me a beer! :)

Fanatec's wheelbases won't enable any force feedback, unless you have a Fanatec steering wheel attached to it. With this project, you can use an arduino to communicate with the wheelbase over SPI, which will get the wheelbase working. You can attach buttons, a D-Pad and an alphanumeric display, for the complete package!

This simplified (schematics) version is enough to let you enable force feedback on your wheelbase, use this easy to understand 'breadboard view' simplified schematics, or This simplified schematic.

The full PCB supports alphanumeric display, D-pad, and lots of external buttons full PCB (I currently use 6: 2 paddle shifters and 4 buttons on the rim).

Here's a how to make a male Fanatec SPI connector (what the steering wheel has)
Also, Alevale found where to buy the connector

use this If you need a simple 3d adapter to attach your physical steering wheel to the wheelbase

Several options:

  • Use a 5V arduino with a logic level shifter. (recommended, this is what I use. (here are The schematics)
  • Use a 5V arduino without a logic shifter (can be risky to your precious wheelbase)
  • Use a 3.3V arduino (I haven't tried it. They run on 8 MHZ instead of 16 MHZ for the 5V arduinos, but I'm pretty sure 8MHZ should be fast enough.)

Code was tested on arduino Uno and Nano, and works fine. However, they both output 5V and the SPI communication on the wheelbase is using 3.3V. It's best to use a level shifter between the two, so there are no chances of damaging the wheelbase (by connecting the 5V arduino output to a 3.3V wheelbase input) However, since the wheelbase is the master and the steering wheel is the slave - MISO is the only input channel on the wheelbase, and it is safe to simply use a voltage divider on the MISO line - to go from 5V level to 3.3V. (The arduino should recognize the 3.3V input signals coming from the wheelbase as high, so there's nothing we have to do there).

  • Note: If you do end up going this route, make sure you wire everything up properly, and that you never set SPI as master on the arduino, or you will subject the wheelbase SPI to 5V. (I did subject the wheelbase SPI to 5V by mistake - and nothing got damaged.)

I recommend using an arduino nano and a logic shifter, as seen in the schematics.

  • Note: The diode is crucial to keep the 5V coming from the wheelbase, and the 5V coming from the computer USB, seperate. the diode will drop the 5V voltage from the wheelbase to ~4.3V, which is fine for the arduino to run on. When you plug the USB cable, the arduino will run on the 5V coming from the computer, and current cannot flow to the wheelbase because of the diode.
    fyi I have connected both power supplies together, and did not have anything go up in smoke. (but this is before I thought about using a diode. DO NOT ATTEMPT THIS YOURSELF.

There's a lot of (old) info here

What to do if you gotta calibrate your wheelbase center?

On some wheelbases, you can do that directly from the Fanatec wheel properties page. unfortunately it doesn't work on my CSW V2.5.
You can use the current code to calibrate the wheelbase's center point. (This is needed after a firmware upgrade for the wheelbase) the arduino will translate the alphanumeric display to letters and send them out to the Serial monitor(!). you will need to type in some commands on the Serial monitor, which will look pretty cypheric to you. Type these characters on the serial monitor, press [return] after each line:

C (to change bits on the 3rd byte that affects buttons. C=3rd) 6 (to change (raise) the sixth bit on the 3rd byte, which is the menu button. this will cause the alphanumeric display to turn on and the message '5_1' (equivilent to 'S_1' i.e. 'setting 1') will be printed on the serial monitor.)
6 (to release the menu button (lower the 6th bit) )
23 (2 will raise the D-pad button bit, 3 will raise the joystick button bit.)
23 (to release both buttons, drop both bits) 6 (press the menu button again to exit the menu)
6 (release the menu button)
Watch this If you don't know what I'm talking about
(Hey - it's not an easy procedure, but it works!) if you made a PCB with a Dpad and alphanumeric display - you can calibrate the center point without connecting to the computer! Using the Dpad: Enter the menu by pressing both up+down bubttons on the Dpad, S_1 will appear on the serial monitor and on the alphanumeric display, Press both left+right buttons on the Dpad to calibrate wheel center, Press both up+down on the Dpad to exit menu. Done!

This project would never have been possible without the work of Darknao on his BtClubSportWheel - converting any Fanatec CSW steering wheel to a standalone USB version project.

Parts

20
QtyValueFootprintReferences
5SW_PushButton_Switch_THT:SW_PUSH_6mmDown, Left, Menu, Right, Up
3MountingHoleMountingHole:MountingHole_3mm_PadH1, H1, H1
1.Diode_THT:D_A-405_P10.16mm_HorizontalDiode
11KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR5
1220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR2
12kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR3
14.7kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR4
1680Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1Arduino_Nano_v3.xModule:Arduino_NanoA1
1Breakout Connector 02x18_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_VerticalJ3
1Extra pin breakoutConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ1.2
1SPI Connector 01x08_MaleConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ1
1Simple_Chinese_Logic_level_shifterPackage_DIP:DIP-12_W10.16mmLevel Shifter
1TM1637 4 digit Display connectorConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2

Similar boards

  • 2 layers66.9 × 74.5 mmDeskHop Rev1, the printed circuit board in 3D

    DeskHop Rev1

    hrvach/deskhop

    Fast Desktop Switching Device

    20 parts7.9kGPL-3.0
  • 2 layers86.4 × 64.8 mmSlot machine, the printed circuit board in 3D

    Slot machine

    google/google-ctf

    Google CTF

    20 parts5.1kApache-2.0
  • 2 layers36.2 × 26.8 mmEsp32 minimal, the printed circuit board in 3D

    Esp32 minimal

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    20 parts4kMIT
  • 2 layers108.1 × 393.8 mmSweep compact ble, the printed circuit board in 3D

    Sweep compact ble

    davidphilipbarr/Sweep

    Sweep - a small promicro based keyboard inspired by the Ferris.

    20 parts2.1k
  • 2 layers26 × 15.9 mmTPS54340 Buck Regulator, the printed circuit board in 3D

    TPS54340 Buck Regulator

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    20 parts1.2k
  • 2 layers67.6 × 30.5 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    20 parts1kGPL-3.0
  • 2 layers44.3 × 28.7 mmLin bus adapter esp32, the printed circuit board in 3D

    Lin bus adapter esp32

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    20 parts915
  • 2 layers89.5 × 61.6 mmFreeDeck TH 2020-02, the printed circuit board in 3D

    FreeDeck TH 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    20 parts772

Questions

How big is the Arduino fanatec pcb PCB?

It measures 71.1 × 80 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Arduino fanatec pcb use?

20 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Arduino fanatec pcb KiCad files?

From the lshachar/Arduino_Fanatec_Wheel repository on GitHub, at the commit this page was made from: the board is Schematics & pcb layout/KiCad/arduino-fanatec-pcb.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Arduino fanatec pcb design in my own project?

Its repository states no licence, so its author keeps all rights: ask lshachar before reusing the design.