Articles on: Gaming Consoles
This article is also available in:

Control an Xbox Adaptive Controller with PlayAbility

A Raspberry Pi Pico W or Pico 2 W running the Xbox Adaptive Controller receiver firmware bridges PlayAbility to an Xbox Adaptive Controller (XAC). PlayAbility communicates with the receiver over Bluetooth, and the receiver connects to one of the XAC's USB external-input ports.


What you need


  • An Xbox Adaptive Controller already connected to and working with an Xbox console or Windows PC.
  • A Raspberry Pi Pico W or Pico 2 W.
  • The current PlayAbility Adaptive Receiver firmware for Xbox Adaptive Controller.
  • A USB data cable.
  • Bluetooth on the Windows computer running PlayAbility.
  • A PlayAbility profile with gamepad actions.


Download the current firmware from the PlayAbility Adaptive Receiver releases. Choose the XAC USB build for your receiver board.


Flash the receiver


  1. Disconnect the receiver from USB.
  2. Hold BOOTSEL while connecting it to the computer.
  3. Release BOOTSEL when a drive named RPI-RP2 appears.
  4. Copy the correct XAC .uf2 firmware file to the drive.
  5. Wait for the drive to disappear and the receiver to restart.


Pair the receiver with Windows


  1. Power the flashed receiver.
  2. Hold BOOTSEL for about five seconds, until its LED indicates Bluetooth pairing mode.
  3. Open Windows Settings → Bluetooth & devices → Add device → Bluetooth.
  4. Select PlayAbility Receiver.
  5. Wait for Windows to show the receiver as paired.


Connect the receiver to the Xbox Adaptive Controller


  1. Make sure the Xbox Adaptive Controller is powered and connected to its Xbox console or Windows PC.
  2. Connect the receiver to one of the XAC's USB ports intended for external inputs.
  3. Keep the receiver connected to that port while using PlayAbility.


The two XAC USB input ports can be configured for different roles. If the receiver is detected but an expected stick or control does not work, test the other input port or review the XAC profile in the Xbox Accessories app.


Enable Receiver output in PlayAbility


  1. Open Connections in PlayAbility.
  2. Select PlayAbility Receiver.
  3. Under Button Layout, choose Xbox Adaptive Controller layout.
  4. Turn on Enable Bluetooth Serial Communication.
  5. Read the warning, then confirm the change.
  6. Find the PlayAbility Receiver control in PlayAbility's right navigation area and select it.
  7. Wait for its label to change to Disconnect PlayAbility Receiver.
  8. Turn on Main Output and Gamepad Out.


Receiver output replaces PlayAbility's local virtual-gamepad route while it is enabled.


Verify the setup


  1. Open a safe console menu, game menu, or controller test.
  2. Activate a PlayAbility mapping assigned to A, B, or a D-pad direction.
  3. Confirm that the target responds.
  4. Release the trigger and confirm that the action releases.
  5. Test sticks, shoulder buttons, and triggers individually.
  6. Confirm that the XAC's existing switches and other connected devices still work as expected.


Start with one simple button before combining PlayAbility with the rest of an adaptive setup.


Troubleshooting


PlayAbility cannot find the receiver


  • Confirm that Windows lists PlayAbility Receiver as paired.
  • Make sure the receiver is powered and running the XAC firmware.
  • Remove an old Bluetooth pairing, pair the receiver again, and retry.
  • Close any other application that may be using its Bluetooth serial port.


The receiver connects, but the XAC does not respond


  • Confirm that the receiver control says Disconnect PlayAbility Receiver.
  • Use a USB data cable rather than a charge-only cable.
  • Confirm that the XAC is powered and connected to the target.
  • Confirm that the receiver uses the XAC USB firmware for the correct Pico model.
  • Try the XAC's other USB external-input port.
  • Turn on Main Output and Gamepad Out, then confirm that the profile contains gamepad actions.


Buttons are mapped incorrectly


  1. Confirm that Xbox Adaptive Controller layout is selected in Connections → PlayAbility Receiver.
  2. Review the active XAC profile in the Xbox Accessories app.
  3. Test one button at a time to identify whether the remapping is in PlayAbility or the XAC profile.


LT or RT is not accepted through the receiver


The current PlayAbility XAC receiver layout does not include direct analog LT or RT values in its receiver report. To use those trigger actions:


  • Map a working PlayAbility button and remap it to LT or RT in the Xbox Accessories app.
  • Use a physical trigger or switch connected directly to the appropriate XAC input.


PC games no longer detect PlayAbility's virtual controller


This is expected while Receiver output is enabled. Turn off Enable Bluetooth Serial Communication to restore local virtual-gamepad output.


Limitations and safety


  • The receiver complements the XAC; it does not replace the XAC's own profiles, switches, or target connection.
  • XAC USB-port behavior and remapping are controlled by Microsoft and may change with controller firmware or Xbox Accessories updates.
  • Only PlayAbility gamepad actions are sent through the receiver route.
  • Avoid unplugging the receiver or XAC while an action is held. Release all inputs first.

Updated on: 29/07/2026