How jfedor2/wheel-adapter works
This firmware turns a Raspberry Pi Pico into a USB adapter: it reads a Logitech Driving Force-compatible wheel, presents a G29-style HID device to the PS5, and relays the console’s authentication exchange through a separate licensed controller. The principal flow is wheel input to a console-facing report; force-feedback output travels back to the wheel. Authentication proceeds through nonce reception, controller signing, and signature delivery. The sampled source shows these behaviors in src/adapter.c and the HID identity in src/descriptors.c; unsampled library internals are not mapped.
Main entry points: adapter.c Controller signing exchange · descriptors.c G29 HID identity · reports.h Wheel report types
Components 13
Wheel handling
- Wheel input mapping
src/adapter.c - Wheel report types
src/reports.h - Force feedback relay
src/adapter.c - Wheel initialization
src/adapter.c
Authentication bridge
- Nonce intake
src/adapter.c - Controller signing exchange
src/adapter.c - Signature delivery
src/adapter.c
Console interface
- Console HID reports
src/adapter.c - G29 HID identity
src/descriptors.c
Firmware runtime
- Main loop
src/adapter.c
Other components
- PS5 console
- Logitech wheel
- Licensed controller
Connections 19
- Main loop → Wheel input mapping: runs callbacks
- Main loop → Force feedback relay: runs task
- Main loop → Wheel initialization: runs task
- Main loop → Controller signing exchange: runs task
- Logitech wheel → Wheel input mapping: sends reports
- Wheel input mapping → Wheel report types: decodes as
- Wheel input mapping → Console HID reports: updates state
- PS5 console → Console HID reports: requests reports
- Console HID reports → PS5 console: sends reports
- PS5 console → Nonce intake: sends nonce
- Nonce intake → Controller signing exchange: starts signing
- Controller signing exchange → Licensed controller: requests signature
- Licensed controller → Controller signing exchange: returns signature
- Controller signing exchange → Signature delivery: stores signature
- Signature delivery → PS5 console: serves signature
- PS5 console → Force feedback relay: sends feedback
- Force feedback relay → Logitech wheel: forwards feedback
- Wheel initialization → Logitech wheel: sends setup report
- G29 HID identity → PS5 console: advertises identity