Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing HID++ 2.0 features #582

Closed
33 of 99 tasks
FFY00 opened this issue Nov 30, 2019 · 36 comments
Closed
33 of 99 tasks

Add missing HID++ 2.0 features #582

FFY00 opened this issue Nov 30, 2019 · 36 comments

Comments

@FFY00
Copy link
Member

FFY00 commented Nov 30, 2019

There's a full list of HID++ 2.0 features at https://github.com/Logitech/cpg-docs/tree/master/hidpp20. We should add those features to the list and start implementing them.

To request documentation about an unimplemented features please open an issue in the repo I linked.

Feature list:

  • ROOT (0x0000)
  • FEATURE_SET (0x0001)
  • FEATURE_INFO (0x0002)
  • DEVICE_FW_VERSION (0x0003)
  • DEVICE_UNIT_ID (0x0004)
  • DEVICE_NAME (0x0005)
  • DEVICE_GROUPS (0x0006)
  • DEVICE_FRIENDLY_NAME (0x0007)
  • KEEP_ALIVE (0x0008)
  • RESET (0x0020)
  • CRYPTO_ID (0x0021)
  • TARGET_SOFTWARE (0x0030)
  • WIRELESS_SIGNAL_STRENGTH (0x0080)
  • DFU_CONTROL_LEGACY (0x00C0)
  • DFU_CONTROL_UNSIGNED (0x00C1)
  • DFU_CONTROL_SIGNED (0x00C2)
  • DFU (0x00D0)
  • BATTERY_STATUS (0x1000)
  • BATTERY_VOLTAGE (0x1001)
  • CHARGING_CONTROL (0x1010)
  • LED_CONTROL (0x1300)
  • GENERIC_TEST (0x1800)
  • DEVICE_RESET (0x1802)
  • OOBSTATE (0x1805)
  • CONFIG_DEVICE_PROPS (0x1806)
  • CHANGE_HOST (0x1814)
  • HOSTS_INFO (0x1815)
  • BACKLIGHT (0x1981)
  • BACKLIGHT2 (0x1982)
  • BACKLIGHT3 (0x1983)
  • PRESENTER_CONTROL (0x1A00)
  • SENSOR_3D (0x1A01)
  • REPROG_CONTROLS (0x1B00)
  • REPROG_CONTROLS_V2 (0x1B01)
  • REPROG_CONTROLS_V2_2 (0x1B02)
  • REPROG_CONTROLS_V3 (0x1B03)
  • REPROG_CONTROLS_V4 (0x1B04)
  • REPORT_HID_USAGE (0x1BC0)
  • PERSISTENT_REMAPPABLE_ACTION (0x1C00)
  • WIRELESS_DEVICE_STATUS (0x1D4B)
  • REMAINING_PAIRING (0x1DF0)
  • LEFT_RIGHT_SWAP (0x2001)
  • SWAP_BUTTON_CANCEL (0x2005)
  • POINTER_AXIS_ORIENTATION (0x2006)
  • VERTICAL_SCROLLING (0x2100)
  • SMART_SHIFT (0x2110)
  • HI_RES_SCROLLING (0x2120)
  • HIRES_WHEEL (0x2121)
  • LOWRES_WHEEL (0x2130)
  • THUMB_WHEEL (0x2150)
  • MOUSE_POINTER (0x2200)
  • ADJUSTABLE_DPI (0x2201)
  • POINTER_SPEED (0x2205)
  • ANGLE_SNAPPING (0x2230)
  • SURFACE_TUNING (0x2240)
  • HYBRID_TRACKING (0x2400)
  • FN_INVERSION (0x40A0)
  • NEW_FN_INVERSION (0x40A2)
  • K375S_FN_INVERSION (0x40A3)
  • ENCRYPTION (0x4100)
  • LOCK_KEY_STATE (0x4220)
  • SOLAR_DASHBOARD (0x4301)
  • KEYBOARD_LAYOUT (0x4520)
  • KEYBOARD_DISABLE (0x4521)
  • KEYBOARD_DISABLE_BY_USAGE (0x4522)
  • DUALPLATFORM (0x4530)
  • MULTIPLATFORM (0x4531)
  • KEYBOARD_LAYOUT_2 (0x4540)
  • CROWN (0x4600)
  • TOUCHPAD_FW_ITEMS (0x6010)
  • TOUCHPAD_SW_ITEMS (0x6011)
  • TOUCHPAD_WIN8_FW_ITEMS (0x6012)
  • TAP_ENABLE (0x6020)
  • TAP_ENABLE_EXTENDED (0x6021)
  • CURSOR_BALLISTIC (0x6030)
  • TOUCHPAD_RESOLUTION (0x6040)
  • TOUCHPAD_RAW_XY (0x6100)
  • TOUCHMOUSE_RAW_POINTS (0x6110)
  • TOUCHMOUSE_6120 (0x6120)
  • GESTURE (0x6500)
  • GESTURE_2 (0x6501)
  • GKEY (0x8010)
  • MKEYS (0x8020)
  • MR (0x8030)
  • BRIGHTNESS_CONTROL (0x8040)
  • REPORT_RATE (0x8060)
  • COLOR_LED_EFFECTS (0x8070)
  • RGB_EFFECTS (0X8071)
  • PER_KEY_LIGHTING (0x8080)
  • PER_KEY_LIGHTING_V2 (0x8081)
  • MODE_STATUS (0x8090)
  • ONBOARD_PROFILES (0x8100)
  • MOUSE_BUTTON_SPY (0x8110)
  • LATENCY_MONITORING (0x8111)
  • GAMING_ATTACHMENTS (0x8120)
  • FORCE_FEEDBACK (0x8123)
  • SIDETONE (0x8300)
  • EQUALIZER (0x8310)
  • HEADSET_OUT (0x8320)
