Pull the exact identifying details your browser receives from your controller, name, vendor and product ID, button and axis counts, and an honest read on connection type and battery reporting, with no guessing and no invented numbers.
Most of what this page shows comes directly and reliably from the Gamepad API's own identifying string and structure, the controller's name, its button and axis counts, and in the great majority of cases, a vendor ID and product ID baked directly into that same string. Those are genuine hardware identifiers, not estimates, and this page parses them out for you rather than asking you to read raw text yourself.
Two items on this page are different and worth being upfront about. The Gamepad API has no battery property at all, for any controller, in any browser, so this page cannot report a battery percentage, and does not pretend to. Connection type, whether you are on USB or Bluetooth, is also not something the API states directly, though a number of controllers happen to mention it inside their own identifying string, so this page checks for that honestly and says plainly when it cannot tell, rather than guessing.
Checking for a controller…
No controller detected
Connect a controller by USB or Bluetooth, then press any button. Most browsers will not notice it until you do.
This is whatever text your operating system and browser have decided to report for this specific device, which can range from a clean, recognisable model name to a more generic chipset description, particularly on third party or budget controllers. A generic sounding name does not indicate a problem, it simply reflects what that hardware's drivers chose to advertise.
These are four digit hexadecimal codes that identify the manufacturer and the specific product model, the same numbering system used at the USB and Bluetooth hardware level industry wide. This page extracts them directly from the identifying string your controller provided, when that string includes them, which covers the large majority of controllers reporting through a standard implementation. A vendor ID of 045e belongs to Microsoft, 054c belongs to Sony, and 057e belongs to Nintendo, so confirming these two codes is a reliable way to verify a controller's true manufacturer even when the name text itself looks unclear or generic.
Genuinely reported only when the controller's own identifying string happens to mention it directly, commonly the word wireless appearing for a Bluetooth connection. When no such hint is present in the string, this page says plainly that connection type was not reported, rather than guessing based on assumptions that could easily be wrong.
A direct, exact count of how many buttons and axes your controller's object reports, taken straight from its own arrays with nothing inferred. Most standard mapped controllers report 17 buttons and 4 axes, and a controller reporting more usually has genuine extra hardware, additional paddles, a touchpad click, or other brand specific extras, reflected honestly in this count.
Always shown as not available through this API, for every controller, in every browser, because no such property exists to read from. If you specifically want to track your controller's battery behaviour over time, the dedicated Battery Health Checker and Battery Drain Rate Calculator on this site are built around that exact limitation honestly, using manual logging and timed session calculations rather than a direct reading that does not exist.
Vendor and product IDs are the most reliable way to confirm exactly which piece of hardware you are actually dealing with, useful well beyond simple curiosity. If you are trying to source a replacement part, the right stick module or shell, for example, matching against the precise product ID rather than a marketing name avoids ordering a part for a similar but subtly different revision of a controller. If you are troubleshooting odd behaviour and asking for help anywhere, including from us, providing the exact vendor and product ID removes any ambiguity about which specific hardware revision is actually involved, since multiple controllers can share a similar looking name while being meaningfully different underneath.
Button and axis counts matter for similar reasons when working with an unusual or off brand controller, confirming exactly how many inputs your specific unit exposes before assuming it matches a standard layout you might be more familiar with from a major brand.
Plug in over USB, or pair over Bluetooth in your system settings first. Chrome, Edge, and Firefox all support the controller out of the box once it is paired.
Pair the controller in your device's Bluetooth settings, then open this page in Chrome. Other Android browsers vary in their support.
Pair an MFi or Bluetooth controller in Settings, then open this page in Safari. iOS has supported the same Gamepad API since version 14.5.
Plug in over USB or pair over Bluetooth, then use Chrome or Firefox. Some distributions need a one time udev rule for certain Bluetooth controllers to be recognised by the operating system at all. If the controller is not visible at the system level, it will not be visible here either.
A small number of controllers, particularly some Bluetooth implementations and certain third party brands, report an identifying string without these codes embedded in it at all. This is a limitation of what that specific controller and operating system combination chose to expose, not something this page failed to read.
This is common on third party and budget controllers that report the name of their internal chipset rather than a polished marketing name. Check the vendor ID specifically, since it still reliably identifies the true manufacturer even when the name text itself is unhelpful.
Most controllers simply do not include this information in their identifying string at all, regardless of how they are actually connected, so this is the expected result for the majority of hardware rather than something specific to your setup.
Press a button first. Many browsers will not register a controller until they see its first input.
If a field will not populate, your vendor or product ID looks wrong, or you want help identifying an unusual controller from its raw string, reach out directly. Pasting the raw identifying string shown above into your message, along with your device and browser, is normally enough to help track down what is going on.
info.gpadviewer@gmail.comSign in to your account