• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Someone test this PollingInterval "tweak"... (bluetooth controller required)

Status
Not open for further replies.
Joined
Jan 3, 2023
Messages
525
I did a tweak to the key's associated with the Dual Sense in regedit. I need someone to test this to see if it is a placebo since this isn't mentioned anywhere online as far as I know. I tried browsing Microsoft docs/learn and couldn't find any information on the PollingInterval on BTHPORT, it is typically associated with the network related keys, not bluetooth specific. Anytime I search it online nothing comes up. Searches I've made: google 1 un-related result, bing - zero results.

Can't seem to find any ways to test the polling rate of the controller, I tried with mouse and keyboard polling rate software and it doesn't work. But I believe it is at least 1000Hz polling rate, it feels a bit better than DS4Windows at 1000Hz, maybe due to not needing the ViGEmBus driver.

The specific change I made was:
  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices
  2. Locate the keys associated with the dual sense, there should be 3, the three associated with my dual sense controller are 48188d9f9645, 4cb99b03d5e8, ac361b5de1e, it's different on all controllers I assume, I found the matching keys in device manager > dual sense > properties > details (check each DualSense device in Device Manager).
  3. Right-click key e.g., 48188d9f645 new > DWORD (32-bit) Value`, name it `PollingInterval`, set the value to 1 or interval time (in ms) ( 1 = 1000Hz, 2 = 500Hz, 4 = 250Hz, 4 feels the most like the Dual Sense at default but the default is actually 285Hz ).
  4. Restart PC
I'm just hoping someone knows of a tool I can verify it with other than DS4Windows since that uses a separate driver. I would appreciate it if someone tried this out to let me know if I'm seeing a placebo, you could always revert it by deleting the added entries. I've been using this "tweak" for a few days, haven't noticed any additional battery drain, though there probably is a slight decrease if it is increasing the polling rate. Please test using Steams controller support not DS4Windows.
 
Last edited:
If I'm not mistaken Bluetooth devices are limited to a polling rate of 125 Hz. My understanding is that devices that advertise higher polling rates than this, like mice, do not actually have commands detect at a faster rate. That may have changed with BT4 or BT5, though.

You can use an input latency test to see if it is actually responding quicker. Xbox controllers over Bluetooth have about 8ms of latency before display latency, which corresponds to a 125 Hz polling rate. I use my 8bitdo SN30+ Pro over Bluetooth and I don't notice significant latency on my OLED, for what it's worth.
 
If I'm not mistaken Bluetooth devices are limited to a polling rate of 125 Hz. My understanding is that devices that advertise higher polling rates than this, like mice, do not actually have commands detect at a faster rate. That may have changed with BT4 or BT5, though.

You can use an input latency test to see if it is actually responding quicker. Xbox controllers over Bluetooth have about 8ms of latency before display latency, which corresponds to a 125 Hz polling rate. I use my 8bitdo SN30+ Pro over Bluetooth and I don't notice significant latency on my OLED, for what it's worth.
You're right about the Hz, it is 133Hz 7.5ms for BT 4.0-5.3, earlier generations were 125Hz.

Not sure how this tweak changes things now, I would still appreciate if someone tested it.

Do you have a recommendation on an input latency test that is fairly precise? I don't want to have to rig my controller with an LED, though that would be more accurate. But in my real-world testing I feel a difference and I don't think it was placebo otherwise I wouldn't have posted it.
 
Ok I think I understand the change now. I decided to ask ChatGPT before looking more incompetent that I already am. Seems more like a software tweak more than an actual polling rate tweak.

Me: explain this registry value and how it impacts the latency:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices[device id](DWORD) PollingInterval = 1
ChatGPT:
The registry value you're referring to, PollingInterval, under the path HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id], is used to set the polling interval for Bluetooth devices. Here's a detailed explanation of what it does and how it impacts latency:

What the Registry Value Does​

  • Registry Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id]
    • This path specifies settings for Bluetooth devices on your system. The [device id] represents the unique identifier for a particular Bluetooth device.
  • PollingInterval (DWORD):
    • This value sets the interval at which the Bluetooth stack polls the specified device for data.

Impact on Latency​

  • Polling Interval:
    • The PollingInterval value specifies the time in milliseconds between each polling event. Setting this value to 1 means the system will poll the Bluetooth device every 1 millisecond. This effectively increases the polling rate to 1000Hz.
  • Reduced Latency:
    • By setting a very low polling interval (e.g., 1ms), the system checks for updates from the Bluetooth device more frequently. This can significantly reduce input latency, making the device (e.g., a controller) feel more responsive.
  • Higher Responsiveness:
    • A lower polling interval can lead to quicker detection of inputs, which enhances the responsiveness of the device. This is especially beneficial for gaming, where milliseconds can make a difference in reaction times.

Considerations​

  • Bluetooth Hardware and Drivers:
    • The effectiveness of this setting depends on the capabilities of your Bluetooth hardware and drivers. Some Bluetooth adapters may not handle extremely low polling intervals well, potentially leading to instability or connection issues.
  • System Performance:
    • Polling devices more frequently can increase CPU usage and power consumption. While this may not be a significant issue for powerful systems, it could impact performance on lower-end hardware or affect battery life on laptops.
  • Device Compatibility:
    • Not all Bluetooth devices may respond well to very high polling rates. Testing and monitoring are recommended to ensure stable performance.

How to Apply the Change​

  1. Open Registry Editor: Press Win + R, type regedit, and press Enter.
  2. Navigate to the Path: Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id].
  3. Modify PollingInterval:
    • If PollingInterval does not exist, create a new DWORD (32-bit) Value named PollingInterval.
    • Set the value to 1 (or another desired value in milliseconds).
  4. Restart the System: For the changes to take effect, restart your computer.
By making this registry change, you may notice a reduction in input latency for your Bluetooth device, leading to a more responsive gaming or usage experience. However, keep an eye on system performance and stability to ensure that the lower polling interval does not introduce any adverse effects.

Me: So it technically does not adjust the polling rate of Bluetooth, but the way the software polls the device?
ChatGPT:
Yes, that's correct. The PollingInterval registry value doesn't change the inherent polling rate capability of the Bluetooth hardware itself, which is typically limited to around 133Hz. Instead, it adjusts how frequently the software (in this case, the Windows Bluetooth stack) polls the Bluetooth device for updates.

Here's a clearer breakdown:

What PollingInterval Actually Does​

  • Software Polling Frequency:
    • The PollingInterval value controls how often the Windows Bluetooth stack queries the connected Bluetooth device for new data. Setting it to a lower value (e.g., 1ms) means the software will check for updates more frequently, up to 1000 times per second.

Impact on Perceived Performance​

  • Improved Responsiveness:
    • By increasing the frequency of these polling events, the software can process inputs from the Bluetooth device more quickly, which can reduce the overall input latency and improve the responsiveness of the device.
  • Software-Level Optimization:
    • This setting allows for more timely detection of inputs, providing a smoother and more immediate user experience, especially noticeable in latency-sensitive applications like gaming.

Considerations and Limitations​

  • Hardware Constraints:
    • The actual transmission rate between the Bluetooth device and the adapter is still limited by the Bluetooth technology, which typically can't support true 1000Hz polling. However, the more frequent software polling can mitigate some of the latency introduced by less frequent hardware polling.
  • System Performance:
    • Polling the device more frequently can increase CPU usage and potentially affect system performance, particularly on lower-end systems or those with multiple Bluetooth devices.
  • Battery Life:
    • For portable devices, increasing the polling frequency can lead to higher power consumption, impacting battery life.

Practical Effect​

  • Enhanced Input Handling:
    • The more frequent polling by the software allows for quicker processing of inputs, which can create the sensation of reduced latency and increased responsiveness, even if the underlying Bluetooth hardware is not technically polling at 1000Hz.
By setting the PollingInterval to a very low value, you're essentially optimizing how the software handles input data from the Bluetooth device, resulting in improved performance and a better user experience. This optimization is particularly beneficial in scenarios where low latency is crucial, such as gaming.

Inherently ChatGPT isn't always correct but so far this might be a decent explanation.
 
Ok I think I understand the change now. I decided to ask ChatGPT before looking more incompetent that I already am. Seems more like a software tweak more than an actual polling rate tweak.

Me: explain this registry value and how it impacts the latency:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices[device id](DWORD) PollingInterval = 1
ChatGPT:
The registry value you're referring to, PollingInterval, under the path HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id], is used to set the polling interval for Bluetooth devices. Here's a detailed explanation of what it does and how it impacts latency:

What the Registry Value Does​

  • Registry Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id]
    • This path specifies settings for Bluetooth devices on your system. The [device id] represents the unique identifier for a particular Bluetooth device.
  • PollingInterval (DWORD):
    • This value sets the interval at which the Bluetooth stack polls the specified device for data.

Impact on Latency​

  • Polling Interval:
    • The PollingInterval value specifies the time in milliseconds between each polling event. Setting this value to 1 means the system will poll the Bluetooth device every 1 millisecond. This effectively increases the polling rate to 1000Hz.
  • Reduced Latency:
    • By setting a very low polling interval (e.g., 1ms), the system checks for updates from the Bluetooth device more frequently. This can significantly reduce input latency, making the device (e.g., a controller) feel more responsive.
  • Higher Responsiveness:
    • A lower polling interval can lead to quicker detection of inputs, which enhances the responsiveness of the device. This is especially beneficial for gaming, where milliseconds can make a difference in reaction times.

Considerations​

  • Bluetooth Hardware and Drivers:
    • The effectiveness of this setting depends on the capabilities of your Bluetooth hardware and drivers. Some Bluetooth adapters may not handle extremely low polling intervals well, potentially leading to instability or connection issues.
  • System Performance:
    • Polling devices more frequently can increase CPU usage and power consumption. While this may not be a significant issue for powerful systems, it could impact performance on lower-end hardware or affect battery life on laptops.
  • Device Compatibility:
    • Not all Bluetooth devices may respond well to very high polling rates. Testing and monitoring are recommended to ensure stable performance.

How to Apply the Change​

  1. Open Registry Editor: Press Win + R, type regedit, and press Enter.
  2. Navigate to the Path: Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices\[device id].
  3. Modify PollingInterval:
    • If PollingInterval does not exist, create a new DWORD (32-bit) Value named PollingInterval.
    • Set the value to 1 (or another desired value in milliseconds).
  4. Restart the System: For the changes to take effect, restart your computer.
By making this registry change, you may notice a reduction in input latency for your Bluetooth device, leading to a more responsive gaming or usage experience. However, keep an eye on system performance and stability to ensure that the lower polling interval does not introduce any adverse effects.

Me: So it technically does not adjust the polling rate of Bluetooth, but the way the software polls the device?
ChatGPT:
Yes, that's correct. The PollingInterval registry value doesn't change the inherent polling rate capability of the Bluetooth hardware itself, which is typically limited to around 133Hz. Instead, it adjusts how frequently the software (in this case, the Windows Bluetooth stack) polls the Bluetooth device for updates.

Here's a clearer breakdown:

What PollingInterval Actually Does​

  • Software Polling Frequency:
    • The PollingInterval value controls how often the Windows Bluetooth stack queries the connected Bluetooth device for new data. Setting it to a lower value (e.g., 1ms) means the software will check for updates more frequently, up to 1000 times per second.

Impact on Perceived Performance​

  • Improved Responsiveness:
    • By increasing the frequency of these polling events, the software can process inputs from the Bluetooth device more quickly, which can reduce the overall input latency and improve the responsiveness of the device.
  • Software-Level Optimization:
    • This setting allows for more timely detection of inputs, providing a smoother and more immediate user experience, especially noticeable in latency-sensitive applications like gaming.

Considerations and Limitations​

  • Hardware Constraints:
    • The actual transmission rate between the Bluetooth device and the adapter is still limited by the Bluetooth technology, which typically can't support true 1000Hz polling. However, the more frequent software polling can mitigate some of the latency introduced by less frequent hardware polling.
  • System Performance:
    • Polling the device more frequently can increase CPU usage and potentially affect system performance, particularly on lower-end systems or those with multiple Bluetooth devices.
  • Battery Life:
    • For portable devices, increasing the polling frequency can lead to higher power consumption, impacting battery life.

Practical Effect​

  • Enhanced Input Handling:
    • The more frequent polling by the software allows for quicker processing of inputs, which can create the sensation of reduced latency and increased responsiveness, even if the underlying Bluetooth hardware is not technically polling at 1000Hz.
By setting the PollingInterval to a very low value, you're essentially optimizing how the software handles input data from the Bluetooth device, resulting in improved performance and a better user experience. This optimization is particularly beneficial in scenarios where low latency is crucial, such as gaming.

Inherently ChatGPT isn't always correct but so far this might be a decent explanation.
Like you, I haven't been able to find any reference to a "PollingInterval" registry value related to Bluetooth network communication. I have found plenty of documentation about it in the UEFI specification as a function variable, though. In Windows it's used for WMI interrupts and the value is equal to the number of whole seconds, not milliseconds.
 
You're right about the Hz, it is 133Hz 7.5ms for BT 4.0-5.3, earlier generations were 125Hz.

Not sure how this tweak changes things now, I would still appreciate if someone tested it.

Do you have a recommendation on an input latency test that is fairly precise? I don't want to have to rig my controller with an LED, though that would be more accurate. But in my real-world testing I feel a difference and I don't think it was placebo otherwise I wouldn't have posted it.
Nothing is that precise without connecting the controller to an intermediary device, but the delta can give you an idea.

Gamepadla looks to be pretty good.
https://gamepadla.com

Further research shows the max polling rate was actually increased to 250 Hz/4ms with BT5? Looking at the latencies reported on the above website seems to confirm that. If that is the case I would definitely say it's a placebo.
 
Someone just test it and confirm it's a placebo, it would help me decide if I need to start looking into medical treatment for my deteriorating brain.
 
Status
Not open for further replies.
Back
Top