Support for Logitech MX Master Mice

Unfortunately I can't seem to reproduce this, does this also happen with other actions? E.g. does a button 3 set to send shortcut "a" type a twice?

yes I got quite a collection during the last 2-3 weeks :rofl:, most of them however just live in my backpack so I can work&test wherever I am :slight_smile:

Yes, it does.

I can somewhat alleviate this by making it trigger on mouse up, as it seems there’s only one mouse up event triggering, but two mouse down.

Could you copy the debug logs and towards the end of the 10s logging window press the button 3 once?

LOGI LOG: ========================================
LOGI LOG: BTT Logitech Debug Information
LOGI LOG: Timestamp: 2026-01-22 10:47:42
LOGI LOG: BTT: (Version: 6.095 | 2026012111)
LOGI LOG: macOS: Version 26.2 (Build 25C56)
LOGI LOG: ========================================
LOGI LOG: 
LOGI LOG: Step 1: Stopping Logitech Manager...
LOGI LOG: BTTLogitechManager: Stopping...
LOGI LOG: BTTLogitechManager: Setting ONBOARD mode on 1 device(s) before shutdown...
LOGI LOG: BTTLogitechManager: βœ… ONBOARD mode set on 0 device(s), skipped 1 (shutdown complete)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xa02c7e530 for deviceIndex 255 (remaining protocols for this device: 0)
LOGI LOG: BTTHIDPPProtocol: Last protocol for this device - will unregister callback
LOGI LOG: BTTLogitechManager: Stopped
LOGI LOG: Step 2: Restarting Logitech Manager...
LOGI LOG: BTTLogitechManager: Starting device discovery...
LOGI LOG: BTTLogitechManager: Started successfully
LOGI LOG: Step 3: Calling initializeLogitechMice...
LOGI LOG: Step 4: Waiting 5 seconds for device initialization...
LOGI LOG: BTTLogitechManager: Found HID interface - MX Vertical Advanced Ergonomic Mouse - Interface: 0, Usage Page: 0x0001, Usage: 0x0002
LOGI LOG: BTTLogitechManager: Skipping interface (Usage Page: 0x0001, Usage: 0x0002, Interface: 0)
LOGI LOG: BTTLogitechManager: Found HID interface - MX Vertical Advanced Ergonomic Mouse - Interface: 2, Usage Page: 0xFF00, Usage: 0x0001
LOGI LOG: BTTLogitechManager: βœ… Accepted - Vendor-specific HID++ interface (Interface 2)
LOGI LOG: BTTLogitechManager: Device connected - MX Vertical Advanced Ergonomic Mouse (046d:c08a)
LOGI LOG: BTTHIDPPDevice: Auto-detected deviceIndex 0xFF for 046d:c08a (USB Wired)
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=255, IOHIDDevice retain count=3
LOGI LOG: Known device: Logitech MX Vertical (046d:c08a) with quirk: 0, type: 0, deviceIndex: 255, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 255, isSharedDevice: 0)...
LOGI LOG: BTTHIDPPProtocol: βœ… Registered protocol 0xa02c8d260 for deviceIndex 255 (total protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Non-shared device - registering dedicated input callback
LOGI LOG: BTTHIDPPProtocol: βœ… Device opened successfully
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Starting feature discovery for Logitech MX Vertical...
LOGI LOG: BTTHIDPPFeatureCache: βœ… Found cached features for 046d:c08a (cached 2026-01-22 08:48:45 +0000)
LOGI LOG: BTTHIDPPDevice: ⚑ Using cached features for Logitech MX Vertical (29 features)
LOGI LOG: BTTHIDPPDevice: ⚑ Restoring cached device name: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPProtocol: Pre-populated feature cache with 29 features
LOGI LOG: BTTHIDPPDevice: Cached protocol: 4.5
LOGI LOG: BTTHIDPPProtocol: βœ… Registered event handler for feature 0x1B04 (protocol 0xa02c8d260, deviceIndex 255)
LOGI LOG:    Total event handlers registered: 1
LOGI LOG: Button Manager supported
LOGI LOG: DPI Manager supported
LOGI LOG: Battery Monitor supported (Legacy 0x1000)
LOGI LOG: Checking scroll wheel features...
LOGI LOG:   SmartShift (0x2110): ❌ NO
LOGI LOG:   SmartShift Enhanced (0x2111): ❌ NO
LOGI LOG:   HiRes Wheel (0x2121): ❌ NO
LOGI LOG:   Thumbwheel (0x2150): ❌ NO
LOGI LOG:   Wheel Analytics (0x2250): βœ… YES
LOGI LOG:   Wheel Mode Status (0x2251): ❌ NO
LOGI LOG: No scroll wheel features supported
LOGI LOG: BTTHIDPPDevice: Device type confirmed as MOUSE (has mouse-specific features)
LOGI LOG: Applying default device configuration...
LOGI LOG: πŸ” Attempting to query device name via HID++ feature 0x0005...
LOGI LOG: βœ… Device supports feature 0x0005, querying name length...
LOGI LOG: BTTLogitechManager: Device already tracked, ignoring duplicate interface
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x08
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x00)
LOGI LOG: Device name length: 36 bytes
LOGI LOG: Reading device name chunk at offset 0/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 16 bytes: "MX Vertical Adva"
LOGI LOG: Reading device name chunk at offset 16/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 16 bytes: "nced Ergonomic M"
LOGI LOG: Reading device name chunk at offset 32/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 4 bytes: "ouse"
LOGI LOG: πŸ“ Device name assembled: "MX Vertical Advanced Ergonomic Mouse" (36 bytes)
LOGI LOG: βœ… Device name from HID++: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPFeatureCache: πŸ“ Updated device name for 046d:c08a to: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTLogitechManager: πŸ“ Device name updated to: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: Device MX Vertical Advanced Ergonomic Mouse has no onboard profiles - skipping auto ONBOARD mode
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTHIDPPFeatureCache: Saved 1 device profiles to disk
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x00
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 0 pending requests for match
LOGI LOG: BTTHIDPPProtocol: πŸ“’ Message did NOT match any pending request - treating as EVENT
LOGI LOG: BTTHIDPPProtocol: πŸ“¨ Handling event for feature index 0x09
LOGI LOG: BTTHIDPPProtocol: πŸ” Feature index 0x09 β†’ Feature ID 0x1B04
LOGI LOG: BTTHIDPPProtocol: βœ… Dispatching to event handler for feature 0x1B04
LOGI LOG: BTTHIDPPButtonManager: 🎯 handleButtonEvent CALLED! address=0x00, params=[00 53 00 00 00 00 00 00]
LOGI LOG: BTTHIDPPButtonManager: State change - Currently pressed: {(
    83
)}, Newly pressed: {(
    83
)}, Released: {(
)}
LOGI LOG: BTTHIDPPButtonManager: πŸ”” Button press: controlId=0x0053
LOGI LOG: BTTHIDPPDevice: πŸ”˜ Button event received: controlId=0x0053, pressed=1
LOGI LOG: BTTHIDPPDevice: Delegate=<BTTLogitechManager: 0x9ff49a300>, respondsToSelector=1
LOGI LOG: BTTHIDPPDevice: βœ… Calling delegate method...
LOGI LOG: BTTLogitechManager: Button pressed on MX Vertical Advanced Ergonomic Mouse (controlId: 0x0053)
LOGI LOG: BTTLogitechManager: Mapped controlId 0x0053 β†’ button 3 (MX Vertical Advanced Ergonomic Mouse) [dynamic]
LOGI LOG: BTTLogitechManager: Click tracking DOWN for MX Vertical Advanced Ergonomic Mouse button 3: clickCount=1, timeSinceLastClick=790768070.399s
LOGI LOG: BTTLogitechManager: Set device IDs: vendor=0x046D, product=0xC08A, packed=0xC08A046D
LOGI LOG: BTTLogitechManager: Created CGEvent: type=25, button=3, buttonNumber=3, clickCount=1, location=(969.9,941.6)
LOGI LOG: BTTLogitechManager: βœ… Generated CGEvent for button 0x0053
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x00
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 0 pending requests for match
LOGI LOG: BTTHIDPPProtocol: πŸ“’ Message did NOT match any pending request - treating as EVENT
LOGI LOG: BTTHIDPPProtocol: πŸ“¨ Handling event for feature index 0x09
LOGI LOG: BTTHIDPPProtocol: πŸ” Feature index 0x09 β†’ Feature ID 0x1B04
LOGI LOG: BTTHIDPPProtocol: βœ… Dispatching to event handler for feature 0x1B04
LOGI LOG: BTTHIDPPButtonManager: 🎯 handleButtonEvent CALLED! address=0x00, params=[00 00 00 00 00 00 00 00]
LOGI LOG: BTTHIDPPButtonManager: State change - Currently pressed: {(
)}, Newly pressed: {(
)}, Released: {(
    83
)}
LOGI LOG: BTTHIDPPButtonManager: πŸ”” Button release: controlId=0x0053
LOGI LOG: BTTHIDPPDevice: πŸ”˜ Button event received: controlId=0x0053, pressed=0
LOGI LOG: BTTHIDPPDevice: Delegate=<BTTLogitechManager: 0x9ff49a300>, respondsToSelector=1
LOGI LOG: BTTHIDPPDevice: βœ… Calling delegate method...
LOGI LOG: BTTLogitechManager: Button released on MX Vertical Advanced Ergonomic Mouse (controlId: 0x0053)
LOGI LOG: BTTLogitechManager: Mapped controlId 0x0053 β†’ button 3 (MX Vertical Advanced Ergonomic Mouse) [dynamic]
LOGI LOG: BTTLogitechManager: Click tracking UP for MX Vertical Advanced Ergonomic Mouse button 3: clickCount=1 (matched from DOWN)
LOGI LOG: BTTLogitechManager: Set device IDs: vendor=0x046D, product=0xC08A, packed=0xC08A046D
LOGI LOG: BTTLogitechManager: Created CGEvent: type=26, button=3, buttonNumber=3, clickCount=1, location=(969.7,941.6)
LOGI LOG: BTTLogitechManager: βœ… Generated CGEvent for button 0x0053
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: Connected Devices Summary:
LOGI LOG: ========================================
LOGI LOG:   - MX Vertical Advanced Ergonomic Mouse (VID:0x046d PID:0xc08a) Ready:YES Type:Mouse
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: G604 Scroll Slot Debug:
LOGI LOG: ========================================
LOGI LOG:   No G604 devices found
LOGI LOG: ========================================
LOGI LOG: End of Debug Information
LOGI LOG: ========================================