@doctor64

This comment has been minimized.

@FFY00

This comment has been minimized.

@doctor64

This comment has been minimized.

@FFY00

This comment has been minimized.

@doctor64

This comment has been minimized.

@FFY00

This comment has been minimized.

@doctor64

This comment has been minimized.

@FFY00

This comment has been minimized.

@doctor64

This comment has been minimized.

@FFY00 FFY00 pinned this issue Dec 5, 2019
@FFY00 FFY00 changed the title Add missing features Add missing HID++ 2.0 features Dec 5, 2019
@FFY00 FFY00 added this to the 1.1.0 "an actual release" milestone Dec 5, 2019
@FFY00

This comment has been minimized.

@pfps
Copy link
Collaborator

pfps commented Jan 19, 2020

I should be able to do
KEYBOARD LAYOUT {4520}
KEYBOARD_LAYOUT_2 (0x4540)
if I get the specs.

@FFY00
Copy link
Member Author

FFY00 commented Jan 19, 2020

Those features are low priority as they only export the physical keyboard layout, the keyboard layout that is printed in the keys. There are other features like BACKLIGHT{,2,3} that could be more helpful.

@pfps
Copy link
Collaborator

pfps commented Jan 19, 2020

OK. Unfortunately I don't have any keyboard with a backlight, so I don't think I can work on those features.
It would be useful to have a short description of features.

@FFY00
Copy link
Member Author

FFY00 commented Jan 21, 2020

Which unimplemented features do your devices have?

@pfps
Copy link
Collaborator

pfps commented Jan 21, 2020

My M310s (WIPD 4031) have both VERTICAL_SCROLLING (0x2100) and MOUSE_POINTER (0x2200). These are reported in solaar show but I don't think there is any interface to change the values.

        19: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 24
            Scroll lines: 0
        20: MOUSE POINTER          {2200}   
            DPI: 1000
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice

@doctor64
Copy link
Contributor

doctor64 commented Jan 21, 2020

@pfps Accordingly to Logitech docs, features 0x2200 https://lekensteyn.nl/files/logitech/2200_mousepointer.pdf and 0x2100 (see https://drive.google.com/drive/folders/0BxbRzx7vEV7eWmgwazJ3NUFfQ28 file x2100_x2120_vertical_scrolling.pdf ) are informational only. All information reported are shown by solaar show. I'm not sure what it need to be added to GUI

@pfps
Copy link
Collaborator

pfps commented Jan 21, 2020

Ha. So also read-only and so nothing to be done.
Maybe there should be some place to put this read-only stuff in the solaar docs.
Perhaps comments in hidpp20.py?

