bevyengine / bevyengine/bevy

Gamepad not giving back correct data when connected while app is running

Open
#13,853 1 comment 0 reactions 0 assignees View on GitHub
A-Input C-Bug S-Needs-Investigation
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## Bevy version

commit #13817

## Relevant system information

- Windows 10 PC
- 8BitDo Ultimate Controller (bluetooth)

## What you did

I started the gamepad_input example, and connected my gamepad.

## What went wrong

Instead of getting one gamepad connection event, three events are logged: "connected", "disconnected", and "connected" again.
After this the left stick will start logging, even when it is not being moved. The values of the stick are always either -1, or 1, depending on the direction it is moved in. No analog values are logged.

This behaviour does not happen when the gamepad is connected before the example is started. In that case everything works as expected.

## Additional information

This behaviour happens no matter if the gamepad is connected via usb or bluetooth.
It does not happen with my other (older 8bitdo) controller.

I tested my controller with GilRs, and it seemed to be working fine with the xinput feature enabled. Without this feature, I did see the 3 connection events, but did not see any further events.

Contributor guide

Open the contributing guide

Research direction

Start with the gamepad_input example and the connection and axis events it logs, then compare the behavior with GilRs using its xinput feature on Windows. Reproduce the USB and Bluetooth cases with the 8BitDo Ultimate Controller; done means one connection event and stable analog stick values when the controller is connected while the app is running.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.