Do you have this option enabled in your MX Vertical configuration?

Yes. No change when disabling it.

It should stay enabled, that's fine. Your log doesn't show BTT trying to "configure" the mouse, which is kind of weird.

Are you sure logitech options / ghub / other mouse apps that could capture the mouse are uninstalled? Is your mouse connected via Bluetooth?

Yeah that’s my bad, I had removed this configuration from the settings when last capturing logs. Here are logs with it:

LOGI LOG: ========================================
LOGI LOG: BTT Logitech Debug Information
LOGI LOG: Timestamp: 2026-01-22 11:00:23
LOGI LOG: BTT: (Version: 6.095 | 2026012111)
LOGI LOG: macOS: Version 26.2 (Build 25C56)
LOGI LOG: ========================================
LOGI LOG: 
LOGI LOG: Step 1: Stopping Logitech Manager...
LOGI LOG: BTTLogitechManager: Stopping...
LOGI LOG: BTTLogitechManager: Setting ONBOARD mode on 1 device(s) before shutdown...
LOGI LOG: BTTLogitechManager: βœ… ONBOARD mode set on 0 device(s), skipped 1 (shutdown complete)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xa02c8d260 for deviceIndex 255 (remaining protocols for this device: 0)
LOGI LOG: BTTHIDPPProtocol: Last protocol for this device - will unregister callback
LOGI LOG: BTTLogitechManager: Stopped
LOGI LOG: Step 2: Restarting Logitech Manager...
LOGI LOG: BTTLogitechManager: Starting device discovery...
LOGI LOG: BTTLogitechManager: Started successfully
LOGI LOG: Step 3: Calling initializeLogitechMice...
LOGI LOG: BTTLogitechManager: Already running
LOGI LOG: 
==============================================
LOGI LOG: BTTLogitechManager: Scanning for Logitech Devices
LOGI LOG: ==============================================

