Same issue with DPI switch here. Mouse is maybe a month old and I've been battling it ever since I bought it. At this point I will probably end up returning it and going with something else. For a price tag being asked, this thing works like garbage. A $5 mouse will work better than this. What good are all the "features" when none of them are usable? LOL
Here is how mine works since I bought it (Latest firmware on both Armoury and Firmware, tried earlier Armoury versions too):
- Profile 1 --> Unusable at this point:
Worked initially until I adjusted settings and saved and rebooted. Since then DPI switch requires 15 clicks to turn LED off and go to other setting. During those clicks it will lock mouse to only Y axis, then X axis, then crash Armoury, and cycle through locks until it turns LED off. Sometimes on boot up mouse cursor can't even be moved and I have to plug in other mouse to restore defaults and get mouse working, which still doesn't fix DPI switch issue.
- Profile 2 --> Worked without ANY changes to it until first reboot. After reboot, same DPI switch behavior. Profile is unusable.
Other profiles I didn't use and my feeling is if I use Profile 3 it will get corrupted just like the first 2.
DPI switch press with Armoury crash has this in Event Log:
Application: ROG Armoury.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.FormatException
at System.Number.StringToNumber(System.String, System.Globalization.NumberStyles, NumberBuffer ByRef, System.Globalization.NumberFormatInfo, Boolean)
at System.Number.ParseInt32(System.String, System.Globalization.NumberStyles, System.Globalization.NumberFormatInfo)
at System.Byte.Parse(System.String, System.Globalization.NumberStyles, System.Globalization.NumberFormatInfo)
at System.Convert.ToByte(System.String)
at SPATHALib.Window1.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at System.Windows.Interop.HwndSource.PublicHooksFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at System.Windows.Application.Run(System.Windows.Window)
at ROG_ARMOURY.App.Main()
Essentially, DPI switch is 15 clicks with LED on to go back to LED off. If counting the initial click to switch DPI, that's 16 clicks. This is not a switch being stuck this is a firmware/software issue. I will make a trip to my local store this weekend and return this overpriced mouse and get 2 Steelseries mice or something. I have done all troubleshooting I can short of wiping my OS and I am not going to wipe and reinstall OS to get a mouse to work. SMH.
I thought ROG Zenith Extreme was plagued with software issues. Now I see that other products are no exemption from poorly written software/firmware.