pwr-Solaar / Solaar

Linux device manager for Logitech devices
https://pwr-solaar.github.io/Solaar
GNU General Public License v2.0
5.55k stars 411 forks source link

Solaar plus an ERGO K860 keyboard and an MX ERGO trackball. #1177

Closed HandyGadget closed 2 years ago

HandyGadget commented 3 years ago

I used it to enable a unifying USB receiver on an Ubuntu 20.04.x system, and shared it with an ERGO K860 keyboard and an MX ERGO trackball. Both devices are recognized, and work functionally, for the most part, but I have no internal options, and it only lists the keyboard and not the trackball.

Screenshot-20210529141608-691x375

Screenshot-20210529141449-691x375

pfps commented 3 years ago

Please provide output of solaar show The missing trackball might require more investigation.

HandyGadget commented 3 years ago
terence@obsidian:~/Desktop$ solaar show
Unifying Receiver
  Device path  : /dev/hidraw0
  USB id       : 046d:c52b
  Serial       : 82249874
    Firmware   : 24.11.B0036
    Bootloader : 02.09
    Other      : AA.AC
  Has 2 paired device(s) out of a maximum of 6.
  Notifications: wireless (0x000100)
  Device activity counters: 1=219, 2=231

  1: MX Ergo Multi-Device Trackball 
     Codename     : MX Ergo
     Kind         : trackball
     Wireless PID : 406F
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: B851EBC1
        Bootloader: BOT 49.00.B0001
          Firmware: MPM 06.03.B0022
             Other: 
     The power switch is located on the base.
     Supports 36 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: unknown:0007           {0007}   
         6: RESET                  {0020}   
         7: unknown:0021           {0021}   
         8: BATTERY STATUS         {1000}   
         9: LED CONTROL            {1300}   
        10: REPROG CONTROLS V4     {1B04}   
        11: unknown:1C00           {1C00}   
        12: unknown:2006           {2006}   
        13: POINTER SPEED          {2205}   
            Pointer Speed: 1.0
        14: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 18
            Scroll lines: 0
        15: unknown:00C2           {00C2}   
        16: unknown:1802           {1802}   internal, hidden
        17: unknown:1803           {1803}   internal, hidden
        18: unknown:1806           {1806}   internal, hidden
        19: unknown:1805           {1805}   internal, hidden
        20: unknown:1813           {1813}   internal, hidden
        21: CHANGE HOST            {1814}   
        22: unknown:1815           {1815}   
        23: unknown:1830           {1830}   internal, hidden
        24: unknown:1861           {1861}   internal, hidden
        25: unknown:1890           {1890}   internal, hidden
        26: unknown:1891           {1891}   internal, hidden
        27: unknown:18A1           {18A1}   internal, hidden
        28: unknown:1DF3           {1DF3}   internal, hidden
        29: unknown:1E00           {1E00}   hidden
        30: unknown:1EB0           {1EB0}   internal, hidden
        31: unknown:18B1           {18B1}   internal, hidden
        32: unknown:1850           {1850}   internal, hidden
        33: unknown:1F03           {1F03}   internal, hidden
        34: unknown:18C0           {18C0}   internal, hidden
        35: LOWRES WHEEL           {2130}   
            Wheel Reports: HID
     Has 9 reprogrammable keys:
         0: LEFT CLICK                , default: LeftClick                   => LEFT CLICK                
             mse, reprogrammable, pos:0, group:1, gmask:1
         1: RIGHT CLICK               , default: RightClick                  => RIGHT CLICK               
             mse, reprogrammable, pos:0, group:1, gmask:1
         2: MIDDLE BUTTON             , default: MiddleMouseButton           => MIDDLE BUTTON             
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         3: BACK AS BUTTON 4          , default: BackEx                      => BACK AS BUTTON 4          
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         4: FORWARD AS BUTTON 5       , default: BrowserForwardEx            => FORWARD AS BUTTON 5       
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         5: unknown:00ED              , default: unknown:00C4                => unknown:00ED              
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         6: LEFT SCROLL AS AC PAN     , default: HorzScrollLeftSet           => LEFT SCROLL AS AC PAN     
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         7: RIGHT SCROLL AS AC PAN    , default: HorzScrollRightSet          => RIGHT SCROLL AS AC PAN    
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         8: unknown:00D7              , default: unknown:00B4                => unknown:00D7              
             divertable, virtual, pos:0, group:3, gmask:0
     Battery: 50%, discharging.

  2: Wireless Keyboard ERGO K860
     Codename     : ERGO K860
     Kind         : keyboard
     Wireless PID : 4088
     Protocol     : HID++ 4.5
     Polling rate : 20 ms (50Hz)
     Serial number: 305B1714
        Bootloader: BL1 09.00.B0010
          Firmware: MPK 10.00.B0010
             Other: 
     The power switch is located on the top edge.
     Supports 31 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: unknown:0007           {0007}   
         7: BATTERY STATUS         {1000}   
         8: REPROG CONTROLS V4     {1B04}   
         9: CHANGE HOST            {1814}   
        10: unknown:1815           {1815}   
        11: K375S FN INVERSION     {40A3}   
        12: ENCRYPTION             {4100}   
        13: LOCK KEY STATE         {4220}   
        14: KEYBOARD DISABLE       {4521}   
        15: unknown:4531           {4531}   
        16: unknown:00C2           {00C2}   
        17: unknown:1802           {1802}   internal, hidden
        18: unknown:1803           {1803}   internal, hidden
        19: unknown:1806           {1806}   internal, hidden
        20: unknown:1813           {1813}   internal, hidden
        21: unknown:1805           {1805}   internal, hidden
        22: unknown:1830           {1830}   internal, hidden
        23: unknown:1890           {1890}   internal, hidden
        24: unknown:1891           {1891}   internal, hidden
        25: unknown:18A1           {18A1}   internal, hidden
        26: unknown:1DF3           {1DF3}   internal, hidden
        27: unknown:1E00           {1E00}   hidden
        28: unknown:1EB0           {1EB0}   internal, hidden
        29: unknown:1861           {1861}   internal, hidden
        30: unknown:18B0           {18B0}   internal, hidden
     Has 24 reprogrammable keys:
         0: unknown:00D1              , default: unknown:00AE                => unknown:00D1              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         1: unknown:00D2              , default: unknown:00AF                => unknown:00D2              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         2: unknown:00D3              , default: unknown:00B0                => unknown:00D3              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         3: unknown:00C7              , default: unknown:00A3                => unknown:00C7              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, gmask:0
         4: unknown:00C8              , default: unknown:00A4                => unknown:00C8              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, gmask:0
         5: unknown:00E0              , default: unknown:00BF                => unknown:00E0              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, gmask:0
         6: unknown:0100              , default: unknown:00D5                => unknown:0100              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, gmask:0
         7: SHOW DESKTOP              , default: ShowDesktop                 => SHOW DESKTOP              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, gmask:0
         8: unknown:00D4              , default: unknown:00B1                => unknown:00D4              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, gmask:0
         9: unknown:00E4              , default: Previous                    => unknown:00E4              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, gmask:0
        10: unknown:00E5              , default: Play/Pause                  => unknown:00E5              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, gmask:0
        11: unknown:00E6              , default: Next                        => unknown:00E6              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, gmask:0
        12: unknown:00E7              , default: Mute                        => unknown:00E7              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, gmask:0
        13: unknown:00E8              , default: Volume Down                 => unknown:00E8              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, gmask:0
        14: unknown:00E9              , default: Volume Up                   => unknown:00E9              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, gmask:0
        15: unknown:0101              , default: unknown:00D6                => unknown:0101              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        16: unknown:00BF              , default: unknown:009B                => unknown:00BF              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        17: Calculator                , default: Calculator                  => Calculator                
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        18: unknown:00EA              , default: unknown:00C3                => unknown:00EA              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        19: Lock PC                   , default: WindowsLock                 => Lock PC                   
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        20: unknown:00EC              , default: unknown:00B8                => unknown:00EC              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
        21: unknown:00EB              , default: unknown:00B6                => unknown:00EB              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
        22: unknown:00DE              , default: Do Nothing One              => unknown:00DE              
             is FN, pos:0, group:0, gmask:0
        23: unknown:0034              , default: Do Nothing One              => unknown:0034              
             nonstandard, pos:0, group:0, gmask:0
     Battery: 100%, discharging.