LOGI LOG: No Logitech HID++ devices found.
LOGI LOG: 
πŸ’‘ Make sure your device is:
LOGI LOG:    β€’ Connected via USB, Bluetooth, or Unifying Receiver
LOGI LOG:    β€’ Powered on
LOGI LOG:    β€’ Using HID++ 2.0 protocol (most recent Logitech mice/keyboards)
LOGI LOG: Step 4: Waiting 5 seconds for device initialization...
LOGI LOG: BTTLogitechManager: Found HID interface - MX Vertical Advanced Ergonomic Mouse - Interface: 2, Usage Page: 0xFF00, Usage: 0x0001
LOGI LOG: BTTLogitechManager: βœ… Accepted - Vendor-specific HID++ interface (Interface 2)
LOGI LOG: BTTLogitechManager: Device connected - MX Vertical Advanced Ergonomic Mouse (046d:c08a)
LOGI LOG: BTTHIDPPDevice: Auto-detected deviceIndex 0xFF for 046d:c08a (USB Wired)
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=255, IOHIDDevice retain count=3
LOGI LOG: Known device: Logitech MX Vertical (046d:c08a) with quirk: 0, type: 0, deviceIndex: 255, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 255, isSharedDevice: 0)...
LOGI LOG: BTTHIDPPProtocol: βœ… Registered protocol 0xa03285a40 for deviceIndex 255 (total protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Non-shared device - registering dedicated input callback
LOGI LOG: BTTHIDPPProtocol: βœ… Device opened successfully
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Starting feature discovery for Logitech MX Vertical...
LOGI LOG: BTTHIDPPFeatureCache: βœ… Found cached features for 046d:c08a (cached 2026-01-22 08:48:45 +0000)
LOGI LOG: BTTHIDPPDevice: ⚑ Using cached features for Logitech MX Vertical (29 features)
LOGI LOG: BTTHIDPPDevice: ⚑ Restoring cached device name: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPProtocol: Pre-populated feature cache with 29 features
LOGI LOG: BTTHIDPPDevice: Cached protocol: 4.5
LOGI LOG: BTTHIDPPProtocol: βœ… Registered event handler for feature 0x1B04 (protocol 0xa03285a40, deviceIndex 255)
LOGI LOG:    Total event handlers registered: 1
LOGI LOG: Button Manager supported
LOGI LOG: DPI Manager supported
LOGI LOG: Battery Monitor supported (Legacy 0x1000)
LOGI LOG: Checking scroll wheel features...
LOGI LOG:   SmartShift (0x2110): ❌ NO
LOGI LOG:   SmartShift Enhanced (0x2111): ❌ NO
LOGI LOG:   HiRes Wheel (0x2121): ❌ NO
LOGI LOG:   Thumbwheel (0x2150): ❌ NO
LOGI LOG:   Wheel Analytics (0x2250): βœ… YES
LOGI LOG:   Wheel Mode Status (0x2251): ❌ NO
LOGI LOG: No scroll wheel features supported
LOGI LOG: BTTHIDPPDevice: Device type confirmed as MOUSE (has mouse-specific features)
LOGI LOG: Applying default device configuration...
LOGI LOG: πŸ” Attempting to query device name via HID++ feature 0x0005...
LOGI LOG: βœ… Device supports feature 0x0005, querying name length...
LOGI LOG: BTTLogitechManager: Device already tracked, ignoring duplicate interface
LOGI LOG: BTTLogitechManager: Device already tracked, ignoring duplicate interface
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x08
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x00)
LOGI LOG: Device name length: 36 bytes
LOGI LOG: Reading device name chunk at offset 0/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 16 bytes: "MX Vertical Adva"
LOGI LOG: Reading device name chunk at offset 16/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 16 bytes: "nced Ergonomic M"
LOGI LOG: Reading device name chunk at offset 32/36...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x03, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x03, func=0x01)
LOGI LOG: Read 4 bytes: "ouse"
LOGI LOG: πŸ“ Device name assembled: "MX Vertical Advanced Ergonomic Mouse" (36 bytes)
LOGI LOG: βœ… Device name from HID++: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPFeatureCache: πŸ“ Updated device name for 046d:c08a to: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTLogitechManager: πŸ“ Device name updated to: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: Device MX Vertical Advanced Ergonomic Mouse has no onboard profiles - skipping auto ONBOARD mode
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTHIDPPFeatureCache: Saved 1 device profiles to disk
LOGI LOG: BTTLogitechManager: βœ… Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC08A): speed=0.50, accel=10.00
LOGI LOG: BTTLogitechManager: Quick setup for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: πŸ”’ Started quick setup for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Device 'MX Vertical Advanced Ergonomic Mouse' is ready (slot 255), proceeding with quick setup
LOGI LOG: BTTLogitechManager: Remapping buttons to standard mouse buttons for 'MX Vertical Advanced Ergonomic Mouse' (remapScrollTilt=0)...
LOGI LOG: BTTLogitechManager: Using runtime task ID remapping (0x1b04) - NO flash writes
LOGI LOG: BTTLogitechManager: Factory profiles preserved - buttons revert on disconnect
LOGI LOG: BTTHIDPPButtonCache: βœ… Found cached buttons for 046d:c08a (7 buttons, cached 2026-01-20 12:32:25 +0000)
LOGI LOG: BTTHIDPPButtonManager: ⚑ Loaded 7 buttons from persistent cache (FAST STARTUP)
LOGI LOG: BTTLogitechManager: ⚑ Loaded 7 buttons from persistent cache for remapping (FAST STARTUP)
LOGI LOG: BTTLogitechManager: ⚑ Using 7 cached buttons for remapping
LOGI LOG: BTTLogitechManager: Found 7 buttons, analyzing task IDs...
LOGI LOG: BTTLogitechManager: Device 'MX Vertical Advanced Ergonomic Mouse' detected, isMXMaster4=0
LOGI LOG: BTTLogitechManager:   Processing button 0x0050, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0050 (Left) β†’ button 0
LOGI LOG: BTTLogitechManager:   Processing button 0x0051, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0051 (Right) β†’ button 1
LOGI LOG: BTTLogitechManager:   Processing button 0x0052, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0052 (Middle) β†’ button 2
LOGI LOG: BTTLogitechManager:   Processing button 0x0053, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0053 (Back) β†’ button 3
LOGI LOG: BTTLogitechManager:   Processing button 0x0056, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0056 (Forward) β†’ button 4
LOGI LOG: BTTLogitechManager:   Processing button 0x00FD, flags=0x71
LOGI LOG: BTTLogitechManager:   Processing button 0x00D7, flags=0xA0
LOGI LOG: BTTLogitechManager:   β†’ Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager:   β†’ Dynamic mapping: controlId 0x00FD β†’ button 10 (sorted by controlId)
LOGI LOG: BTTLogitechManager: βœ… Created dynamic button mapping for 'MX Vertical Advanced Ergonomic Mouse' with 6 buttons
LOGI LOG: BTTLogitechManager: πŸ”„ Undiversting all reprogrammable buttons first to reset state...
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0050 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0051 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0052 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Including virtual divertable button 0x00D7 (flags=0xA0) for undivert
LOGI LOG: BTTHIDPPButtonManager: ⚑ Parallel undiverting 4 buttons (direct connection)...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x38
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 4 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x09, func=0x03)
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x03, Device Index: 255
LOGI LOG:    Pending requests before timeout: 3
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x03, Device Index: 255
LOGI LOG:    Pending requests before timeout: 2
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x03, Device Index: 255
LOGI LOG:    Pending requests before timeout: 1
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTHIDPPButtonManager: ⚑ Parallel undiversion complete: 1/4 succeeded
LOGI LOG: BTTLogitechManager: ⚠️  Some buttons failed to undivert: Request timeout (continuing anyway)
LOGI LOG: BTTLogitechManager: βœ… Undivert phase complete (1/4), proceeding with remapping...
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0050 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0051 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0052 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0053: task 0x003C β†’ 0x005E
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0056: task 0x003E β†’ 0x005F
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x00FD: task 0x00D2 β†’ 0x0060
LOGI LOG: BTTLogitechManager:   Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager: Already running
LOGI LOG: 
==============================================
LOGI LOG: BTTLogitechManager: Scanning for Logitech Devices
LOGI LOG: ==============================================