@doctor64
Copy link
Contributor

@pfps It's already in docs/features.md. May be some additional comment about read-only needed, but i try to keep table lightweight.

@kdomanski
Copy link

kdomanski commented Apr 30, 2020

The dump at #641 (comment) shows that the software also probes for the following features which are not on this list

  • 0x80a3 (packet 225)
  • 0x80d0 (packet 229)
  • 0x80fa (packet 232)

I'd presume they belong to a newer version of HID++.

@saue0
Copy link

saue0 commented May 21, 2020

I'm trying to implement the change-host,
It is working, but how to prevent solaar from saving the selected value to teh config file ?
if i change the value, the device connect to the other host, but as soon as i reconnect to the current host, I get switched back to the other host ( solaar reload the last value and reaply it to the device,)
Thanks

@pfps
Copy link
Collaborator

pfps commented May 21, 2020

I'm not sure what feature change-host implements. If it is something like a keyboard or mouse switch then that's somewhat outside of what Solaar is set up to easily do. I expect you will have to add a new kind of feature to settings_template.py, one that doesn't apply saved values.

@saue0
Copy link

saue0 commented May 21, 2020

The "change-host" is for devices that support connexion to multiple Host (like the MX series). this fuction allow to change the host (in my case) from my Raspberry back to my computer.
This is what Logitech Flow does.

Ok I will try to implement a stateless feature.
Thans for the tips..

@pfps
Copy link
Collaborator

pfps commented Jun 13, 2020

@saue0 There is a another request for this #806
Could you comment there with the command that is needed to change hosts?
@FFY00 suggests that a CLI command could work well and I agree that it would not be hard to code such a command. But I would also like to see what you coded (to shamelessly mine it for other features), can you put in a PR with your changes?

@pfps
Copy link
Collaborator

pfps commented Jul 8, 2020

@saue0 I have documentation for 0x1814 change host, which I think is the feature you where using. What code did you add to Solaar to change the host?

@barolo
Copy link

barolo commented Jul 9, 2020

@pfps he forked solaar and added some of his change-host code

@pfps
Copy link
Collaborator

pfps commented Jul 9, 2020

@barolo Thanks. I didn't realize that I could get a list of forks. I'm looking at his code now.

@saue0
Copy link

saue0 commented Jul 9, 2020

Sorry for the late response, just commited my last change so you can look at it.

@barolo
Copy link

barolo commented Jul 9, 2020

Sorry for the late response, just commited my last change so you can look at it.

I've tested your branch but it only switches momentarily [ I can see led indicator on keys switching ] and reverts back. Is it working for you?

@saue0
Copy link

saue0 commented Jul 9, 2020

CLI example : "solaar config k850 change-host 01"

image

@saue0
Copy link

saue0 commented Jul 9, 2020

@barolo , yes with the new version. I have 2 devices and both get switched whit the cli command.
use my latest change and retest please.

@barolo
Copy link

barolo commented Jul 9, 2020

@barolo , yes with the new version. I have 2 devices and both get switched whit the cli command.
use my latest change and retest please.

It does indeed work! I can assign it to a sys shortcut or corner gesture, neat!
Numbering from 0 is confusing though and it's a tad slow ;)

@saue0
Copy link

saue0 commented Jul 9, 2020

Yes, that can be change.

One small bug left, when the command is sent, solaar wait for a response from the receiver, but the device is not present anymore. will need to look into-it

@pfps
Copy link
Collaborator

pfps commented Jul 9, 2020

Let's move this conversation to 784
Edit:
Let's move this conversation to #806

@barolo
Copy link

barolo commented Jul 9, 2020

@pfps #784 is about layout switching, we're talking about #806 host switching. And sure, let's move

@pfps
Copy link
Collaborator

pfps commented Jul 9, 2020

@barolo Yeah, that's twice I've gotten them switched up!

@pfps pfps unpinned this issue Nov 8, 2020
@pfps
Copy link
Collaborator

pfps commented Apr 18, 2021

This issue isn't attracting any attention. The setting implementations that have been contributed by users were started because they wanted a particular setting.

@pfps pfps closed this as completed Apr 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants