Skip to content
Rubber duck shock 4 - Reboot edition
Branch: master
Clone or download
Latest commit 1393186 May 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Reduce buffer size to 2 May 16, 2019
LICENSE.txt Add library manifest file Apr 26, 2019


A (hopefully) better game controller library for current-gen game consoles.

WARNING: Work in progress and not ready for general use. API may change at any time.


This project is for research purposes only and does not come with any warranty. Use it at your own risk.

Why not b***k?

Simply put, existing software/boards like B***k, C*****u, P***0, etc. are either not flexible enough for my needs (I want full control over what the controller sends and receives, not just buttons and sticks), proprietary as f***, does not support current-gen consoles because they have "impossible to crack security measures", too expensive, or all of the above. Besides that, I am not hardcore enough to think that scrapping a $60 controller and figuring out how to padhack the touchpad, gyroscope, accelerometer, rumble motor, etc. without running into random obstacles such as frying the motherboard would be a good idea. So here we are.

Use cases

  • Fightsticks
  • Rhythm game controllers
  • Accessible controllers
  • Keyboard/mouse/joystick/gamepad converters
  • Creative projects (e.g. beat Dark Souls BloodBorne Sekiro with bananas, etc.)


Currently the library only supports Teensy 3.x (including LC). A patched version of Teensyduino core (version 1.45 at the moment) is required, which can be found here.

For Teensyduino IDE users, there are two ways to install the patched library. One way is to run scripts/ and apply the generated patch file using the patch tool to an existing Teensyduino core installation. The other way is to directly replace the core library of a working installation with the patched version. Then you might want to edit the boards.txt in a similar fashion as this (with necessary changes like replace USB_XINPUT with USB_DS4STUB and so on). For PlatformIO users, it is possible to use the companion script hosted here and follow the instruction here. Afterwards add -DUSB_DS4STUB -UUSB_SERIAL to the build parameters.

After patching the Teensyduino core library just download and install RDS4Reboot normally.

Current status


  • Builds on Teensy 3.6 and LC
  • USB Host Shield authenticator with
    • Official controller
    • Hori Mini
  • Authentication over USB Host Shield authenticator and Teensy USB transport
  • Interrupt IN/OUT reports over Teensy USB transport
  • UnoJoy compatibility layer

Does not work/WIP

  • PluggableUSB transport
  • More example sketches


  • A7105 authenticator
You can’t perform that action at this time.