~/sources »»» sudo ./hid-recorder
# Available devices:
# /dev/hidraw0:     Samson Technologies Samson Meteor Mic
# /dev/hidraw1:     UGTABLET Deco 01 V3
# /dev/hidraw2:     UGTABLET Deco 01 V3
# /dev/hidraw3:     UGTABLET Deco 01 V3
# /dev/hidraw4:     Elgato Cam Link 4K
# /dev/hidraw5:     Dell KB216 Wired Keyboard
# /dev/hidraw6:     Logitech USB Receiver
# /dev/hidraw7:     Logitech USB Receiver
# /dev/hidraw8:     Dell KB216 Wired Keyboard
# /dev/hidraw9:     HID 04d9:1203
# /dev/hidraw10:    HID 04d9:1203
# /dev/hidraw11:    Logitech B330/M330/M3
# Select the device event number [0-9]: 1
# UGTABLET Deco 01 V3
# Report descriptor length: 68 bytes
#   0x05, 0x01,                    // Usage Page (Generic Desktop)              0
#   0x09, 0x07,                    // Usage (Keypad)                            2
#   0xa1, 0x01,                    // Collection (Application)                  4
# ┅ 0x85, 0x06,                    //   Report ID (6)                           6
#   0x95, 0x01,                    //   Report Count (1)                        8
#   0x75, 0x08,                    //   Report Size (8)                         10
#   0x05, 0x0d,                    //   Usage Page (Digitizers)                 12
#   0x09, 0x39,                    //   Usage (Tablet Function Keys)            14
#   0xa1, 0x00,                    //   Collection (Physical)                   16
#   0x05, 0x09,                    //     Usage Page (Button)                   18
#   0x19, 0x01,                    //     UsageMinimum (1)                      20
#   0x29, 0x08,                    //     UsageMaximum (8)                      22
#   0x15, 0x00,                    //     Logical Minimum (0)                   24
#   0x25, 0x01,                    //     Logical Maximum (1)                   26
#   0x95, 0x08,                    //     Report Count (8)                      28
#   0x75, 0x01,                    //     Report Size (1)                       30
# ┇ 0x81, 0x02,                    //     Input (Data,Var,Abs)                  32
#   0x05, 0x0d,                    //     Usage Page (Digitizers)               34
#   0x09, 0x44,                    //     Usage (Barrel Switch)                 36
#   0x95, 0x01,                    //     Report Count (1)                      38
#   0x75, 0x01,                    //     Report Size (1)                       40
# ┇ 0x81, 0x02,                    //     Input (Data,Var,Abs)                  42
#   0x95, 0x07,                    //     Report Count (7)                      44
# ┇ 0x81, 0x01,                    //     Input (Cnst,Arr,Abs)                  46
#   0x05, 0x01,                    //     Usage Page (Generic Desktop)          48
#   0x09, 0x30,                    //     Usage (X)                             50
#   0x09, 0x31,                    //     Usage (Y)                             52
#   0x95, 0x02,                    //     Report Count (2)                      54
#   0x75, 0x08,                    //     Report Size (8)                       56
# ┇ 0x81, 0x02,                    //     Input (Data,Var,Abs)                  58
#   0x95, 0x03,                    //     Report Count (3)                      60
#   0x75, 0x08,                    //     Report Size (8)                       62
# ┇ 0x81, 0x01,                    //     Input (Cnst,Arr,Abs)                  64
#   0xc0,                          //   End Collection                          66
#   0xc0,                          // End Collection                            67
R: 68 05 01 09 07 a1 01 85 06 95 01 75 08 05 0d 09 39 a1 00 05 09 19 01 29 08 15 00 25 01 95 08 75 01 81 02 05 0d 09 44 95 01 75 01 81 02 95 07 81 01 05 01 09 30 09 31 95 02 75 08 81 02 95 03 75 08 81 01 c0 c0
N: UGTABLET Deco 01 V3
I: 3 28bd 947
# Report descriptor:
# ------- Input Report -------  
# Report ID: 6
#  | Report size: 64 bits
# Bit:    8       Usage: 0009/0001: Button / Button 1                           Logical Range:     0..=1      
# Bit:    9       Usage: 0009/0002: Button / Button 2                           Logical Range:     0..=1      
# Bit:   10       Usage: 0009/0003: Button / Button 3                           Logical Range:     0..=1      
# Bit:   11       Usage: 0009/0004: Button / Button 4                           Logical Range:     0..=1      
# Bit:   12       Usage: 0009/0005: Button / Button 5                           Logical Range:     0..=1      
# Bit:   13       Usage: 0009/0006: Button / Button 6                           Logical Range:     0..=1      
# Bit:   14       Usage: 0009/0007: Button / Button 7                           Logical Range:     0..=1      
# Bit:   15       Usage: 0009/0008: Button / Button 8                           Logical Range:     0..=1      
# Bit:   16       Usage: 000d/0044: Digitizers / Barrel Switch                  Logical Range:     0..=1      
# Bits:  17..=23  ######### Padding                                              
# Bits:  24..=31  Usage: 0001/0030: Generic Desktop / X                         Logical Range:     0..=1      
# Bits:  32..=39  Usage: 0001/0031: Generic Desktop / Y                         Logical Range:     0..=1      
# Bits:  40..=63  ######### Padding                                              
##############################################################################
# Recorded events below in format:
# E: <seconds>.<microseconds> <length-in-bytes> [bytes ...]
#  