LOGI LOG: Found 1 Logitech device(s):

LOGI LOG: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOGI LOG: Device 1: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOGI LOG: πŸ“‹ Basic Information:
LOGI LOG:    Vendor ID:     0x046d (Logitech)
LOGI LOG:    Product ID:    0xc08a
LOGI LOG:    Database:      βœ… Known device
LOGI LOG:    Quirks:        None
LOGI LOG:    Device Index:  255 (0xFF)
LOGI LOG: 
πŸ”Œ Protocol Information:
LOGI LOG:    HID++ Version: 4.5
LOGI LOG:    Status:        βœ… Ready
LOGI LOG: 
✨ Supported Features:
LOGI LOG:    DPI Control:         βœ… YES
LOGI LOG:    Button Diversion:    βœ… YES ⭐
LOGI LOG:    LED Control:         ❌ NO
LOGI LOG:    Onboard Profiles:    ❌ NO
LOGI LOG:    Report Rate:         ❌ NO
LOGI LOG:    Battery Monitoring:  βœ… YES
LOGI LOG: 
LOGI LOG: ==============================================
LOGI LOG: Scan complete. Found 1 device(s).
LOGI LOG: ==============================================

LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x38
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 4 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x09, func=0x03)
LOGI LOG: BTTLogitechManager: βœ… Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC08A): speed=0.50, accel=10.00
LOGI LOG: BTTLogitechManager: Quick setup for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: ⏭️ Quick setup already in progress for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse), skipping duplicate call
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x08
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 5 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x00)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 5 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x01)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x28
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 5 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x02)
LOGI LOG: 
🎯 DPI Information:
LOGI LOG:    Sensor 0:
LOGI LOG:       Current DPI:  2000
LOGI LOG:       Range:        400 - 4000 (step: 100)
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x03, Device Index: 255
LOGI LOG:    Pending requests before timeout: 4
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x0056: Request timeout
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x03, Device Index: 255
LOGI LOG:    Pending requests before timeout: 3
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x00FD: Request timeout
LOGI LOG: BTTLogitechManager: βœ… Remapped 1 buttons via task IDs
LOGI LOG: BTTLogitechManager: πŸ”€ Diverting 2 buttons that couldn't be remapped for event handling...
LOGI LOG: BTTHIDPPButtonManager: ⚑ Parallel diverting 2 buttons (direct connection)...
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x38
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 4 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x09, func=0x03)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x38
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 3 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x09, func=0x03)
LOGI LOG: BTTHIDPPButtonManager: ⚑ Parallel diversion complete: 2/2 succeeded
LOGI LOG: BTTLogitechManager: βœ… Diverted 2/2 buttons for event handling
LOGI LOG: BTTLogitechManager: ℹ️  Diverted buttons will trigger buttonEventHandler callback
LOGI LOG: BTTLogitechManager: Setting DPI for 'MX Vertical Advanced Ergonomic Mouse' to 2000...
LOGI LOG: BTTLogitechManager: First-time DPI setup - enumerating sensors...
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x09, Function ID: 0x00, Device Index: 255
LOGI LOG:    Pending requests before timeout: 3
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: ⏱️  Request timeout after 2.0 seconds
LOGI LOG:    Feature Index: 0x07, Function ID: 0x00, Device Index: 255
LOGI LOG:    Pending requests before timeout: 2
LOGI LOG:    Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x08
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x00)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x18
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x01)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x28
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x02)
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x0F, address=0x38
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: βœ… Matched to pending request (feat=0x0F, func=0x03)
LOGI LOG: BTTLogitechManager: βœ… DPI set to 2000 for 'MX Vertical Advanced Ergonomic Mouse' (sensor 0)
LOGI LOG: BTTLogitechManager: ❌ Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: ⚠️  Report rate setup failed: Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: πŸ”“ Quick setup guard cleared for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Quick setup complete for 'MX Vertical Advanced Ergonomic Mouse'
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x00
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 0 pending requests for match
LOGI LOG: BTTHIDPPProtocol: πŸ“’ Message did NOT match any pending request - treating as EVENT
LOGI LOG: BTTHIDPPProtocol: πŸ“¨ Handling event for feature index 0x09
LOGI LOG: BTTHIDPPProtocol: πŸ” Feature index 0x09 β†’ Feature ID 0x1B04
LOGI LOG: BTTHIDPPProtocol: βœ… Dispatching to event handler for feature 0x1B04
LOGI LOG: BTTHIDPPButtonManager: 🎯 handleButtonEvent CALLED! address=0x00, params=[00 53 00 00 00 00 00 00]
LOGI LOG: BTTHIDPPButtonManager: State change - Currently pressed: {(
    83
)}, Newly pressed: {(
    83
)}, Released: {(
)}
LOGI LOG: BTTHIDPPButtonManager: πŸ”” Button press: controlId=0x0053
LOGI LOG: BTTHIDPPDevice: πŸ”˜ Button event received: controlId=0x0053, pressed=1
LOGI LOG: BTTHIDPPDevice: Delegate=<BTTLogitechManager: 0x9ff49a300>, respondsToSelector=1
LOGI LOG: BTTHIDPPDevice: βœ… Calling delegate method...
LOGI LOG: BTTLogitechManager: Button pressed on MX Vertical Advanced Ergonomic Mouse (controlId: 0x0053)
LOGI LOG: BTTLogitechManager: Mapped controlId 0x0053 β†’ button 3 (MX Vertical Advanced Ergonomic Mouse) [dynamic]
LOGI LOG: BTTLogitechManager: Click tracking DOWN for MX Vertical Advanced Ergonomic Mouse button 3: clickCount=1, timeSinceLastClick=790768831.538s
LOGI LOG: BTTLogitechManager: Set device IDs: vendor=0x046D, product=0xC08A, packed=0xC08A046D
LOGI LOG: BTTLogitechManager: Created CGEvent: type=25, button=3, buttonNumber=3, clickCount=1, location=(857.8,949.2)
LOGI LOG: BTTLogitechManager: βœ… Generated CGEvent for button 0x0053
LOGI LOG: BTTHIDPPProtocol: πŸ” INCOMING MESSAGE: deviceIdx=0xFF, sub_id(featureIdx)=0x09, address=0x00
LOGI LOG: BTTHIDPPProtocol: πŸ” Checking 0 pending requests for match
LOGI LOG: BTTHIDPPProtocol: πŸ“’ Message did NOT match any pending request - treating as EVENT
LOGI LOG: BTTHIDPPProtocol: πŸ“¨ Handling event for feature index 0x09
LOGI LOG: BTTHIDPPProtocol: πŸ” Feature index 0x09 β†’ Feature ID 0x1B04
LOGI LOG: BTTHIDPPProtocol: βœ… Dispatching to event handler for feature 0x1B04
LOGI LOG: BTTHIDPPButtonManager: 🎯 handleButtonEvent CALLED! address=0x00, params=[00 00 00 00 00 00 00 00]
LOGI LOG: BTTHIDPPButtonManager: State change - Currently pressed: {(
)}, Newly pressed: {(
)}, Released: {(
    83
)}
LOGI LOG: BTTHIDPPButtonManager: πŸ”” Button release: controlId=0x0053
LOGI LOG: BTTHIDPPDevice: πŸ”˜ Button event received: controlId=0x0053, pressed=0
LOGI LOG: BTTHIDPPDevice: Delegate=<BTTLogitechManager: 0x9ff49a300>, respondsToSelector=1
LOGI LOG: BTTHIDPPDevice: βœ… Calling delegate method...
LOGI LOG: BTTLogitechManager: Button released on MX Vertical Advanced Ergonomic Mouse (controlId: 0x0053)
LOGI LOG: BTTLogitechManager: Mapped controlId 0x0053 β†’ button 3 (MX Vertical Advanced Ergonomic Mouse) [dynamic]
LOGI LOG: BTTLogitechManager: Click tracking UP for MX Vertical Advanced Ergonomic Mouse button 3: clickCount=1 (matched from DOWN)
LOGI LOG: BTTLogitechManager: Set device IDs: vendor=0x046D, product=0xC08A, packed=0xC08A046D
LOGI LOG: BTTLogitechManager: Created CGEvent: type=26, button=3, buttonNumber=3, clickCount=1, location=(860.1,949.0)
LOGI LOG: BTTLogitechManager: βœ… Generated CGEvent for button 0x0053
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: Connected Devices Summary:
LOGI LOG: ========================================
LOGI LOG:   - MX Vertical Advanced Ergonomic Mouse (VID:0x046d PID:0xc08a) Ready:YES Type:Mouse
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: G604 Scroll Slot Debug:
LOGI LOG: ========================================
LOGI LOG:   No G604 devices found
LOGI LOG: ========================================
LOGI LOG: End of Debug Information
LOGI LOG: ========================================

The mouse is connected via USB and I have uninstalled all Logitech software using the command BTT recommended.

Ah interesting, is it a USB only mouse (then it would be a different model than mine) or are you using the optional cable?

The new logs shows various issues, I'll try to see whether I can figure out why they happen. Maybe connecting my mouse via USB will show something.

I’m using the optional cable. I’ve just tested w/ Bluetooth and I can’t reproduce the issue.

Thank you, I think that lead me to root cause and the fix probably helps with other USB connected mice as well.

Can you check with BTT 6.099 once it finished uploading? (about 10 minutes)

When dumping the logs for my Logitech mouse, I saw that you get the mouse battery level.

Since I do not have the Logi tool anymore, and since it is on the dongle, not on Bluetooth, there’s no way for me to know when the battery is low, and I just know it when its empty.

Can BTT send a notification to tell me β€œBattery at <battery_threshold>% for <mouse_name>”?

You can get the battery level, here is an example:

You could put that into a repeating trigger that shows a notification once the battery level dropped below a certain level, or maybe show the battery level on every BTT launch or something similar

That fixed the issue with Button 3, but now Button 4 is no longer detected at all :sweat_smile:

Did you re-enable the make all mouse buttons available option?

Yes. Here are the latest logs.

LOGI LOG: ========================================
LOGI LOG: BTT Logitech Debug Information
LOGI LOG: Timestamp: 2026-01-22 11:54:05
LOGI LOG: BTT: (Version: 6.099 | 2026012203)
LOGI LOG: macOS: Version 26.2 (Build 25C56)
LOGI LOG: ========================================
LOGI LOG: 
LOGI LOG: Step 1: Stopping Logitech Manager...
LOGI LOG: BTTLogitechManager: Stopping...
LOGI LOG: BTTLogitechManager: Setting ONBOARD mode on 1 device(s) before shutdown...
LOGI LOG: BTTLogitechManager: βœ… ONBOARD mode set on 0 device(s), skipped 1 (shutdown complete)
LOGI LOG: BTTLogitechManager: Stopped
LOGI LOG: Step 2: Restarting Logitech Manager...
LOGI LOG: BTTLogitechManager: Starting device discovery...
LOGI LOG: BTTLogitechManager: Started successfully
LOGI LOG: Step 3: Calling initializeLogitechMice...
LOGI LOG: BTTLogitechManager: Already running
LOGI LOG: 
==============================================
LOGI LOG: BTTLogitechManager: Scanning for Logitech Devices
LOGI LOG: ==============================================

LOGI LOG: No Logitech HID++ devices found.
LOGI LOG: 
πŸ’‘ Make sure your device is:
LOGI LOG:    β€’ Connected via USB, Bluetooth, or Unifying Receiver
LOGI LOG:    β€’ Powered on
LOGI LOG:    β€’ Using HID++ 2.0 protocol (most recent Logitech mice/keyboards)
LOGI LOG: Step 4: Waiting 5 seconds for device initialization...
LOGI LOG: BTTLogitechManager: Found HID interface - MX Vertical Advanced Ergonomic Mouse - Interface: 0, Usage Page: 0x0001, Usage: 0x0002
LOGI LOG: BTTLogitechManager: Skipping interface (Usage Page: 0x0001, Usage: 0x0002, Interface: 0)
LOGI LOG: BTTLogitechManager: Found HID interface - MX Vertical Advanced Ergonomic Mouse - Interface: 1, Usage Page: 0x0001, Usage: 0x0006
LOGI LOG: BTTLogitechManager: βœ… Accepted - Known wired device, interface 1 (HID++ over keyboard interface)
LOGI LOG: BTTLogitechManager: Device connected - MX Vertical Advanced Ergonomic Mouse (046d:c08a)
LOGI LOG: BTTHIDPPDevice: Auto-detected deviceIndex 0xFF for 046d:c08a (USB Wired)
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=255, IOHIDDevice retain count=3
LOGI LOG: Known device: Logitech MX Vertical (046d:c08a) with quirk: 0, type: 0, deviceIndex: 255, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 255, isSharedDevice: 0)...
LOGI LOG: BTTHIDPPProtocol: βœ… Registered protocol 0xbf12787e0 for deviceIndex 255 (total protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Non-shared device - registering dedicated input callback
LOGI LOG: BTTHIDPPProtocol: βœ… Device opened successfully
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Starting feature discovery for Logitech MX Vertical...
LOGI LOG: BTTHIDPPFeatureCache: βœ… Found cached features for 046d:c08a (cached 2026-01-22 08:48:45 +0000)
LOGI LOG: BTTHIDPPDevice: ⚑ Using cached features for Logitech MX Vertical (29 features)
LOGI LOG: BTTHIDPPDevice: ⚑ Restoring cached device name: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPProtocol: Pre-populated feature cache with 29 features
LOGI LOG: BTTHIDPPDevice: Cached protocol: 4.5
LOGI LOG: BTTHIDPPProtocol: βœ… Registered event handler for feature 0x1B04 (protocol 0xbf12787e0, deviceIndex 255)
LOGI LOG:    Total event handlers registered: 1
LOGI LOG: Button Manager supported
LOGI LOG: DPI Manager supported
LOGI LOG: Battery Monitor supported (Legacy 0x1000)
LOGI LOG: Checking scroll wheel features...
LOGI LOG:   SmartShift (0x2110): ❌ NO
LOGI LOG:   SmartShift Enhanced (0x2111): ❌ NO
LOGI LOG:   HiRes Wheel (0x2121): ❌ NO
LOGI LOG:   Thumbwheel (0x2150): ❌ NO
LOGI LOG:   Wheel Analytics (0x2250): βœ… YES
LOGI LOG:   Wheel Mode Status (0x2251): ❌ NO
LOGI LOG: No scroll wheel features supported
LOGI LOG: BTTHIDPPDevice: Device type confirmed as MOUSE (has mouse-specific features)
LOGI LOG: Applying default device configuration...
LOGI LOG: πŸ” Attempting to query device name via HID++ feature 0x0005...
LOGI LOG: βœ… Device supports feature 0x0005, querying name length...
LOGI LOG: BTTLogitechManager: Device already tracked, ignoring duplicate interface
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: ❌ Failed to get device name length: IOHIDDeviceSetReport failed
LOGI LOG: Could not query device name via HID++, keeping: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: βœ… Device ready - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: Device MX Vertical Advanced Ergonomic Mouse has no onboard profiles - skipping auto ONBOARD mode
LOGI LOG: BTTLogitechManager: πŸ” Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: βœ… Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC08A): speed=0.50, accel=10.00
LOGI LOG: BTTLogitechManager: Quick setup for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: πŸ”’ Started quick setup for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Device 'MX Vertical Advanced Ergonomic Mouse' is ready (slot 255), proceeding with quick setup
LOGI LOG: BTTLogitechManager: Remapping buttons to standard mouse buttons for 'MX Vertical Advanced Ergonomic Mouse' (remapScrollTilt=0)...
LOGI LOG: BTTLogitechManager: Using runtime task ID remapping (0x1b04) - NO flash writes
LOGI LOG: BTTLogitechManager: Factory profiles preserved - buttons revert on disconnect
LOGI LOG: BTTHIDPPButtonCache: βœ… Found cached buttons for 046d:c08a (7 buttons, cached 2026-01-20 12:32:25 +0000)
LOGI LOG: BTTHIDPPButtonManager: ⚑ Loaded 7 buttons from persistent cache (FAST STARTUP)
LOGI LOG: BTTLogitechManager: ⚑ Loaded 7 buttons from persistent cache for remapping (FAST STARTUP)
LOGI LOG: BTTLogitechManager: ⚑ Using 7 cached buttons for remapping
LOGI LOG: BTTLogitechManager: Found 7 buttons, analyzing task IDs...
LOGI LOG: BTTLogitechManager: Device 'MX Vertical Advanced Ergonomic Mouse' detected, isMXMaster4=0
LOGI LOG: BTTLogitechManager:   Processing button 0x0050, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0050 (Left) β†’ button 0
LOGI LOG: BTTLogitechManager:   Processing button 0x0051, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0051 (Right) β†’ button 1
LOGI LOG: BTTLogitechManager:   Processing button 0x0052, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0052 (Middle) β†’ button 2
LOGI LOG: BTTLogitechManager:   Processing button 0x0053, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0053 (Back) β†’ button 3
LOGI LOG: BTTLogitechManager:   Processing button 0x0056, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0056 (Forward) β†’ button 4
LOGI LOG: BTTLogitechManager:   Processing button 0x00FD, flags=0x71
LOGI LOG: BTTLogitechManager:   Processing button 0x00D7, flags=0xA0
LOGI LOG: BTTLogitechManager:   β†’ Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager:   β†’ Dynamic mapping: controlId 0x00FD β†’ button 10 (sorted by controlId)
LOGI LOG: BTTLogitechManager: βœ… Created dynamic button mapping for 'MX Vertical Advanced Ergonomic Mouse' with 6 buttons
LOGI LOG: BTTLogitechManager: πŸ”„ Undiversting all reprogrammable buttons first to reset state...
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0050 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0051 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0052 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Including virtual divertable button 0x00D7 (flags=0xA0) for undivert
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential undiverting 4 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x00D7: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential undiversion complete: 0/4 succeeded
LOGI LOG: BTTLogitechManager: ⚠️  Some buttons failed to undivert: IOHIDDeviceSetReport failed (continuing anyway)
LOGI LOG: BTTLogitechManager: βœ… Undivert phase complete (0/4), proceeding with remapping...
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0050 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0051 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0052 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0053: task 0x003C β†’ 0x005E
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0056: task 0x003E β†’ 0x005F
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x00FD: task 0x00D2 β†’ 0x0060
LOGI LOG: BTTLogitechManager:   Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager: πŸ”„ Sequential remapping 3 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: βœ… Remapped 0 buttons via task IDs
LOGI LOG: BTTLogitechManager: πŸ”€ Diverting 3 buttons that couldn't be remapped for event handling...
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential diverting 3 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential diversion complete: 0/3 succeeded
LOGI LOG: BTTLogitechManager: ⚠️  Some buttons failed to divert: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: βœ… Diverted 0/3 buttons for event handling
LOGI LOG: BTTLogitechManager: ℹ️  Diverted buttons will trigger buttonEventHandler callback
LOGI LOG: BTTLogitechManager: Setting DPI for 'MX Vertical Advanced Ergonomic Mouse' to 2000...
LOGI LOG: BTTLogitechManager: First-time DPI setup - enumerating sensors...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ❌ Failed to enumerate sensors: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: ⚠️  DPI setup failed: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: ❌ Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: ⚠️  Report rate setup failed: Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: πŸ”“ Quick setup guard cleared for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Quick setup complete for 'MX Vertical Advanced Ergonomic Mouse'
LOGI LOG: BTTLogitechManager: Already running
LOGI LOG: 
==============================================
LOGI LOG: BTTLogitechManager: Scanning for Logitech Devices
LOGI LOG: ==============================================

