Closed DexterHaxxor closed 6 months ago
Solaar is reporting the polling rate that the mouse is reporting via the normal methods. It may be that the mouse uses onboard profiles for polling rate instead.
Please provide the output of solaar show
, which should provide information on the HID++ features that the mouse has.
Solaar doesn't currently support onboard profiles but you are welcome to work on supporting this feature. It is a complex feature, perhaps with several variations. You will probably have to sign an NDA with Logitech to get enough information on the feature. Let me know if you want to proceed.
You will probably have to sign an NDA with Logitech to get enough information on the feature. Let me know if you want to proceed.
Who do you think I am? I'm not a Logitech employee or anything, just letting you know. 😅
Anyway, the output of solaar show
is this:
Thanks. It does look as if most of the device programmability uses onboard profiles, which Solaar does not support. But there are some other features that Solaar does not even have a name for, and might be useful. I've asked my contact at Logitech for information on these features.
As far as the onboard profiles feature goes, it is possible to get information about it from Logitech but you have to sign a simple NDA saying that you won't distribute the information further. You are allowed to implement support for the feature in Solaar though. Some of the settings in Solaar have been implemented this way.
Could I get some further information on this? I'd be interested.
Contact me directly at pfpschneider@gmail.com
I have information on a couple of the new features of the mouse - polling rate and adjustable dpi. It should be fairly easy to have Solaar have correct polling rate for the mouse.
I'm not sure what toggling the hybrid switches would involve. Can you tell me more about this part of the mouse?
PR #2229 adds support for the report rate for this mouse. Please give it a try - there is considerable untested code in the PR, so expect bugs. Run bin/solaar show
and bin/solaar
and try to change the report rate (after setting Onboard Profiles to Disable). If either produce errors or incorrect results run with -ddd
as the first argument and report back the result.
To clone and use Solar from its GitHub repository
git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar
Run Solaar as bin/solaar from this directory.
To run PR #2229, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:
git fetch origin pull/2229/head:pull_2229
git checkout pull_2229
To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:
git checkout pull_2229
git fetch origin pull/2229/head
git reset --hard FETCH_HEAD
hello, i am testing this out as i just picked up the mouse.
i do not see any option to change dpi or report rate
The following is whats in my config.yaml
- 1.1.10-30-g81f7d9d
- _NAME: PRO X 2
_absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert,
thumb-scroll-mode, report_rate, report_rate_extended, pointer_speed, dpi, speed-change, backlight, backlight-timed, fn-swap, reprogrammable-keys, persistent-remappable-keys,
divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, change-host, gesture2-gestures,
gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management]
_battery: 4100
_modelId: 40A9C09B0000
_sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore, onboard_profiles: true}
_serial: D70BBDD1
_unitId: D70BBDD1
_wpid: 40A9
onboard_profiles: 2
and the following is the output from running with -ddd
@kaneyumin Please provide output of bin/solaar -ddd show
. Then install the HID parser via pip install --user hid-parser
and rerun bin/solaar -ddd show
. Then remove your ~/.config/Solaar/config.yaml
file and rerun bin/solaar -ddd show
. Post the results.
first run of bin/solaar -ddd show
after pip install --user hid-parser
after removing config.yaml
@kaneyumin Thanks. Please run bin/solaar -ddd
after again removing ~/.config/solaar/config.yaml
if necessary and post the output.
@kaneyumin By the way, the errors in your first run of bin/solaar -ddd show
are actually Solaar working reasonably well. Without the hid-parser code Solaar doesn't know what USB interface to use for the receiver and tries the receiver's other interfaces and they don't support the messages Solaar uses. So Solaar ends up ignoring these interfaces. With hid-parser installed Solaar doesn't have to go down these blind alleys.
here is the output of bin/solaar -ddd
@kaneyumin Thanks. There are a couple of bugs. Please download the new version of the PR and try bin/solaar show
. If there are no errors, try bin/solaar -ddd
and try changing the Polling Frequency setting, after setting Onboard Profiles to Disable. Post the output.
This mouse uses Onboard Profiles, which is a very complex feature and is not supported by Solaar (yet). So there are things that can be done to the mouse but that can't be done using Solaar. All that Solaar can do with Onboard Profiles is to turn it off so that, for example, the Polling Frequency can be adjusted.
By the way, there are public descriptions of some of the features of the device in https://drive.google.com/drive/folders/0BxbRzx7vEV7eWmgwazJ3NUFfQ28
The feature numbers output by solaar show
form the first part of the file names.
The other feature for this mouse that can be implemented in Solaar is an extended adjustable DPI. Documentation on this feature is available at https://drive.google.com/drive/folders/0BxbRzx7vEV7eWmgwazJ3NUFfQ28?resourcekey=0-dQ-Lx1FORQl0KAdOHQaE1A It's a moderately complex feature and implementation will take some back-and-forth. The first thing to do is to get some information on the feature on the mouse by probing it using hidconsole - a tool to send HID++ messages to a device. This tool is in the tools directory of the Solaar repository so to use it you can go to where you downloaded Solaar and run tools/hidconsole /dev/hidrawN
, taking N from the device Path that is shown when you click on the little light bulb icon (or whatever the attention icon is for you) in the Solaar main window.
HID++ messages can be of several lengths but probaby the best way to go here is to use one length that is likely to work for all messages. The messages start with four one-byte fields - a length code, a device index, a feature offset, and a feature message ID. These four fields are echoed in responses to valid messages. The messages then contain fields specific to the feature and message.
For extended adjustable DPI on this mouse when connected via the receiver the first three fields are x11, x01, and x09.
The first thing to do is to see how many sensors the mouse has. This can be done by sending
11 01 090F 00000000000000000000000000000000
(the blanks are ignored and only serve as formatting). The response should look something like
11 01 090F 02000000000000000000000000000000
showing two sensors. I'm not sure whether this mouse has more than one sensor and it may be that Solaar will only ever support one sensor.
The next step is to probe each sensor using
11 01 091F NN000000000000000000000000000000
for NN less than the number of sensors.
This returns information about the sensor in the form
11 01 091F NNXXBB00000000000000000000000000
Then probe each sensor to find out the resolutions in both X and Y directions using
11 01 092F NN000000000000000000000000000000 11 01 092F NN010000000000000000000000000000
Finally, probe for the current and default resolutions using
11 01 095F NN000000000000000000000000000000
Here is the output:
It seems I still do not have an option to change the polling rate
Yes, a stupid bug. Please try again.
You may have to remove ~/.config/solaar/config.yaml before Solaar attempts to try to add the setting.
Okay, it seems to work great.
Will there be a way to change the DPI as well?
Hopefully, but I need information on how the feature is implemented on this mouse. See my message above.
@kaneyumin @DexterHaxxor I need help to implement adjustable DPI as described about five comments above.
@kaneyumin @DexterHaxxor Most of the fancy features of this mouse use Onboard Profiles, which is a complex feature not currently implemented in Solaar. Support for this feature may not be coming for quite some time.
PR #2237 adds limited support for the extended adjustable dpi feature (2202). Give it a try to see whether it works for this mouse. There should be a setting that allows you to adjust the mouse X-direction DPI. You have to disable Onboard Profiles for this to work. The implementation is limited as I don't have access to a device with this feature so I had to make some assumptions. Please also run the hidconsole commands described above.
To clone and use Solar from its GitHub repository
git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar
Run Solaar as bin/solaar from this directory.
To run PR #2237, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:
git fetch origin pull/2237/head:pull_2237
git checkout pull_2237
To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:
git checkout pull_2237
git fetch origin pull/2237/head
git reset --hard FETCH_HEAD
See PR #2243 for a cli to dump and load edited onboard profiles.
@kaneyumin @DexterHaxxor PR #2237 (see above) needs some testing before it can be merged into Solaar.
I'll get this mouse in a month or so, since I want it proper supported in Linux (Fedora), I'm open to help here. Especially with the onboard profiles feature. Delivery of this mouse will be mid march.
Onboard profiles work with several mice, but may not have been tested with this mouse. I'm not aware of any testing of the extended dpi support.
Help in testing would be appreciated.
It would be nice to have the following features supported
Also I could contribute to the programming work, but need at least some documentation resources.
Many of these are already supported in Solaar version 1.1.11. Onboard profiles can be dumped, edited outside of Solaar, and then reloaded. A GUI to do this inside Solaar would be nice - there should be sufficient documentation in the Solaar code for this. If you are interested, let me know.
Extended DPI is partly supported in PR #2237. See above for places to find documentation on some of the features of the mouse.
This is how it looks with the pr applied to the latest version There is not much available in there right now.
I think, first I get familiar with the source code, after that will search and Test the features in CLI and if necessary expose them in the UI. Then we can expand and implement not working freatures ;)
With PR #2237 you should see a DPI setting. If you have downloaded and are running this PR and you don't see the setting, run Solaar as solaar -ddd
and report the output.
Modifying the Onboard Profiles is done via solaar profiles PRO
to dump and solaar profiles PRO <file>
to load. If this doesn't dump and load the profiles then some changes may be needed in Solaar to select only active devices.
Yes, a silly bug, just fixed. Please download the PR and try again.
The exception is now gone, but it is still not working solar2.log
I forgot to tell you to edit ~/.conf/solar/config.yaml
to remove dpi_extended
from your device's _absent
field. (Remember to remove the associated comma as well.) You could also just remove the entire entry for the device or the entire config.yaml
file, but that causes Solaar to forget settings you have set up.
Solaar tries to optimize communication with devices and one of the ways it does this is to remember settings that caused errors or otherwise didn't work.
I removed the entry in the config and also the config itself, but still nothing :( solar3.log
OK, something is going wrong. Stay tuned.
happy to help too :) many thx for your work!
There is a new version of PR #2237 that should work better, but there are aspects of the device that are not covered in the spec so there still could easily be errors. Anyway, give it a try and if it doesn't work post the output of bin/solaar -ddd
.
With current #2237 it seems to not show up here...
% git show
commit e41b57b39b6bd9251ac382c3cff81605384affbb (HEAD -> pull_2237)
Author: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Tue Jan 30 18:47:10 2024 -0500
device: limited support for extended adjustable dpi
With current #2237 it seems to not show up here...
% git show commit e41b57b39b6bd9251ac382c3cff81605384affbb (HEAD -> pull_2237) Author: Peter F. Patel-Schneider <pfpschneider@gmail.com> Date: Tue Jan 30 18:47:10 2024 -0500 device: limited support for extended adjustable dpi
Same with me, no mouse
Oops, an infinite loop trying to set up the extended dpi setting.
Hopefully fixed now. However, it is unclear exactly what devices will do when the DPI settings are changed the way that Solaar will do. When you get to that point make sure to see whether anything unusual happens.
@CuteSC2 Some of the things you ask for are not something that the mice I have access to support so I don't know what they might correspond to in terms of the features of the PRO X 2. Please try out the current version of PR #2237 and see what it supports and what it doesn't.
There are things that Solaar cannot do that Logitech software can. Solaar is not a device driver so it does not process regular messages from the mouse, only special messages that the mouse normally sends or has been set up to send.
@CuteSC2 The current version of PR #2237 has separate setting of the x and y dpi and the lod.
Hi @pfps I also have this mouse and would love to see DPI adjustment supported. Anything I can do to help?
You should clone this repository, download the PR (see https://github.com/pwr-Solaar/Solaar/issues/2207#issuecomment-1918107465 above), and run Solaar as bin/solaar
from the clone directory. You should see a setting for the DPI adjustment with at least an "X" field but probably also a "Y" field and maybe an "LOD" field. Try changing each of them and see what happens. If you notice any anomalies run Solaar as bin/solaar -ddd
and post the output along with what you did.
This issue doesn't really need too many details, but I'd like to get involved with adding support for the Superlight 2 mouse, which I've recently purchased. It's showing up like this: Wired: Lightspeed receiver: Solaar is actually lying in the second screenshot, the polling rate reported by
evhz
is 1000 Hz, which isn't the full potential of the mouse but is also perfectly usable for gaming.The mouse doesn't have many features, but 2000 Hz report rate on Linux and being able to toggle their hybrid switches would be great.