For reference, here are the Logitech logs when using 6.081
LOGI LOG: ========================================
LOGI LOG: BTT Logitech Debug Information
LOGI LOG: Timestamp: 2026-01-20 16:32:58
LOGI LOG: macOS: Version 26.3 (assemblage 25D5101c)
LOGI LOG: ========================================
LOGI LOG:
LOGI LOG: Step 1: Stopping Logitech Manager...
LOGI LOG: BTTLogitechManager: Stopping...
LOGI LOG: BTTLogitechManager: Setting ONBOARD mode on 6 device(s) before shutdown...
LOGI LOG: BTTLogitechManager: ✅ ONBOARD mode set on 0 device(s), skipped 6 (shutdown complete)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd8230 for deviceIndex 1 (remaining protocols for this device: 5)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 1)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd8230 for deviceIndex 1 (remaining protocols for this device: 5)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 1)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd8cb0 for deviceIndex 2 (remaining protocols for this device: 4)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 2)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd8cb0 for deviceIndex 2 (remaining protocols for this device: 4)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 2)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd97a0 for deviceIndex 3 (remaining protocols for this device: 3)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 3)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd97a0 for deviceIndex 3 (remaining protocols for this device: 3)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 3)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd9880 for deviceIndex 4 (remaining protocols for this device: 2)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 4)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cd9880 for deviceIndex 4 (remaining protocols for this device: 2)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 4)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cda990 for deviceIndex 5 (remaining protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 5)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca2cda990 for deviceIndex 5 (remaining protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 5)
LOGI LOG: BTTHIDPPProtocol: ❌ Unregistered protocol 0xca4e5fa30 for deviceIndex 6 (remaining protocols for this device: 0)
LOGI LOG: BTTHIDPPProtocol: Last protocol for this device - will unregister callback
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 6)
LOGI LOG: BTTHIDPPProtocol: Skipping all IOKit cleanup (shared device for receiver slot 6)
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 - USB Receiver - Interface: 2, Usage Page: 0xFF00, Usage: 0x0001
LOGI LOG: BTTLogitechManager: ✅ Accepted - Vendor-specific HID++ interface (Interface 2)
LOGI LOG: BTTLogitechManager: Device connected - USB Receiver (046d:c52b)
LOGI LOG: BTTLogitechManager: 🔌 Receiver detected - setting up for slot enumeration...
LOGI LOG: BTTLogitechManager: Setting up receiver input callbacks...
LOGI LOG: BTTLogitechManager: ✓ Receiver callbacks registered and device opened
LOGI LOG: BTTLogitechManager: Enabling receiver notifications (flags: 0x000900)...
LOGI LOG: BTTLogitechManager: Sent HID++ 1.0 command: 10 FF 80 00 00 09 00
LOGI LOG: BTTLogitechManager: Found HID interface - USB Receiver - Interface: 0, Usage Page: 0x0001, Usage: 0x0006
LOGI LOG: BTTLogitechManager: Skipping interface (Usage Page: 0x0001, Usage: 0x0006, Interface: 0)
LOGI LOG: BTTLogitechManager: Found HID interface - USB Receiver - Interface: 1, Usage Page: 0x0001, Usage: 0x0002
LOGI LOG: BTTLogitechManager: Skipping interface (Usage Page: 0x0001, Usage: 0x0002, Interface: 1)
LOGI LOG: BTTLogitechManager: Enumerating receiver slots (simplified approach)...
LOGI LOG: BTTLogitechManager: Starting sequential slot enumeration (slots 1-6)...
LOGI LOG: BTTLogitechManager: Checking receiver slot 1...
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 1...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 1: 3
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=1, IOHIDDevice retain count=3
LOGI LOG: BTTHIDPPDevice: Receiver slot 1 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 1, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 1, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cd9f80 for deviceIndex 1 (total protocols for this device: 1)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: First protocol for this receiver - registering shared input callback
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 1, discovering features...
LOGI LOG: BTTHIDPPFeatureCache: ✅ Found cached features for 046d:c52b:slot1 (cached 2026-01-20 11:34:36 +0000)
LOGI LOG: BTTHIDPPDevice: ⚡ Using cached features for USB Receiver (Slot) (34 features)
LOGI LOG: BTTHIDPPDevice: ⚡ Restoring cached device name: MX Vertical Advanced Ergonomic Mouse
LOGI LOG: BTTHIDPPProtocol: Pre-populated feature cache with 34 features
LOGI LOG: BTTHIDPPDevice: Cached protocol: 4.5
LOGI LOG: BTTHIDPPProtocol: ✅ Registered event handler for feature 0x1B04 (protocol 0xca2cd9f80, deviceIndex 1)
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: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, 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=0x01, 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=0x01, 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=0x01, 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:c52b:slot1 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 in slot 1 - MX Vertical Advanced Ergonomic Mouse (Protocol 4.5)
LOGI LOG: BTTLogitechManager: 🔍 Checking for pending setup requests for 'MX Vertical Advanced Ergonomic Mouse'...
LOGI LOG: BTTHIDPPFeatureCache: Saved 2 device profiles to disk
LOGI LOG: BTTLogitechManager: ✅ Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC52B): speed=0.70, 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 active)
LOGI LOG: BTTLogitechManager: ✅ Device 'MX Vertical Advanced Ergonomic Mouse' is ready, proceeding with quick setup
LOGI LOG: BTTLogitechManager: Stored pending LED effect for atomic profile write
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:c52b:slot1 (7 buttons, cached 2026-01-20 14:58:37 +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: Skipping non-reprogrammable button 0x00D7 (flags=0xA0)
LOGI LOG: BTTLogitechManager: Checking receiver slot 2...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 3 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 2...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 2: 5
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=2, IOHIDDevice retain count=5
LOGI LOG: BTTHIDPPDevice: Receiver slot 2 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 2, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 2, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cd9730 for deviceIndex 2 (total protocols for this device: 2)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: Input callback already registered by another slot - reusing it
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 2, discovering features...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 2 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTLogitechManager: ✅ Undivert phase complete, 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: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 3 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 2 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTLogitechManager: ✅ Remapped 3 buttons via task IDs
LOGI LOG: BTTLogitechManager: No scroll wheel manager, skipping hi-res scroll
LOGI LOG: BTTLogitechManager: No scroll wheel manager, skipping main wheel invert
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: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x08
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, func=0x00)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, func=0x01)
LOGI LOG: BTTHIDPPFeatureCache: ❌ No cached features for 046d:c52b:slot2
LOGI LOG: BTTHIDPPDevice: 🔍 No cached features for USB Receiver (Slot), performing full discovery...
LOGI LOG: BTTHIDPPProtocol: Detecting protocol version (deviceIndex: 2)...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x02, sub_id(featureIdx)=0x8F, address=0x00
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ❌ Protocol version detection failed: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ❌ Feature discovery failed for slot 2: HID++ error: 0x09
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, 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: Setting SmartShift for 'MX Vertical Advanced Ergonomic Mouse' (ratchet: 0, autoDisengage: 20, torque: 80)...
LOGI LOG: BTTLogitechManager: ⚠️ SmartShift setup failed: Device not found or doesn't support scroll wheel features
LOGI LOG: BTTLogitechManager: 🔓 Quick setup guard cleared for 'MX Vertical Advanced Ergonomic Mouse'
LOGI LOG: BTTLogitechManager: ✅ Quick setup complete for 'MX Vertical Advanced Ergonomic Mouse'
LOGI LOG: BTTLogitechManager: Checking receiver slot 3...
LOGI LOG: BTTHIDPPProtocol: ❌ No protocol instance found for device index 255 (0xFF), reportID=0x11
LOGI LOG: BTTHIDPPProtocol: Registry has 2 protocols for this device: (
1,
2
)
LOGI LOG: - Device index 1 → protocol 0xca2cd9f80
LOGI LOG: - Device index 2 → protocol 0xca2cd9730
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 3...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 3: 7
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=3, IOHIDDevice retain count=7
LOGI LOG: BTTHIDPPDevice: Receiver slot 3 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 3, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 3, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cd8af0 for deviceIndex 3 (total protocols for this device: 3)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: Input callback already registered by another slot - reusing it
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 3, discovering features...
LOGI LOG: BTTHIDPPFeatureCache: ❌ No cached features for 046d:c52b:slot3
LOGI LOG: BTTHIDPPDevice: 🔍 No cached features for USB Receiver (Slot), performing full discovery...
LOGI LOG: BTTHIDPPProtocol: Detecting protocol version (deviceIndex: 3)...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x03, sub_id(featureIdx)=0x8F, address=0x00
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ❌ Protocol version detection failed: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ❌ Feature discovery failed for slot 3: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: Checking receiver slot 4...
LOGI LOG: BTTHIDPPProtocol: ❌ No protocol instance found for device index 255 (0xFF), reportID=0x11
LOGI LOG: BTTHIDPPProtocol: Registry has 3 protocols for this device: (
3,
1,
2
)
LOGI LOG: - Device index 3 → protocol 0xca2cd8af0
LOGI LOG: - Device index 1 → protocol 0xca2cd9f80
LOGI LOG: - Device index 2 → protocol 0xca2cd9730
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 4...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 4: 9
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=4, IOHIDDevice retain count=9
LOGI LOG: BTTHIDPPDevice: Receiver slot 4 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 4, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 4, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cd85b0 for deviceIndex 4 (total protocols for this device: 4)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: Input callback already registered by another slot - reusing it
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 4, discovering features...
LOGI LOG: BTTHIDPPFeatureCache: ❌ No cached features for 046d:c52b:slot4
LOGI LOG: BTTHIDPPDevice: 🔍 No cached features for USB Receiver (Slot), performing full discovery...
LOGI LOG: BTTHIDPPProtocol: Detecting protocol version (deviceIndex: 4)...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x04, sub_id(featureIdx)=0x8F, address=0x00
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ❌ Protocol version detection failed: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ❌ Feature discovery failed for slot 4: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: Checking receiver slot 5...
LOGI LOG: BTTHIDPPProtocol: ❌ No protocol instance found for device index 255 (0xFF), reportID=0x10
LOGI LOG: BTTHIDPPProtocol: Registry has 4 protocols for this device: (
3,
2,
1,
4
)
LOGI LOG: - Device index 3 → protocol 0xca2cd8af0
LOGI LOG: - Device index 2 → protocol 0xca2cd9730
LOGI LOG: - Device index 1 → protocol 0xca2cd9f80
LOGI LOG: - Device index 4 → protocol 0xca2cd85b0
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 5...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 5: 11
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=5, IOHIDDevice retain count=11
LOGI LOG: BTTHIDPPDevice: Receiver slot 5 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 5, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 5, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cda0d0 for deviceIndex 5 (total protocols for this device: 5)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: Input callback already registered by another slot - reusing it
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 5, discovering features...
LOGI LOG: BTTHIDPPFeatureCache: ❌ No cached features for 046d:c52b:slot5
LOGI LOG: BTTHIDPPDevice: 🔍 No cached features for USB Receiver (Slot), performing full discovery...
LOGI LOG: BTTHIDPPProtocol: Detecting protocol version (deviceIndex: 5)...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x05, sub_id(featureIdx)=0x8F, address=0x00
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ❌ Protocol version detection failed: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ❌ Feature discovery failed for slot 5: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: Checking receiver slot 6...
LOGI LOG: BTTHIDPPProtocol: ❌ No protocol instance found for device index 255 (0xFF), reportID=0x10
LOGI LOG: BTTHIDPPProtocol: Registry has 5 protocols for this device: (
3,
2,
5,
1,
4
)
LOGI LOG: - Device index 3 → protocol 0xca2cd8af0
LOGI LOG: - Device index 2 → protocol 0xca2cd9730
LOGI LOG: - Device index 5 → protocol 0xca2cda0d0
LOGI LOG: - Device index 1 → protocol 0xca2cd9f80
LOGI LOG: - Device index 4 → protocol 0xca2cd85b0
LOGI LOG: BTTLogitechManager: Creating device for receiver slot 6...
LOGI LOG: BTTLogitechManager: Receiver retain count for slot 6: 13
LOGI LOG: BTTHIDPPDevice: Initializing with deviceIndex=6, IOHIDDevice retain count=13
LOGI LOG: BTTHIDPPDevice: Receiver slot 6 - using receiver IDs: 046d:c52b
LOGI LOG: Unknown device: USB Receiver (Slot) (046d:c52b) - using feature discovery, deviceIndex: 6, transport: USB
LOGI LOG: BTTHIDPPProtocol: Starting protocol (deviceIndex: 6, isSharedDevice: 1)...
LOGI LOG: BTTHIDPPProtocol: ✅ Registered protocol 0xca2cdabc0 for deviceIndex 6 (total protocols for this device: 6)
LOGI LOG: BTTHIDPPProtocol: Shared device - skipping open/schedule (already done by receiver setup)
LOGI LOG: BTTHIDPPProtocol: Input callback already registered by another slot - reusing it
LOGI LOG: BTTHIDPPProtocol: Supports short reports: YES, long reports: YES
LOGI LOG: BTTLogitechManager: Created device for slot 6, discovering features...
LOGI LOG: BTTHIDPPFeatureCache: ❌ No cached features for 046d:c52b:slot6
LOGI LOG: BTTHIDPPDevice: 🔍 No cached features for USB Receiver (Slot), performing full discovery...
LOGI LOG: BTTHIDPPProtocol: Detecting protocol version (deviceIndex: 6)...
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x06, sub_id(featureIdx)=0x8F, address=0x00
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ❌ Protocol version detection failed: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ❌ Feature discovery failed for slot 6: HID++ error: 0x09
LOGI LOG: BTTLogitechManager: ✅ Finished enumerating all receiver slots
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: 0xc52b
LOGI LOG: Database: ⚠️ Unknown device (will use feature discovery)
LOGI LOG: Device Index: 1 (0x01)
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: BTTLogitechManager: ✅ Set macOS pointer settings for 'MX Vertical Advanced Ergonomic Mouse' (IOHIDDevice: 0x046D:0xC52B): speed=0.70, 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 active)
LOGI LOG: BTTLogitechManager: ✅ Device 'MX Vertical Advanced Ergonomic Mouse' is ready, proceeding with quick setup
LOGI LOG: BTTLogitechManager: Stored pending LED effect for atomic profile write
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: Skipping non-reprogrammable button 0x00D7 (flags=0xA0)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x08
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, func=0x00)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x08
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x00)
LOGI LOG: BTTHIDPPButtonManager: 📊 Device reports 7 keys/buttons to enumerate
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [0] Key/Button 0x0050: flags=0x11 [MouseBtn|Reprog] divertable=0 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [1] Key/Button 0x0051: flags=0x11 [MouseBtn|Reprog] divertable=0 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [2] Key/Button 0x0052: flags=0x71 [MouseBtn|Reprog|DIVERT|Persist] divertable=1 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [3] Key/Button 0x0053: flags=0x71 [MouseBtn|Reprog|DIVERT|Persist] divertable=1 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [4] Key/Button 0x0056: flags=0x71 [MouseBtn|Reprog|DIVERT|Persist] divertable=1 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [5] Key/Button 0x00FD: flags=0x71 [MouseBtn|Reprog|DIVERT|Persist] divertable=1 virtual=0
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x18
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x01)
LOGI LOG: BTTHIDPPButtonManager: 📋 [6] Key/Button 0x00D7: flags=0xA0 [DIVERT|VIRTUAL] divertable=1 virtual=1
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x28
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 6 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x02)
LOGI LOG:
🖱️ Buttons:
LOGI LOG: Total: 7 buttons
LOGI LOG: Available for diversion:
LOGI LOG: Button at position 0 (controlId: 0x0050)
LOGI LOG: Button at position 0 (controlId: 0x0051)
LOGI LOG: Button at position 0 (controlId: 0x0052)
LOGI LOG: Button at position 0 (controlId: 0x0053)
LOGI LOG: Button at position 0 (controlId: 0x0056)
LOGI LOG: Button at position 0 (controlId: 0x00FD)
LOGI LOG: Button at position 0 (controlId: 0x00D7)
LOGI LOG: BTTHIDPPProtocol: ⏱️ Request timeout after 2.0 seconds
LOGI LOG: Feature Index: 0x08, Function ID: 0x00, Device Index: 1
LOGI LOG: Pending requests before timeout: 5
LOGI LOG: Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: ⏱️ Request timeout after 2.0 seconds
LOGI LOG: Feature Index: 0x0A, Function ID: 0x03, Device Index: 1
LOGI LOG: Pending requests before timeout: 4
LOGI LOG: Device may not support this feature or function.
LOGI LOG: BTTLogitechManager: ⚠️ Failed to undivert button 0x0053: Request timeout (continuing anyway)
LOGI LOG: BTTHIDPPProtocol: ⏱️ Request timeout after 2.0 seconds
LOGI LOG: Feature Index: 0x0A, Function ID: 0x03, Device Index: 1
LOGI LOG: Pending requests before timeout: 3
LOGI LOG: Device may not support this feature or function.
LOGI LOG: BTTLogitechManager: ⚠️ Failed to undivert button 0x0056: Request timeout (continuing anyway)
LOGI LOG: BTTHIDPPProtocol: ⏱️ Request timeout after 2.0 seconds
LOGI LOG: Feature Index: 0x0A, Function ID: 0x03, Device Index: 1
LOGI LOG: Pending requests before timeout: 2
LOGI LOG: Device may not support this feature or function.
LOGI LOG: BTTLogitechManager: ⚠️ Failed to undivert button 0x00FD: Request timeout (continuing anyway)
LOGI LOG: BTTLogitechManager: ✅ Undivert phase complete, 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: BTTHIDPPProtocol: ⏱️ Request timeout after 2.0 seconds
LOGI LOG: Feature Index: 0x12, Function ID: 0x01, Device Index: 1
LOGI LOG: Pending requests before timeout: 4
LOGI LOG: Device may not support this feature or function.
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 3 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 2 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x0A, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x0A, func=0x03)
LOGI LOG: BTTLogitechManager: ✅ Remapped 3 buttons via task IDs
LOGI LOG: BTTLogitechManager: No scroll wheel manager, skipping hi-res scroll
LOGI LOG: BTTLogitechManager: No scroll wheel manager, skipping main wheel invert
LOGI LOG: BTTLogitechManager: Setting DPI for 'MX Vertical Advanced Ergonomic Mouse' to 2000...
LOGI LOG: BTTLogitechManager: ⚡ Using cached sensor info (FAST PATH)
LOGI LOG: BTTHIDPPProtocol: 🔍 INCOMING MESSAGE: deviceIdx=0x01, sub_id(featureIdx)=0x12, address=0x38
LOGI LOG: BTTHIDPPProtocol: 🔍 Checking 1 pending requests for match
LOGI LOG: BTTHIDPPProtocol: ✅ Matched to pending request (feat=0x12, 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: Setting SmartShift for 'MX Vertical Advanced Ergonomic Mouse' (ratchet: 0, autoDisengage: 20, torque: 80)...
LOGI LOG: BTTLogitechManager: ⚠️ SmartShift setup failed: Device not found or doesn't support scroll wheel features
LOGI LOG: BTTLogitechManager: 🔓 Quick setup guard cleared for '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:0xc52b) Ready:YES Type:Mouse
LOGI LOG: - USB Receiver (Slot) (VID:0x046d PID:0xc52b) Ready:NO Type:Mouse
LOGI LOG: - USB Receiver (Slot) (VID:0x046d PID:0xc52b) Ready:NO Type:Mouse
LOGI LOG: - USB Receiver (Slot) (VID:0x046d PID:0xc52b) Ready:NO Type:Mouse
LOGI LOG: - USB Receiver (Slot) (VID:0x046d PID:0xc52b) Ready:NO Type:Mouse
LOGI LOG: - USB Receiver (Slot) (VID:0x046d PID:0xc52b) Ready:NO 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: ========================================
While everything works, I am curious about this entry, reading this thread, it seems a mouse has to be in the db to be supported correctly:
LOGI LOG: Database: ⚠️ Unknown device (will use feature discovery)