Re: Trouble parsing HID reports from PDP PS4 remote

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 20, 2021 at 7:04 PM Jeremy Slemp <slempjeremy68@xxxxxxxxx> wrote:
>
> On Mon, Dec 20, 2021 at 6:44 AM Benjamin Tissoires
> <benjamin.tissoires@xxxxxxxxxx> wrote:
> > Basically, we might need to add support for this remote in the hid-sony
> > driver.
> >
> > Can you attach the full output of hid-recorder (from the hid-tools[3]
> > repository) when you press all of these buttons?
> >
> > This should give us enough information to reply the event sequence
> > locally and fix the drivers if we need.
>
> Sure thing!
>
> The remote looks like this:
> https://www.pdp.com/universal-media-remote-for-playstationr4
>
> hid-recorder output:

Thanks for the logs (though your email client mangled the long lines,
but not an issue TBH).

So this device is not known to the HID stack nor hid-sony or hid-playstation.
We will need to add a special case in one of those 2 drivers because
as you realized, the way these keys are used is not standard.

But I'd like to compare these logs to the PS5 remote that I have here.
Maybe the proprietary fields 0xff000021 is something common in the
PS4/PS5 world.

Also, what happens if you press 2 "special" keys at the same time
(pause and enter for example)?

However, I can not promise I'll work on that tomorrow. And then I'll
take a year end break.

If you don't see anything coming from me tomorrow or in early January,
feel free to re-raise this thread.

Cheers,
Benjamin