pfps commented 3 years ago

It looks as if the Solaar that you provided the screenshots from is old. Try clicking on the About Solaar button. You should be running at least version 1.0.5.

HandyGadget commented 3 years ago

Yes, the version I am using is 1.0.1 which was obtained via apt install on Ubuntu

pfps commented 3 years ago

You can install a newer version for Ubuntu by using one of the packages listed on https://github.com/pwr-Solaar/Solaar. You may have to uninstall the system package first.

HandyGadget commented 3 years ago

Yes, thanks, that's much better...

Screenshot-20210530015819-508x463

Screenshot-20210530015850-1010x486

Screenshot-20210530015912-1010x486

One thing I noticed, I can only select Mac or Windows but not Linux O/S.

pfps commented 3 years ago

That's a feature of the hardware - it can switch between the Mac layout and the Windows layout.

FeryET commented 2 years ago

Hi. I have a K860 which paired successfully + an MX Ergo Trackball that has paired but has no battery status. What can I do to have an automated battery control (shutting down the mice when shutting down the device(, but this is not hapenning, Any idea how to fix this? image

pfps commented 2 years ago

Please provide output of solaar show to see what features this device provides. Also, which version of Solaar are you running?

FeryET commented 2 years ago

Output is this:

Unifying Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:c52b
  Serial       : E97690D2
    Firmware   : 24.11.B0036
    Bootloader : 02.09
    Other      : AA.AC
  Has 2 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 1=14, 2=164

  1: Wireless Keyboard ERGO K860
     Codename     : ERGO K860
     Kind         : keyboard
     Wireless PID : 4088
     Protocol     : HID++ 4.5
     Polling rate : 20 ms (50Hz)
     Serial number: F2466415
     The power switch is located on the base.
     Supports 31 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: unknown:0007           {0007}   
         7: BATTERY STATUS         {1000}   
         8: REPROG CONTROLS V4     {1B04}   
         9: CHANGE HOST            {1814}   
        10: unknown:1815           {1815}   
        11: K375S FN INVERSION     {40A3}   
        12: ENCRYPTION             {4100}   
        13: LOCK KEY STATE         {4220}   
        14: KEYBOARD DISABLE       {4521}   
        15: unknown:4531           {4531}   
        16: unknown:00C2           {00C2}   
        17: unknown:1802           {1802}   internal, hidden
        18: unknown:1803           {1803}   internal, hidden
        19: unknown:1806           {1806}   internal, hidden
        20: unknown:1813           {1813}   internal, hidden
        21: unknown:1805           {1805}   internal, hidden
        22: unknown:1830           {1830}   internal, hidden
        23: unknown:1890           {1890}   internal, hidden
        24: unknown:1891           {1891}   internal, hidden
        25: unknown:18A1           {18A1}   internal, hidden
        26: unknown:1DF3           {1DF3}   internal, hidden
        27: unknown:1E00           {1E00}   hidden
        28: unknown:1EB0           {1EB0}   internal, hidden
        29: unknown:1861           {1861}   internal, hidden
        30: unknown:18B0           {18B0}   internal, hidden
     Has 24 reprogrammable keys:
         0: unknown:00D1              , default: unknown:00AE                => unknown:00D1              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         1: unknown:00D2              , default: unknown:00AF                => unknown:00D2              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         2: unknown:00D3              , default: unknown:00B0                => unknown:00D3              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
         3: unknown:00C7              , default: unknown:00A3                => unknown:00C7              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, gmask:0
         4: unknown:00C8              , default: unknown:00A4                => unknown:00C8              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, gmask:0
         5: unknown:00E0              , default: unknown:00BF                => unknown:00E0              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, gmask:0
         6: unknown:0100              , default: unknown:00D5                => unknown:0100              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, gmask:0
         7: SHOW DESKTOP              , default: ShowDesktop                 => SHOW DESKTOP              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, gmask:0
         8: unknown:00D4              , default: unknown:00B1                => unknown:00D4              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, gmask:0
         9: unknown:00E4              , default: Previous                    => unknown:00E4              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, gmask:0
        10: unknown:00E5              , default: Play/Pause                  => unknown:00E5              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, gmask:0
        11: unknown:00E6              , default: Next                        => unknown:00E6              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, gmask:0
        12: unknown:00E7              , default: Mute                        => unknown:00E7              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, gmask:0
        13: unknown:00E8              , default: Volume Down                 => unknown:00E8              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, gmask:0
        14: unknown:00E9              , default: Volume Up                   => unknown:00E9              
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, gmask:0
        15: unknown:0101              , default: unknown:00D6                => unknown:0101              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        16: unknown:00BF              , default: unknown:009B                => unknown:00BF              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        17: Calculator                , default: Calculator                  => Calculator                
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        18: unknown:00EA              , default: unknown:00C3                => unknown:00EA              
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        19: Lock PC                   , default: WindowsLock                 => Lock PC                   
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, gmask:0
        20: unknown:00EC              , default: unknown:00B8                => unknown:00EC              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
        21: unknown:00EB              , default: unknown:00B6                => unknown:00EB              
             nonstandard, divertable, persistently divertable, pos:0, group:0, gmask:0
        22: unknown:00DE              , default: Do Nothing One              => unknown:00DE              
             is FN, pos:0, group:0, gmask:0
        23: unknown:0034              , default: Do Nothing One              => unknown:0034              
             nonstandard, pos:0, group:0, gmask:0
     Battery: 100%, discharging.

  2: ERGO M575 Trackball
     Codename     : ERGO M575
     Kind         : mouse
     Wireless PID : 4096
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: CBC31827
        Bootloader: BOT 40.00.B0009
          Firmware: MPM 26.00.B0009
             Other: 
     The power switch is located on the base.
     Supports 26 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: unknown:0007           {0007}   
         7: unknown:1004           {1004}   
         8: REPROG CONTROLS V4     {1B04}   
         9: ADJUSTABLE DPI         {2201}   
        10: unknown:2250           {2250}   
        11: unknown:00C2           {00C2}   
        12: unknown:1802           {1802}   internal, hidden
        13: unknown:1803           {1803}   internal, hidden
        14: unknown:1806           {1806}   internal, hidden
        15: unknown:1812           {1812}   internal, hidden
        16: unknown:1805           {1805}   internal, hidden
        17: unknown:1830           {1830}   internal, hidden
        18: unknown:1890           {1890}   internal, hidden
        19: unknown:1891           {1891}   internal, hidden
        20: unknown:18A1           {18A1}   internal, hidden
        21: unknown:1E00           {1E00}   hidden
        22: unknown:1EB0           {1EB0}   internal, hidden
        23: unknown:1861           {1861}   internal, hidden
        24: unknown:1E22           {1E22}   internal, hidden
        25: unknown:1F03           {1F03}   internal, hidden
     Has 6 reprogrammable keys:
         0: LEFT CLICK                , default: LeftClick                   => LEFT CLICK                
             mse, reprogrammable, pos:0, group:1, gmask:1
         1: RIGHT CLICK               , default: RightClick                  => RIGHT CLICK               
             mse, reprogrammable, pos:0, group:1, gmask:1
         2: MIDDLE BUTTON             , default: MiddleMouseButton           => MIDDLE BUTTON             
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         3: FORWARD AS BUTTON 5       , default: BrowserForwardEx            => FORWARD AS BUTTON 5       
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         4: BACK AS BUTTON 4          , default: BackEx                      => BACK AS BUTTON 4          
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         5: unknown:00D7              , default: unknown:00B4                => unknown:00D7              
             divertable, virtual, pos:0, group:3, gmask:0
     Battery status unavailable.

What I want is to see battery status + signal the device to shutdown when my pc is shutting down. Apparently my Keyboard is doing this but my mouse is not ready. The universal controller came in with my keyboard too.

pfps commented 2 years ago

Your trackball uses feature 1004 to report battery status. Support for this was added in version 1.0.4 of Solaar. You should update to a new version using one of the methods described in the Solaar documentation on this site. You can find the version of Solaar you have by running solaar --version