holding button 1, then 2, then 3, then release 3, then 2, then 1:

# Current time: 17:05:43
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000000.000021 24 06 00 05 00 00 00 00 00  
E: 000000.000019 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000000.772485 24 06 00 05 08 00 00 00 00  
E: 000000.772484 8 06 01 05 08 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000001.710542 24 06 04 05 08 00 00 00 00  
E: 000001.710540 8 06 00 05 08 00 00 00 00  
# Current time: 17:05:45
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000002.014699 24 06 00 05 08 00 00 00 00  
E: 000002.014697 8 06 01 05 08 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000003.032725 24 06 00 05 00 00 00 00 00  
E: 000003.032723 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000003.830664 24 06 00 00 00 00 00 00 00  
E: 000003.830663 8 06 00 00 00 00 00 00 00  


Hold button 1 , and click on all button from 2 to 8 while holding it:

#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000048.429376 24 06 00 05 00 00 00 00 00  
E: 000048.429374 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000049.919530 24 06 00 05 08 00 00 00 00  
E: 000049.919528 8 06 01 05 08 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000050.005102 24 06 00 05 00 00 00 00 00  
E: 000050.005101 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000050.469581 24 06 04 05 00 00 00 00 00  
E: 000050.469580 8 06 00 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000050.555231 24 06 00 05 00 00 00 00 00  
E: 000050.555229 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:    44 |Y:     0 |<24 bits padding>
B: 000050.947720 24 06 00 05 2c 00 00 00 00  
E: 000050.947718 8 06 01 05 2c 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000051.033633 24 06 00 05 00 00 00 00 00  
E: 000051.033632 8 06 01 05 00 00 00 00 00  
# Current time: 17:06:35
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:    22 |Y:     0 |<24 bits padding>
B: 000051.433684 24 06 01 05 16 00 00 00 00  
E: 000051.433682 8 06 00 05 16 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000051.519681 24 06 00 05 00 00 00 00 00  
E: 000051.519679 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:    29 |Y:     0 |<24 bits padding>
B: 000051.943679 24 06 01 05 1d 00 00 00 00  
E: 000051.943678 8 06 00 05 1d 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000052.011395 24 06 00 05 00 00 00 00 00  
E: 000052.011393 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:    87 |Y:     0 |<24 bits padding>
B: 000052.467851 24 06 01 05 57 00 00 00 00  
E: 000052.467850 8 06 00 05 57 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000052.527532 24 06 00 05 00 00 00 00 00  
E: 000052.527531 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:    86 |Y:     0 |<24 bits padding>
B: 000052.995482 24 06 01 05 56 00 00 00 00  
E: 000052.995481 8 06 00 05 56 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000053.057846 24 06 00 05 00 00 00 00 00  
E: 000053.057845 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000054.411655 24 06 00 00 00 00 00 00 00  
E: 000054.411654 8 06 00 00 00 00 00 00 00  


Hold button 1, then 2, then 3, then 4, then release 1, 2 , 3 and 4:

# Current time: 17:07:25
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000102.209003 24 06 00 05 00 00 00 00 00  
E: 000102.209001 8 06 01 05 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     1 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000102.834895 24 06 00 05 08 00 00 00 00  
E: 000102.834893 8 06 01 05 08 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:     0 |<24 bits padding>
B: 000103.473110 24 06 04 05 08 00 00 00 00  
E: 000103.473108 8 06 00 05 08 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     1 |<7 bits padding> |X:     8 |Y:    44 |<24 bits padding>
B: 000104.174656 24 06 04 05 08 2c 00 00 00  
E: 000104.174654 8 06 00 05 08 2c 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:    44 |Y:     0 |<24 bits padding>
B: 000104.970840 24 06 04 08 2c 00 00 00 00  
E: 000104.970838 8 06 00 08 2c 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000105.649329 24 06 04 2c 00 00 00 00 00  
E: 000105.649328 8 06 00 2c 00 00 00 00 00  
# Current time: 17:07:30
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     1 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000106.345419 24 06 00 2c 00 00 00 00 00  
E: 000106.345417 8 06 08 2c 00 00 00 00 00  
#  Report ID: 6 /  
#               Button 1:     0 |Button 2:     0 |Button 3:     0 |Button 4:     0 |Button 5:     0 |Button 6:     0 |Button 7:     0 |Button 8:     0 |Barrel Switch:     0 |<7 bits padding> |X:     0 |Y:     0 |<24 bits padding>
B: 000107.061382 24 06 00 00 00 00 00 00 00  
E: 000107.061381 8 06 00 00 00 00 00 00 00  


^C
~/sources »»»