Overclock.net banner

1 - 20 of 848 Posts

·
Registered
Joined
·
575 Posts
Discussion Starter #1 (Edited)
Preface:

If you can not underclock even then you can not overclock definitely!
Don't ask help for overclocking here without magic words "I can set a lower rate but not a higher".
And yes, to be 100% sure of the result it's good to know before trying to test NEW device that your SYSTEM allows such kind of overclocking with help of one of the "tested and approved" devices listed below.

Original post:

Testers wanted!

One month before I modified USB overclocking software for work in Win8 - Win10.

First and only fat bug was debugged yesterday :)

But nothing can stop overclocker. In development process i had seen one feature in code of USB3.0 host controller driver - so it's here: trying to reach polling rates higher than 1000 Hz!

What we need to try?
1. USB3.x host controller
2. Windows 8, 8.1 or 10 (actually we need microsoft driver for USB3.x host controller - USBXHCI.SYS)
3. USB mouse (low/full speed) attached to this controller. Don't mix "controller" and "port" - it's different concepts. You can verify which controller process your mouse in Device Manager, Devices By Connection (device tree) view (qsxcv screenshot from here http://i.imgur.com/wbm0WyX.png):



Do not use USB hubs (for first try), it can restrict rate, attach mouse to controller ports directly. In Device Manager mouse (or HID or composite devices) must be attached to "USB Root Hub" as at screenshot above. Some xHCI controllers like this VIA can have built-in/embedded USB hub for low/full/high speed devices so it's not possible to have 2000+ Hz on such hardware. And some non chipset or this Asmedia controllers are just restricted (hardware bug?) in interrupt rate probably. Some AMD chipset xHCI controllers restricted too.

4. Software:
hidusbf.zip - My official package from 2020-03-29
hidusbfn.zip - Addition for some recent versions of Windows (Win10 v.2004 checked). Using described below
Edit: High rate driver versions now included in this package (in appropriate folders).

How to install:
1. Install HIDUSBF and try to change rate (simply change). If this is successed goto 2
2. Take drivers from 2khz-4khz or 4khz-8khz folders and install it (copy to %systemroot%\system32\drivers\ directly or to the folder of hidusbf setup and then install service).
3. Reboot after 2!
4. Run setup.exe, and try to change rate to 31 or 62. Rate=31 actually equal to 2000 Hz, 62 - 4000 Hz for 2khz-4khz version. Rate=31 actually equal to 4000 Hz, 62 - 8000 Hz for 4khz-8khz version. (Don't forget to restart device.)
5. Check the rate (the best is MouseTester, but you can use dimr, mouserate, MouseMovementRecorder or any other software too). If rate is 31(62) then you done something wrong (new driver installation, USB controller type, newer version of USBXHCI.SYS not known to driver). If rate more than 31(62), but not more then 1000 Hz - you mouse is not capable of HARD overclocking


You can read manual README.2kHz-8kHz.ENG.TXT from jeshuastarr in hidusbf package too.

If anybody can reach actual rate more than 1000 Hz - post your mouse name here.
I personally try this already and my best overclockable mouse (a4tech bw-35) reach 1400 Hz average (unstable).

HARD result (thanks to qsxcv and mlt04 sensor):
WMO DOES 8000HZ POLLING
...and all mice with mlt04 are hard overclockable, of course.

and other hard result:
Zaunkoenig M1K
This mouse expressly made with hard overclocking in mind :)

Other good results:
nmouse 4k
kinzu v1
zalman zm-m600r (same as nmouse 4k)

Satisfactory results:
deathadder
Pro IntelliMouse

And other not so good result:
rog gladius fake 2000 Hz

P.S. Under modern versions of Windows 10 (whether you want hard or ordinary overclocking):
1. If you have problem with driver loading on version x64 1607+ disable Secure Boot or use registry settings.
2. If you have EHCI (USB2.0) Controller only on version x64 1703+ or any controller on version 1803+ use these drivers and (Test Mode or atsiv method with non Test Mode). If you use atsiv then check your AV (or something else like anti-cheat engine) in case you are unable to load atsiv. Or use atsiv and then unload it completely before loading of such engine. And yes, try not to make that mistake.

P.P.S. If you came here for ordinary (1000 Hz-) overclocking drivers and have Windows 7 (or previous version):
1. On Intel chipset with both EHCI and xHCI controllers (i.e. series 7x-9x) read this manual with this optional addition in case you can not overclock your mouse but still want to use xHCI controller.
Or you can use hidusbfn.zip and one of the two methods described above especially if you have modern Intel hardware with xHCI controller only.
2. VIA USB 3.0 xHCI controllers allow flawless (without its driver patching) overclocking of [Low Speed] devices up to 1KHz under Windows 7 (and XP and Vista probably).

P.P.P.S. JFYI (and for problem troubleshooting): There and following the links you will find the little descriptions of hidusbf internals and there - what it exactly does in system.

P.P.P.P.S. The latest checked system files. If you have files newer then these and can not overclock feel free to send them to me.
First (and main) - if you can not downclock then YOU do something wrong. Without exceptions. And no matter how your files are new.
Second - if you try to overclock device just in the same USB speed interval (for example Full Speed Device from 500 to 1000Hz) then this table is useless for you. There is no problem in software in this case, only hardware.

How to use the table.
1. Find your OS.
2. Find USB controller that controls your device. Use "Copy IDs" in Setup:
Code:
Device:
[b]"USB\VID_046D&PID_C03E\6&265D47D&0&3" [color=red](first line). This is unique internal name (ID) of device. Use it to restart this device only.[/color][/b]
"USB\VID_046D&PID_C03E&REV_2000"
  Name: USB Input Device
  Driver: HidUsb
  Binary: system32\DRIVERS\hidusb.sys
    Path: C:\Windows\system32\DRIVERS\hidusb.sys
    Version: 6.1.7601.24386 (win7sp1_ldr_escrow.190304-1700)
  [b]Binary: HIDUSBF.SYS
    Path: C:\Windows\System32\DRIVERS\HIDUSBF.SYS
    Version: 1.2.0.0
  LowerFilters: hidusbf
  BusSpeed: 0
  bInterval: 2
  Overrided.bInterval: 2[/b]

[color=red][b]Controller:[/b][/color]
"PCI\VEN_8086&DEV_1E2D&SUBSYS_50061458&REV_04\3&11583659&0&D0"
"PCI\VEN_8086&DEV_1E2D&CC_0C0320"
  Name: Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E2D
  Driver: usbehci
  Binary: \SystemRoot\system32\drivers\usbehci.sys
    Path: C:\Windows\system32\drivers\usbehci.sys
    Version: 6.1.7601.24138 (win7sp1_ldr.180502-0600)
  Binary: USBPORT.SYS
    Path: C:\Windows\System32\DRIVERS\[color=red][b]USBPORT.SYS
    Version: 6.1.7601.24138[/b][/color] (win7sp1_ldr.180502-0600)
or Device Manager if something is wrong with "Copy IDs":

3. Find Driver File name (as above).
You will find two (or even more) driver files in some cases, first is one of USBEHCI.SYS, USBUHCI.SYS or USBOHCI.SYS and second is USBPORT.SYS.
It's normal, we need the second, USBPORT.SYS.
4. Find Driver File version (use "Copy IDs" or Explorer to view property of file):

Then search in table by OS, File Name, and File Version.
If your file is newer then the latest version in the table then send it to me.
Column "HIDUSBFN needed"=Yes means that you have to take files from addition to main package and use Test Mode or atsiv on x64 OSes.
Column "Possible overclocking" describes what kind of overclocking you can have on this hardware and software combination.
LS=Low Speed (max 125 hz), BusSpeed: 0 (in Setup->"Copy IDs")
FS=Full Speed (max 1000 hz), BusSpeed: 1
HS=High Speed (max 8000 hz), BusSpeed: 2

For example on the screenshots i have Windows 10 x64 1903 (with some update), xHCI host controller, usbxhci.sys Driver File and its version is 10.0.18362.207.
In the table this row is present (10.0.18362.207 falls into 10.0.17134.1-10.0.19041.1 interval) and you have to use HIDUSBFN and can potentially overclock your device up to 8000 Hz.

Code:
OS            Controller Driver  HIDUSBFN  Possible
              File               needed    overclocking
-------------------------------------------------------
98,98SE,      usbport.sys,       No        LS->FS
ME,2000,      openhci.sys,
XP,2003,      uhcd.sys
Vista, 8      (any version)
x86 & x64

8 x86 & x64   usbxhci.sys        No        LS,FS->HS
              (any version)

7 x86 & x64   usbport.sys        No        LS->FS
              (-6.1.7601.24138)

              iusb3xhc.sys       Yes       LS->FS
              (1.0.10.255,
               5.0.4.43)

              xhcdrv.sys         No        LS->FS *1
              (6.1.7600.5601)

8.1 x64       usbport.sys        No        LS->FS
              (-6.3.9600.19024)

8.1 x86       usbport.sys        No        LS->FS
              (-6.3.9600.17195)

              usbport.sys        Yes       LS->FS
              (6.3.9600.18088-
               6.3.9600.19024)

8.1 x86 & x64 usbxhci.sys        No        LS,FS->HS
              (-6.3.9600.19024)

10 1709- x86  usbport.sys        No        LS->FS
              (10.0.10240.16384-
               10.0.16299.x)

10 1607- x64  usbport.sys        No        LS->FS
              (10.0.10240.16384-
               10.0.14393.x)

10 1709-      usbxhci.sys        No        LS,FS->HS
x86 & x64     (10.0.10240.16461
               -10.0.16299.x)

10 x86 1803+  usbport.sys        Yes       LS->FS
              (10.0.17134.1-
               10.0.19041.1)

10 x64 1703+  usbport.sys        Yes       LS->FS
              (10.0.15063.1-
               10.0.19041.1)

10 x86 1803+  usbxhci.sys        Yes       LS,FS->HS
              (10.0.17134.1-
               10.0.19041.1)

10 x64 1803+  usbxhci.sys        Yes       LS,FS->HS
              (10.0.17134.1-
               10.0.19041.1)
Notes:
1. VIA xHCI controller (and driver) probably will allow such overclocking in XP and Vista, but this has not been tested.
 

·
Registered
Joined
·
265 Posts
Cool. I get slightly more stable polling rate in Win10 with safe mode. Might try later.
 

·
Registered
Joined
·
657 Posts
Quote:
so it's here: trying to reach polling rates higher than 1000 Hz!
biggrin.gif
Quote:
What we need to try?

[...]

2. Windows 8, 8.1 or 10
frown.gif


This feature in the code of Windows 8/8.1/10's USBXHCI.SYS, is it possible to find it in other (3.0) controller drivers too?


Welp, at least I can find out which mouse if any works the fastest internally in terms of buffer filling rate/motion burst read rate then.
 

·
Registered
Joined
·
247 Posts
What difference will you notice between 1000Mhz and 4000Mhz? Is it for gaming or some other performance?


Sent from my G7-L01 using Tapatalk
 

·
Registered
Joined
·
247 Posts
Edit: hertz not Mhz sorry.


Sent from my G7-L01 using Tapatalk
 

·
Registered
Joined
·
657 Posts
Marginally less input lag for one thing: On single events like clicking a mouse button USB polling adds latency up to a full poll interval, i. e. up to 1ms at 1kHz, but only 0.25ms at 4kHz; on average 750 / 2 = 375us faster input. Again, marginal.


Additionally a continuous flow of data as you get with standard mouse surface tracking will appear smoother; an update each 250us as opposed to each 1000us means your cursor travel/game rotation is less jumpy. You could also argue a greater polling rate more accurately reproduces the physical tracking path as lower polling introduces a kind of path correction (see Polling Misnomer: http://www.overclock.net/t/1251156/an-overview-of-mouse-technology ) as per digital sample rate logic. But as opposed to audio or whatever in mousing the reproduction accuracy for "inbetweens" in constant motion is largely irrelevant; you only really care where you end up at and that's the same for all poll rates. Maybe when you are drawing stuff the visually corrective effect could be annoying, but there you can simply move your mouse more slowly to circumvent this effect. Plus, 1kHz is already "path-accurate" enough anyways - at least I don't think artists are maneuvering their hands consciously on a 1ms-scale.


On the flipside, swamping your CPU with 4k+ USB interrupts per second increases CPU load and decreases polling stability/precision ( http://www.overclock.net/t/1550666/usb-polling-precision ). Which basically means mouse stutter, noticeable in games primarily.


1kHz is plenty and we don't really need more. This is just interesting fun and play. Near-instantaneous isochronous communication between host and mouse could still be worthwhile in the future, but for that we'd need a dedicated real-time interface with CPU-independent input processing and mice that internally support sending out their data at rates far beyond the USB standard (i. e. after each individual frame correlation step, which is 6000-12000 times per second?).
 

·
Registered
Joined
·
247 Posts
Thanks
smile.gif
I'm using a corsair m65 @ 1000hz so I will see if I can reach 2000hz for research purposes
tongue.gif
another question, is this easily reversible?


Sent from my G7-L01 using Tapatalk
 

·
Registered
Joined
·
657 Posts
Yes. Since you get a GUI, polling rate reversion is just a few clicks. Complete reversion works by uninstalling the hidusbf filter driver (right-click HIDUSBFU.inf and hit install) and disabling testmode.
 

·
Registered
Joined
·
575 Posts
Discussion Starter #10
Quote:
Originally Posted by HAGGARD 
/img/forum/go_quote.gif​



This feature in the code of Windows 8/8.1/10's USBXHCI.SYS, is it possible to find it in other (3.0) controller drivers too?
It's the feature of hardware controller, of couse, but now it can work only with MS drivers. The reason is the same as overclocking of low speed devices now not worked with Windows 7 + USB 3.0 controllers - i can't RE all OEM drivers in the world
wink.gif
And yes, direct host controller (outside the driver) programming is possible - but this task is _huge_.
 

·
Registered
Joined
·
575 Posts
Discussion Starter #13 (Edited)
Total win!!!


>Using 64 doesn't seem to work any differently to the 32 setting.
It's normal - if the device don't ready to send data to controller when controller asks then controller simply drop the poll.

P.S. 8000 hz version is not the joke

P.P.S. Attachments below are content for the first post.
 

Attachments

·
Registered
Joined
·
575 Posts
Discussion Starter #16
Quote:
Originally Posted by Timecard 
/img/forum/go_quote.gif​



Would it be possible to make a driver that would allow hz between 500 and 1000?
AFAIK, no.

P.S. Over-quoting is waste of energy, storage space and time of other people.
 

·
Registered
Joined
·
313 Posts
Tested System:

Windows Server 2016 TP 4


Mouse:

Logitech G303


Result:

1000Hz




31Hz aka. 2000Hz




62Hz aka. 4000Hz



So it looks like something is happening. Logitech Gaming Software has been disabled and uninstalled, just to make sure.



usbxhci.sys seems to be the same as for Windows 10.


And I've only been able to change the Hz when I checked "Process Parent". Maybe this helps out
tongue.gif
 
  • Rep+
Reactions: Totally Dubbed

·
Registered
Joined
·
76 Posts
I can only reduce the polling rate on my G303, tried both USB 2 and 3 ports but I can't increase the polling rate past what I've selected in the drivers.
 

·
Registered
Joined
·
313 Posts
Basically the same for me as you can see above. There is a change of like 1Hz between it, which I can reproduce basically everytime.


So I guess the G303 itself is the limiting factor which we probably can't do anything about.
thumb.gif


Edit: Just for the peaks. Otherwise it's still stable at 1kHz
 

·
lololol
Joined
·
4,371 Posts
wat


i was looking into this a few days ago

i think: i thought:

to make use of the 125us usb microframes you need to have the usb in hi-speed mode

and i don't think any mouse's mcu supports that
Quote:
Originally Posted by SweetLow 
/img/forum/go_quote.gif​



5. check the rate (dimr or mouserate)


mousetester interval plots are much better imo
 
1 - 20 of 848 Posts
Top