>
> # PDP Media Remote
> # 0x05, 0x01,                    // Usage Page (Generic Desktop)        0
> # 0x09, 0x05,                    // Usage (Game Pad)                    2
> # 0xa1, 0x01,                    // Collection (Application)            4
> # 0x85, 0x01,                    //  Report ID (1)                      6
> # 0x09, 0x39,                    //  Usage (Hat switch)                 8
> # 0x15, 0x00,                    //  Logical Minimum (0)                10
> # 0x25, 0x07,                    //  Logical Maximum (7)                12
> # 0x35, 0x00,                    //  Physical Minimum (0)               14
> # 0x46, 0x3b, 0x01,              //  Physical Maximum (315)             16
> # 0x65, 0x14,                    //  Unit (EnglishRotation: deg)        19
> # 0x75, 0x04,                    //  Report Size (4)                    21
> # 0x95, 0x01,                    //  Report Count (1)                   23
> # 0x81, 0x42,                    //  Input (Data,Var,Abs,Null)          25
> # 0x65, 0x00,                    //  Unit (None)                        27
> # 0x05, 0x09,                    //  Usage Page (Button)                29
> # 0x19, 0x01,                    //  Usage Minimum (1)                  31
> # 0x29, 0x0e,                    //  Usage Maximum (14)                 33
> # 0x15, 0x00,                    //  Logical Minimum (0)                35
> # 0x25, 0x01,                    //  Logical Maximum (1)                37
> # 0x75, 0x01,                    //  Report Size (1)                    39
> # 0x95, 0x0e,                    //  Report Count (14)                  41
> # 0x81, 0x02,                    //  Input (Data,Var,Abs)               43
> # 0x06, 0x00, 0xff,              //  Usage Page (Vendor Defined Page 1) 45
> # 0x09, 0x20,                    //  Usage (Vendor Usage 0x20)          48
> # 0x75, 0x06,                    //  Report Size (6)                    50
> # 0x95, 0x01,                    //  Report Count (1)                   52
> # 0x81, 0x02,                    //  Input (Data,Var,Abs)               54
> # 0x06, 0x00, 0xff,              //  Usage Page (Vendor Defined Page 1) 56
> # 0x09, 0x21,                    //  Usage (Vendor Usage 0x21)          59
> # 0x75, 0x08,                    //  Report Size (8)                    61
> # 0x95, 0x06,                    //  Report Count (6)                   63
> # 0x81, 0x02,                    //  Input (Data,Var,Abs)               65
> # 0x85, 0x03,                    //  Report ID (3)                      67
> # 0x0a, 0x83, 0xa7,              //  Usage (Vendor Usage 0xa783)        69
> # 0x95, 0x09,                    //  Report Count (9)                   72
> # 0xb1, 0x02,                    //  Feature (Data,Var,Abs)             74
> # 0xc0,                          // End Collection                      76
> # 0x06, 0xf0, 0xff,              // Usage Page (Vendor Usage Page 0xfff0) 77
> # 0x09, 0x40,                    // Usage (Vendor Usage 0x40)           80
> # 0xa1, 0x01,                    // Collection (Application)            82
> # 0x85, 0xf0,                    //  Report ID (240)                    84
> # 0x09, 0x47,                    //  Usage (Vendor Usage 0x47)          86
> # 0x95, 0x3f,                    //  Report Count (63)                  88
> # 0xb1, 0x02,                    //  Feature (Data,Var,Abs)             90
> # 0x85, 0xf1,                    //  Report ID (241)                    92
> # 0x09, 0x48,                    //  Usage (Vendor Usage 0x48)          94
> # 0x95, 0x3f,                    //  Report Count (63)                  96
> # 0xb1, 0x02,                    //  Feature (Data,Var,Abs)             98
> # 0x85, 0xf2,                    //  Report ID (242)                    100
> # 0x09, 0x49,                    //  Usage (Vendor Usage 0x49)          102
> # 0x95, 0x0f,                    //  Report Count (15)                  104
> # 0xb1, 0x02,                    //  Feature (Data,Var,Abs)             106
> # 0x85, 0xf3,                    //  Report ID (243)                    108
> # 0x0a, 0x01, 0x47,              //  Usage (Vendor Usage 0x4701)        110
> # 0x95, 0x07,                    //  Report Count (7)                   113
> # 0xb1, 0x02,                    //  Feature (Data,Var,Abs)             115
> # 0xc0,                          // End Collection                      117
> #
> R: 118 05 01 09 05 a1 01 85 01 09 39 15 00 25 07 35 00 46 3b 01 65 14
> 75 04 95 01 81 42 65 00 05 09 19 01 29 0e 15 00 25 01 75 01 95 0e 81
> 02 06 00 ff 09 20 75 06 95 01 81 02 06 00 ff 09 21 75 08 95 06 81 02
> 85 03 0a 83 a7 95 09 b1 02 c0 06 f0 ff 09 40 a1 01 85 f0 09 47 95 3f
> b1 02 85 f1 09 48 95 3f b1 02 85 f2 09 49 95 0f b1 02 85 f3 0a 01 47
> 95 07 b1 02 c0
> N: PDP Media Remote
> I: 5 0e6f 026f
>
> # SHARE button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  1  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,   87 ,   66
> ,   92 ,   31
> E: 000000.000000 10 01 08 10 00 08 00 57 42 5c 1f
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000000.109914 10 01 08 00 00 08 00 c8 15 45 4f
>
> # PS button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  1  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  255 ,  127
> ,  135 ,   78
> E: 000002.969989 10 01 08 00 01 08 00 ff 7f 87 4e
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000003.104971 10 01 08 00 00 08 00 c8 15 45 4f
>
> # OPTIONS button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  1
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  246 ,  186
> ,  119 ,  239
> E: 000007.166328 10 01 08 20 00 08 00 f6 ba 77 ef
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000007.249842 10 01 08 00 00 08 00 c8 15 45 4f
>
> # GREEN TRIANGLE button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  1  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,   90 ,  165
> ,  163 ,  254
> E: 000018.495012 10 01 88 00 00 08 00 5a a5 a3 fe
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000018.604996 10 01 08 00 00 08 00 c8 15 45 4f
>
> # PINK SQUARE button
> # ReportID: 1 / Hat switch:   8 | Button: 1  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,   74 ,  130
> ,  165 ,   47
> E: 000024.672577 10 01 18 00 00 08 00 4a 82 a5 2f
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000024.806348 10 01 08 00 00 08 00 c8 15 45 4f
>
> # ORANGE CIRCLE button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  1  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  129 ,   77
> ,  182 ,   23
> E: 000030.346442 10 01 48 00 00 08 00 81 4d b6 17
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000030.480160 10 01 08 00 00 08 00 c8 15 45 4f
>
> # BLUE X button
> # ReportID: 1 / Hat switch:   8 | Button: 0  1  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  204 ,   58
> ,  132 ,  142
> E: 000040.002823 10 01 28 00 00 08 00 cc 3a 84 8e
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000040.090307 10 01 08 00 00 08 00 c8 15 45 4f
>
> # L1 button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  1  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  173 ,  114
> ,  249 ,  247
> E: 000045.415425 10 01 08 01 00 08 00 ad 72 f9 f7
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000045.525646 10 01 08 00 00 08 00 c8 15 45 4f
>
> # R1 button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  1  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,   67 ,  221
> ,   76 ,  229
> E: 000050.470479 10 01 08 02 00 08 00 43 dd 4c e5
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000050.605489 10 01 08 00 00 08 00 c8 15 45 4f
>
> # L2 button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  1  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  159 ,  130
> ,   39 ,  192
> E: 000057.000593 10 01 08 04 00 08 00 9f 82 27 c0
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000057.083079 10 01 08 00 00 08 00 c8 15 45 4f
>
> # R2 button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  1  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,   39 ,   61
> ,  241 ,  138
> E: 000061.636954 10 01 08 08 00 08 00 27 3d f1 8a
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000061.770649 10 01 08 00 00 08 00 c8 15 45 4f
>
> # UP ARROW button
> # ReportID: 1 / Hat switch:   0 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,    9 ,   94
> ,   53 ,  127
> E: 000068.154519 10 01 00 00 00 08 00 09 5e 35 7f
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000068.363248 10 01 08 00 00 08 00 c8 15 45 4f
>
> # LEFT ARROW button
> # ReportID: 1 / Hat switch:   6 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  169 ,  171
> ,  117 ,  240
> E: 000074.187110 10 01 06 00 00 08 00 a9 ab 75 f0
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000074.348488 10 01 08 00 00 08 00 c8 15 45 4f
>
> # RIGHT ARROW button
> # ReportID: 1 / Hat switch:   2 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  105 ,   13
> ,  245 ,    5
> E: 000080.271228 10 01 02 00 00 08 00 69 0d f5 05
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000080.406201 10 01 08 00 00 08 00 c8 15 45 4f
>
> # DOWN ARROW button
> # ReportID: 1 / Hat switch:   4 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  201 ,  248
> ,  181 ,  138
> E: 000085.132491 10 01 04 00 00 08 00 c9 f8 b5 8a
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000085.291313 10 01 08 00 00 08 00 c8 15 45 4f
>
> # ENTER button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   13 ,  117 ,  105
> ,  244 ,   49
> E: 000089.456381 10 01 08 00 00 08 0d 75 69 f4 31
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000089.591371 10 01 08 00 00 08 00 c8 15 45 4f
>
> # REWIND button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   23 ,   15 ,  144
> ,  150 ,  204
> E: 000095.587712 10 01 08 00 00 08 17 0f 90 96 cc
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000095.746944 10 01 08 00 00 08 00 c8 15 45 4f
>
> # PLAY button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   22 ,  153 ,  160
> ,  145 ,  187
> E: 000100.317804 10 01 08 00 00 08 16 99 a0 91 bb
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000100.451550 10 01 08 00 00 08 00 c8 15 45 4f
>
> # FASTFORWARD button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   24 ,  158 ,  141
> ,   41 ,   92
> E: 000107.749017 10 01 08 00 00 08 18 9e 8d 29 5c
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000107.882698 10 01 08 00 00 08 00 c8 15 45 4f
>
> # PREVIOUS TRACK button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   20 ,  181 ,  193
> ,  159 ,   85
> E: 000114.526718 10 01 08 00 00 08 14 b5 c1 9f 55
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000114.686734 10 01 08 00 00 08 00 c8 15 45 4f
>
> # PAUSE button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   26 ,  178 ,  236
> ,   39 ,  178
> E: 000117.824287 10 01 08 00 00 08 1a b2 ec 27 b2
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000117.983005 10 01 08 00 00 08 00 c8 15 45 4f
>
> # NEXT TRACK button
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,   21 ,   35 ,  241
> ,  152 ,   34
> E: 000122.074342 10 01 08 00 00 08 15 23 f1 98 22
> # ReportID: 1 / Hat switch:   8 | Button: 0  0  0  0  0  0  0  0  0  0
>  0  0  0  0 | 0xff000020:   0 | 0xff000021:    8 ,    0 ,  200 ,   21
> ,   69 ,   79
> E: 000122.233063 10 01 08 00 00 08 00 c8 15 45 4f
>




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux