FanaConnect is a hardware and firmware design project for a USB-to-Fanatec adapter that enables USB handbrakes and sequential shifters to be recognized by Fanatec wheel bases and compatible simulators.
This project targets an Arduino Nano with a USB Host Shield 2.0 Mini to translate standard USB HID input devices into the Fanatec RJ12 protocol.
The adapter is designed for use with Fanatec-compatible devices such as DD1, DD2, CSL DD, and related wheel bases. It allows unsupported USB peripherals to appear as native Fanatec accessories by converting USB button and axis data into the expected Fanatec shifter and handbrake signals.
- Bridge USB handbrakes and sequential shifters to Fanatec wheel bases
- Support console-capable Fanatec protocol paths, not just PC-only USB devices
- Maintain low latency and reliable input behavior for sim racing
- Keep the hardware compact, portable, and budget-friendly
- Use existing Arduino Nano + USB Host Shield hardware
The current design is based on:
- Arduino Nano (ATmega328P)
- USB Host Shield 2.0 Mini (MAX3421E)
- Fanatec RJ12 connectors for shifter and handbrake ports
- 5V supply: USB (bench development) or the Fanatec base's own RJ12 pin 6,
verified at +5.23–5.24 VDC under load (per-port current budget not yet
measured — see
docs/analysis/)
- Fanatec shifter pins use digital GPIO outputs with active-low pulses for shift up/down
- Fanatec handbrake uses a PWM-generated analog output, RC-filtered, targeting the
genuine handbrake's verified ~1.4V–4.15V sweep (not a generic 0–5V range —
see
docs/analysis/FanaConnect_Verified_Findings.md) - The USB Host Shield handles USB enumeration and HID report parsing over SPI
The project includes detailed planning and implementation notes in the docs/ folder:
docs/Fanatec_USB_Adapter_Scope.md— project scope, goals, constraints, and high-level designdocs/Fanatec_USB_Adapter_Technical_Implementation.md— deeper technical architecture, USB host integration, HID discovery, and protocol translationdocs/schematics/Pinout_Quick_Reference.txt— RJ12 pinouts, Arduino Nano pin assignments, wiring, and signal behaviordocs/analysis/FanaConnect_Verified_Findings.md— direct DMM/oscilloscope measurements against genuine Fanatec hardware (handbrake voltage range, RJ12 and 3.5mm TRS pinouts, RC filter derivation); this is the source of truth whenever it conflicts with the other documents above
README.md— this summarydocs/— project planning and technical documentationdocs/schematics/— pinout and wiring referencedocs/analysis/— verified hardware measurements against genuine Fanatec devicessrc/discovery/— USB HID device discovery sketch, guide, and captured device profilessrc/firmware/FanaConnect_Firmware/— the implemented HID-to-Fanatec bridge firmware
USB device discovery and firmware implementation are complete (see
src/discovery/Device_Discovery_Results.md and
src/firmware/FanaConnect_Firmware/). Handbrake signal characteristics have
been directly measured against genuine Fanatec hardware
(docs/analysis/FanaConnect_Verified_Findings.md). Remaining work is bench
validation of the physical build (RC filter output, GPIO timing) and
integration testing against a real wheel base — see
.claude/plan/PROJECT_INDEX_AND_QUICKSTART.md for the current session
status.
- Fanatec RJ12 ports require specific digital and analog behaviors that differ from generic USB devices.
- The handbrake path must provide a stable analog output and preserve the minimum rest voltage expected by the wheel base.
- The shifter path should avoid driving the Fanatec pin high; it is safer to pulse each pin low and then release it to float high via the wheel base pull-ups.
For detailed design and wiring information, see the documents in docs/.