LOGI LOG: Found 1 Logitech device(s):

LOGI LOG: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOGI LOG: Device 1: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOGI LOG: πŸ“‹ Basic Information:
LOGI LOG:    Vendor ID:     0x046d (Logitech)
LOGI LOG:    Product ID:    0xc08a
LOGI LOG:    Database:      βœ… Known device
LOGI LOG:    Quirks:        None
LOGI LOG:    Device Index:  255 (0xFF)
LOGI LOG: 
πŸ”Œ Protocol Information:
LOGI LOG:    HID++ Version: 4.5
LOGI LOG:    Status:        βœ… Ready
LOGI LOG: 
✨ Supported Features:
LOGI LOG:    DPI Control:         βœ… YES
LOGI LOG:    Button Diversion:    βœ… YES ⭐
LOGI LOG:    LED Control:         ❌ NO
LOGI LOG:    Onboard Profiles:    ❌ NO
LOGI LOG:    Report Rate:         ❌ NO
LOGI LOG:    Battery Monitoring:  βœ… YES
LOGI LOG: 
LOGI LOG: ==============================================
LOGI LOG: Scan complete. Found 1 device(s).
LOGI LOG: ==============================================

LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: βœ… Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC08A): speed=0.50, accel=10.00
LOGI LOG: BTTLogitechManager: Quick setup for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTLogitechManager: πŸ”’ Started quick setup for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Device 'MX Vertical Advanced Ergonomic Mouse' is ready (slot 255), proceeding with quick setup
LOGI LOG: BTTLogitechManager: Remapping buttons to standard mouse buttons for 'MX Vertical Advanced Ergonomic Mouse' (remapScrollTilt=0)...
LOGI LOG: BTTLogitechManager: Using runtime task ID remapping (0x1b04) - NO flash writes
LOGI LOG: BTTLogitechManager: Factory profiles preserved - buttons revert on disconnect
LOGI LOG: BTTLogitechManager: ⚑ Using 7 cached buttons for remapping
LOGI LOG: BTTLogitechManager: Found 7 buttons, analyzing task IDs...
LOGI LOG: BTTLogitechManager: Device 'MX Vertical Advanced Ergonomic Mouse' detected, isMXMaster4=0
LOGI LOG: BTTLogitechManager:   Processing button 0x0050, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0050 (Left) β†’ button 0
LOGI LOG: BTTLogitechManager:   Processing button 0x0051, flags=0x11
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0051 (Right) β†’ button 1
LOGI LOG: BTTLogitechManager:   Processing button 0x0052, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0052 (Middle) β†’ button 2
LOGI LOG: BTTLogitechManager:   Processing button 0x0053, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0053 (Back) β†’ button 3
LOGI LOG: BTTLogitechManager:   Processing button 0x0056, flags=0x71
LOGI LOG: BTTLogitechManager:   β†’ Fixed mapping: 0x0056 (Forward) β†’ button 4
LOGI LOG: BTTLogitechManager:   Processing button 0x00FD, flags=0x71
LOGI LOG: BTTLogitechManager:   Processing button 0x00D7, flags=0xA0
LOGI LOG: BTTLogitechManager:   β†’ Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager:   β†’ Dynamic mapping: controlId 0x00FD β†’ button 10 (sorted by controlId)
LOGI LOG: BTTLogitechManager: βœ… Created dynamic button mapping for 'MX Vertical Advanced Ergonomic Mouse' with 6 buttons
LOGI LOG: BTTLogitechManager: πŸ”„ Undiversting all reprogrammable buttons first to reset state...
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0050 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0051 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Skipping standard button 0x0052 (preserving default behavior)
LOGI LOG: BTTLogitechManager:   Including virtual divertable button 0x00D7 (flags=0xA0) for undivert
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential undiverting 4 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to undivert 0x00D7: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential undiversion complete: 0/4 succeeded
LOGI LOG: BTTLogitechManager: ⚠️  Some buttons failed to undivert: IOHIDDeviceSetReport failed (continuing anyway)
LOGI LOG: BTTLogitechManager: βœ… Undivert phase complete (0/4), proceeding with remapping...
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0050 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0051 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Preserving standard button 0x0052 (keeping default behavior)
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0053: task 0x003C β†’ 0x005E
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x0056: task 0x003E β†’ 0x005F
LOGI LOG: BTTLogitechManager:   Remapping extra button 0x00FD: task 0x00D2 β†’ 0x0060
LOGI LOG: BTTLogitechManager:   Skipping non-reprogrammable button 0x00D7
LOGI LOG: BTTLogitechManager: πŸ”„ Sequential remapping 3 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ⚠️  Failed to remap button 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: βœ… Remapped 0 buttons via task IDs
LOGI LOG: BTTLogitechManager: πŸ”€ Diverting 3 buttons that couldn't be remapped for event handling...
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential diverting 3 buttons (USB wired)...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x0053: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x0056: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTHIDPPButtonManager: ⚠️ Failed to divert 0x00FD: IOHIDDeviceSetReport failed
LOGI LOG: BTTHIDPPButtonManager: πŸ”„ Sequential diversion complete: 0/3 succeeded
LOGI LOG: BTTLogitechManager: ⚠️  Some buttons failed to divert: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: βœ… Diverted 0/3 buttons for event handling
LOGI LOG: BTTLogitechManager: ℹ️  Diverted buttons will trigger buttonEventHandler callback
LOGI LOG: BTTLogitechManager: Setting DPI for 'MX Vertical Advanced Ergonomic Mouse' to 2000...
LOGI LOG: BTTLogitechManager: First-time DPI setup - enumerating sensors...
LOGI LOG: BTTHIDPPProtocol: ❌ IOHIDDeviceSetReport failed: 0xE0005000
LOGI LOG: BTTLogitechManager: ❌ Failed to enumerate sensors: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: ⚠️  DPI setup failed: IOHIDDeviceSetReport failed
LOGI LOG: BTTLogitechManager: ❌ Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: ⚠️  Report rate setup failed: Device 'MX Vertical Advanced Ergonomic Mouse' does not support report rate control
LOGI LOG: BTTLogitechManager: πŸ”“ Quick setup guard cleared for 'MX Vertical Advanced Ergonomic Mouse' (guard key: MX Vertical Advanced Ergonomic Mouse)
LOGI LOG: BTTLogitechManager: βœ… Quick setup complete for 'MX Vertical Advanced Ergonomic Mouse'
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: Connected Devices Summary:
LOGI LOG: ========================================
LOGI LOG:   - MX Vertical Advanced Ergonomic Mouse (VID:0x046d PID:0xc08a) Ready:YES Type:Mouse
LOGI LOG: 
LOGI LOG: ========================================
LOGI LOG: G604 Scroll Slot Debug:
LOGI LOG: ========================================
LOGI LOG:   No G604 devices found
LOGI LOG: ========================================
LOGI LOG: End of Debug Information
LOGI LOG: ========================================

Could you try to turn off/on the mouse? It seems to immediately reject all commands, maybe something is in a weird state now due to the previous bug. Turning it off would reset that