Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xbox Series X controllers detect no or incorrect batterie levels when connected via BT #49

Open
javsp opened this issue Nov 16, 2020 · 59 comments
Labels
external issue/bug Can't be fixed on my side since the cause lies with some external component

Comments

@javsp
Copy link

javsp commented Nov 16, 2020

It detects the controller (I use bluetooth) but it won't show the battery level.

@javsp javsp changed the title Does this app work with the new Xbox Series X Does this app work with the new Xbox Series X? Nov 16, 2020
@javsp javsp changed the title Does this app work with the new Xbox Series X? Does this app work with the new Xbox Series X controller? Nov 16, 2020
@NiyaShy
Copy link
Owner

NiyaShy commented Nov 17, 2020

Hey,
so far I got neither positive nor negative feedback for the Series X controllers, but unless MS radically changed something on the protocol/API (which is rather unlikely) they should work.
Have you tried if they properly work with (older) XB-controller enabled games? That would be a good indicator that they still use the same API. Another test would be if Steam big picture mode can detect a battery level.
And we still have the "issue" that it sometimes takes several minutes until a battery level is detected. But that usually clears itself once you actually use the controller and press a few buttons.

@javsp
Copy link
Author

javsp commented Nov 17, 2020

The controller works in all games (just like the old XB1 controller). The app detects the controller but it's waiting for data. It shows that message no matter if I wait several minutes and I press some buttons. BTW, I'm using the official Play & Charge Kit instead of the 2 batteries (I don't know if it matters). I obviously don't use the cable (the new USB-C cable) until I need to charge the kit. I can see the current battery level in my bluetooth devices list but I'd like to see this info in the taskbar.

And yes, Steam also shows the warning battery icon but it’s not very useful.

@NiyaShy
Copy link
Owner

NiyaShy commented Nov 17, 2020

K, thanks for the info. Since it works everywhere there should be no API changes. And when Steam can show the battery level, polling it should also work in general.
P&C kit or batteries doesn't matter. And the fact that it's connected via BT should also not matter since I got reports that the XBOne-S controllers worked fine via dongle and BT.

So, the thing is: until someone else who also uses the XBOne-X controller on windows via BT reports back if it works for them, I can't say if it's a general issue with those controllers or just a problem on your side...

@javsp
Copy link
Author

javsp commented Nov 17, 2020

Ok, let's wait for more reports. One thing I want to highlight is the fact that I had to update W10 recently. W10 didn't correcly detect this controller in previous versions. My current OS version is: W10 Pro x64 20H2 (19042.630). I think iit's the latest one.

Also, regarding Steam, I have to use the beta version which recently added support to this new XBOX controller via wireless (it's still recognized as an XB1 controller but it works well). So I guess something must have changed.

@tandrasi
Copy link

@javsp I can confirm that this is happening to me too. The app constantly waits for data but when plugged in, the app says battery is at 100% (which it is not). The Bluetooth panel jumps between 80%-90% charged (I've been plugging in and out a few times for testing and have left it to charge for 1 hour). Even Microsoft's own "Gamebar" (Win Key + G) reports erroneous information as it might be using the old API too:

image

@javsp
Copy link
Author

javsp commented Nov 20, 2020

@tandrasi Yeah, Microsoft's Gamrbar also reports the same thing to me. In fact, I have no way to check the battery level on W10. I think the guide button light is orange while charging on console and turns white when it's fully charged but I don't have the console, :(

@tandrasi
Copy link

@javsp yup, really sucks. I too don't have the console, just the new controller and no reliable way of checking battery in W10. Sigh

@NiyaShy NiyaShy added the bug label Nov 20, 2020
@NiyaShy
Copy link
Owner

NiyaShy commented Nov 20, 2020

Thanks for reporting back tandrasi, since it affects at least you 2 it's (for now) safe to assume that it is in fact a general issue. Flagged as bug for now until I find out more. Like I said before, since I can't try it myself (still using "classic" XBOne controllers) it'll be a shot into the dark until I find more info about if there were any changes that can cause this.

@NiyaShy NiyaShy changed the title Does this app work with the new Xbox Series X controller? Xbox Series X controllers detect no or incorrect batterie levels when connected via BT Nov 20, 2020
@tandrasi
Copy link

Thanks @NiyaShy!

@javsp
Copy link
Author

javsp commented Nov 20, 2020

Thanks.

I guess Microsoft has also changed something in the protocol with this new controller and that's why it's not correctly reporting the remaining battery level. First, they need to fix that and then (maybe) the 3rd party software will work fine again.

@MorbidEden
Copy link

I have this issue as well with the new controller via BT. I don't know if this will help, but when looking at the properties in Windows ( Pro x64 20H2 19042.630) under "Device Information" compared to the old XBOne controller, the new "Model" is "Bluetooth LE Device" with a 12 digit hex number. Not sure if the hex number is device specific.

@LukeHx3
Copy link

LukeHx3 commented Nov 26, 2020

Hello,
I am having the same problem here, it seems to work fine when connected with the dongle (controller detected and battery level reported) but it only detects the controller when connected with BT and never shows the battery level.
It works fine in game in both cases and the battery level is reported in the BT parameters. However the BT menu says it is full when the Windows game bar says it's almost empty (same in Steam).
One last thing, I got an update of the controller firmware today, before that it wasn't even detected when connected in BT (also in the XBox Accessories app) and steam saw the controller as generic.
It seems to me that there might be some things not working properly when connected in BT

@NiyaShy
Copy link
Owner

NiyaShy commented Nov 26, 2020

Thanks for the feedback and for the info that it only affects BT and not the XB dongle. I'm already trying out one possible option for tackling this, but that can take a while.

For context if anyone is interested: the component/plugin that is currently used for addressing the XInput API (SharpDX) was discontinued over a year ago. So if there were any changes/updates on the API, they won't get integrated there. I already found an alternative (Vortice.Windows), but using it will require some major changes on the code base. So far the program was based on .NET framework 4.5.2 (or higher), but Microsoft also more or less discontinued it a while ago and wants to migrate to the new variant .NET core which is cross-platform compatible (aka, it can be used on systems that don't run Windows).

tl;dr: I'm experimenting with migrating the program to .NET core, when that works I can switch to Vortice.Windows which should include possible updates to the XInput API which might help with the problem.

As I said, it's a blind shot and not guaranteed to have any effect, but it's worth a try.

@Friday-The13-rus
Copy link

I tested BT connection with XBox One controller and battery level displays correctly.

Basically, xinput api does not changing so often. Currently it has 3 versions and no new version released for Series X controller. SharpDX and Vortice use the same dlls and methods.
From my point of view, this issue can be fixed by updating controller firmware (when it will be available).

@javsp
Copy link
Author

javsp commented Nov 27, 2020

What it surprises me is that the DS4 controller, for example, has a very good wireless support over bluetooth. Of course you need a 3rd party software (basically a XInput controller emulator) to benefit from all these features. On the other hand, it seems this new XBOX controller was designed for the new console in mind and the only reason why it works on W10 is because it has native XInput support (just like the old XBOX controllers). But this support is far from perfect (specially via BT). I hope Microsoft releases a new firmware to improve the compatibility of this controller on W10.

Also, @NiyaShy thanks for the info. I'm following this thread to get informed about this issue.

@cannockwolf
Copy link

I have the same issues with the new controller, game bar and this app, but interestingly in the 'bluetooth and other devices' window the battery is shown correctly

@tandrasi
Copy link

tandrasi commented Dec 1, 2020

I have the same issues with the new controller, game bar and this app, but interestingly in the 'bluetooth and other devices' window the battery is shown correctly

@cannockwolf while the 'bluetooth and other devices' windows does show the battery, it is highly inaccurate. From my testing, it seems there is a 10% variance (margin of error) in its reporting (regardless of device). So as it stands, there is no accurate way of getting the battery level :(.

@cannockwolf
Copy link

I have the same issues with the new controller, game bar and this app, but interestingly in the 'bluetooth and other devices' window the battery is shown correctly

@cannockwolf while the 'bluetooth and other devices' windows does show the battery, it is highly inaccurate. From my testing, it seems there is a 10% variance (margin of error) in its reporting (regardless of device). So as it stands, there is no accurate way of getting the battery level :(.

Damn 😞

@Yousof-N
Copy link

Same issue here with Xbox Series X controller.
Hope it gets fixed soon. The battery values reported in Xbox game bar and steam are highly inaccurate indeed.

@cannockwolf
Copy link

I bought the xbox wireless adapter, had to manually update the drivers though to get it to work 🙄 and connectivity had been 100% rock solid with no issues

the battery level with your app seems to look right too, although I have no way of checking it 100% but it's perfect for me to know when to swap out the rechargeables so I'm a happy bunny now

@javsp
Copy link
Author

javsp commented Dec 13, 2020

Would it be possible to add an option to get this value and show it on taskbar? It's not very accurate but at least you would know it's time to charge/replace the battery when that value is (let's say) < 20%. It would be even more great if it shows some kind of warning each time this happens.

@NiyaShy
Copy link
Owner

NiyaShy commented Dec 13, 2020

Possible: probably. But since Bluetooth connections are a completely different subsystem...
The current polling via XInput doesn't care how the controller is connected as long as it registers itself as a controller towards the system. It really just looks for XInput-compatible controllers and asks them to report their battery level (which is determined by the controller itself).

Getting the value from your screenshot on the other hand would require to specifically look for bluetooth controllers and asking them about their battery level via whichever API is used for that.

@peterek1983
Copy link

peterek1983 commented Jan 6, 2021

Battery level work fine with Xbox Series X controller when you will connect it via Microsoft Wireless Adapter.
On Bluetooth connection doesn't work, same happen on Windows Xbox Bar battery level.

Wireless Adapter is best option way batter than Bluetooth because controller connect way faster instant, also it can send audio to controller, I heard that also is lower input lag.

But I noticed bug in XB1ControllerBatteryStatus, maybe it's not a bug but problem, when I use program reWASD with Virtual controller mapping then XB1ControllerBatterystatus shows wired connection instead of battery level.
Would be nice if you can fix if possible.
What do reWASD when use Virtual Controller Xbox 360 on Xbox One joypad, it hide real controller in system, and replace it for this Virtual X360 controller.

@javsp
Copy link
Author

javsp commented Jan 7, 2021

Battery level work fine with Xbox Series X controller when you will connect it via Microsoft Wireless Adapter.
On Bluetooth connection doesn't work, same happen on Windows Xbox Bar battery level.

There are 2 problems with the Microsoft Wireless Adapter:

1- The most important one. Microsoft stopped selling this product some years ago. It's really hard to find it (al least the official one). If they had the intention that PC players used this controller via bluetooth, damn, make it fully compatible.

2- That adapter is a monolith compared to any current BT dongle.

@peterek1983
Copy link

peterek1983 commented Jan 7, 2021

No, new small adapter is available. It's even sell with new Xbox Series X controller as pack. Check Microsoft Store.

New adapter is small, compare to typical small USB pendrive, of course much bigger thant Bluetooth nano adapters.

Bluetooth connection is much worse, I tested Series X connection with USB Dongle Asus BT-400, and neweset BT-500 Bluetooth 5.0 adapter and this controller connect very long until establish connection 4-9 flashes on controller.
On Wireless adapter always connect instantly with one flash. Also I connect my headeset directly to controller and have sound.
Also on Bluetooth I had random disconnects on this new Series X controller, that's why I move to Wireless Adapter and was worth. I don't even think back to Bluetooth connection with my PC.

@javsp
Copy link
Author

javsp commented Jan 7, 2021

I didn't know Microsoft released a new Wireless Adapter with this new controller. Unfortunately it's out of stock on the Microsoft Store (at least in my country).

I'm not experiencing any of those disconnections, the controller connects in about 5-6 secs (I can deal with it) and I don't connect any headset to the controller but the impossibility to precisely check the battery level with every app it's annoying. I will be aware of the restock of this new Adapter.

@peterek1983
Copy link

Nice to hear, good choice, same with my, work perfect since two months.

@blackhorse088
Copy link

Blame Mircosoft for their poor to no work at all on their BT driver support.
I guess it's part of their marketing for the adapter.
But I decided, the next controller for me is going to be PS series, mainly not to support Microsoft anymore.

@outlawjake08
Copy link

That's a Series X/S controller right? I think I have the same issue. Pretty sure its related to the same problem many people had just getting these controllers to work on Windows 10 via BT.

For moment we're just going to have to leave it and hope they fix it with a Windows update. I don't use my Series X controller much on PC as I've got two other Xbox One controllers.
0ed43813-cba3-48dd-bbfa-61c35940a14b

@NiyaShy
Copy link
Owner

NiyaShy commented Feb 18, 2021

Thanks for all the feedback folks, really seems like MS did a bad job on the BT implementation and that causes the issues...

I'll leave this open so others can easily find it and report back once MS maybe improves the situation.

@NiyaShy NiyaShy added external issue/bug Can't be fixed on my side since the cause lies with some external component and removed bug labels Feb 18, 2021
@NiyaShy NiyaShy pinned this issue Feb 18, 2021
@outlawjake08
Copy link

Just tried with the two AA batteries included with the controller which I assume are brand new (they were sealed) and it still shows "HID compliant game controller: Critical" in the game bar app. Does this thing just not work and maybe the battery pack is fine? Is there really no way to see your controller's battery percentage in Windows? Please Xbox Series X/S Controller's Update
2021-11-08 (7)
By Tekno Blast

@MorbidEden
Copy link

@outlawjake08 This program has nothing to do with Microsoft's Game Bar nor Microsoft itself.

@teknoblast868

This comment has been minimized.

@teknoblast868

This comment has been minimized.

@NiyaShy
Copy link
Owner

NiyaShy commented Apr 8, 2021

@teknoblast868 will you actually contribute to the issue/discussion for once and not just copy text and re-post pictures from other people please?

@teknoblast868

This comment has been minimized.

@teknoblast868
Copy link

Same issue here! I mean there is not even a charging indicator like a simple LED on their hardware. 100% blackbox in terms of anything battery related. BRAVO!
4178f108-bfc5-49a6-8a15-02d4f548bc97

@Artstup
Copy link

Artstup commented Apr 26, 2021

Hi. Through the "gamepad battery status" (application from the microsoft store), the charge of the xbox SX gamepad is displayed. Tested on the Xbox Play and Charge Kit and the batteries that came with the controller.

@mati865
Copy link

mati865 commented Apr 26, 2021

@Artstup just tested and it does not work. Please do not spam this thread.

@RenanZX
Copy link

RenanZX commented May 15, 2021

Is there a way to get the information of battery level in bluetooth devices and show it on this indicator software? Because windows bluetooth device apparently shows the correct battery level here:

image

@NiyaShy
Copy link
Owner

NiyaShy commented May 15, 2021

From all I've heard in this thread so far the battery level reported by any program when the controller is connected via BT is totally random/off, so unless Microsoft finally did something to fix that, no chance.
I can only repeat what I probably already said earlier: xb1cbi only asks the controller about its battery level (via the XInput API), so anything that gets reported comes from the controller. There's nothing I can do to make the controller report correct values, only MS can.

@gotdown
Copy link

gotdown commented Jun 14, 2021

Just adding my report:

On Windows via Bluetooth, my Xbox series controller randomly pauses games, flashes, and disconnects, and always shows "HID compliant game controller: Critical" in the game bar app even when using brand new AAs, fully charged AAs, or a fully charged Microsoft rechargeable lithium ion battery pack. I've tested 4-5 known-good battery sets.

I'm using the latest controller firmware.

No problems when I'm plugged in via USB, but wow is that annoying.

@javsp
Copy link
Author

javsp commented Jun 14, 2021

Almost 6 months have passed since the acquisition of a Microsoft Wireless adapter. I can definitely say I've had 0 problems with it. Even with games that only support XBOX controllers via cable and not via wireless (like Kingdom Hearts) it perfectly works when you use the adapter (wirelessly and with no input lag).

It's sad that a controller that is natively recognized by Windows has a bad support when you connect it via Bluetooth. I guess Microsoft wants you buy this adapter instead of fixing its bluetooth drivers. At least they could avoid saying: this contrroller is fully compatible with bluetooth which is not true (for now).

@truehatch
Copy link

Just to point this out, there's other problems with the Bluetooth connection. In some games (for example Final Fantasy 14) it will scramble the button layout and the sticks are hyper sensitive. It also has intermittent connectivity issues (for example, in Assassin's Creed Valhalla the game stutters when a controller is connected or disconnected. With the Xbox controller in Bluetooth, it's basically constantly stuttering). These issues seem to stem from their implementation of Bluetooth. Microsoft's forums are full of their representatives telling people to update their controller firmware, but that doesn't do anything.

This has all been going on since the controller was released almost a year ago now, and there's no solution forthcoming. The point being, this isn't a software bug. It seems to be a hardware defect, and it will likely remain an issue until the next hardware revision or beyond.

@blackhorse088
Copy link

blackhorse088 commented Jun 15, 2021

@truehatch
The problem exist since the first XBOS controller, issues have been posted on forum since 2018 or earlier and it keeps growing to this day, last response from MS was on 2018, couple days after the post saying "We're working on update to fix this issue" and never after.

It's a driver issue not hardware to my believe, MS are too amateur to program the BT driver to emulate Xinput, but no, using totally different driver, in which when you plug the controller via USB while it's connected on BT, it shows 2 controllers plugged in.

I mean look at MS games, they can't make games for their own windows without tons of crashing and problems.
So don't expect any fix soon or at all.
I've updated my firmware, gamebar can see my controller battery now but the controller XB button is acting funny ever since.

@RenanZX
Copy link

RenanZX commented Jul 14, 2021

Who else still waiting for a solution to see the status from xbox series controller, someone make an app like the battery indicator that you can see the battery status on bluetooth from xbox series s/x controller:

https://github.com/tommaier123/XBatteryStatus/tree/V1.0.1

It works well, the only problem is that you can close it only in task manager, but it's a good solution to people that can't acquire an adapter.

@NiyaShy
Copy link
Owner

NiyaShy commented Jul 14, 2021

Interesting. As long as it works that's good for you guys, but from all I've read in this discussion the BT implementation itself that MS uses is buggy/unstable, so it will be hard to tell if the values XBatteryStatus displays are true or just as random as other tools have shown.

@RenanZX
Copy link

RenanZX commented Jul 16, 2021

@NiyaShy From what i have tested here, apparently is correct, when it warns up that my batteries was low, i put it to recharge(i have a intelligent recharger of batteries), i see that was really low, so it's working. I don't know if the values are correct, but I should know if they could be wrong.

@NiyaShy
Copy link
Owner

NiyaShy commented Jul 17, 2021

Good to know, thanks for testing. So it seems the buggy behaviour only happens when you have the controller connected via BT and then try to poll the battery level via XInput. If your tests are correct, they seem to report correct values via the BT API.

If that's really the case... Nah, not gonna implement BT support just for that, especially since I'm not even sure if those 2 systems can work together and if I'd be able to match a controller detected via XInput with its BT profile...

Sure, it sucks for those who want to use them via BT, but as long as they work fine via the proprietary dongle I'm not willing to spend time on fixing/circumventing Microsofts f*ckups.

@vadim-miheev
Copy link

Who else still waiting for a solution to see the status from xbox series controller, someone make an app like the battery indicator that you can see the battery status on bluetooth from xbox series s/x controller:

https://github.com/tommaier123/XBatteryStatus/tree/V1.0.1

It works well, the only problem is that you can close it only in task manager, but it's a good solution to people that can't acquire an adapter.

Great solution. Really works)
In fact, it simply copies information about the charge from windows bluetooth devices panel. But I checked with a multimeter and different power sources - the information is quite accurate. And most importantly, there is a notification about a low charge. It was really bad without it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external issue/bug Can't be fixed on my side since the cause lies with some external component
Projects
None yet
Development

No branches or pull requests