Apologies for the long post. I'm trying to include what I hope are the relevant bits (output of lsusb -v and usbhid-ups)
Long term goal: I've got a DIY UPS that I would like to get working with my QNAP NAS (which uses Linux and NUT underneath the hood) Immediate short-term problem: I can't get past running usbhid-ups on Ubuntu 23.10 with an Arduino Leonardo. I have an Arduino Micro using this https://github.com/abratchik/HIDPowerDevice/ library. I have a sketch working successfully with both Win10 and MacOS. They both recognize the Arduino as a HID power device and detect the AC present true/false as well as a hard-coded (for now) charge state. Before getting it to work with the QNAP I thought it would be easier to get this working on a full Linux install. So I have Ubuntu 23.10 running on a Raspberry Pi. I installed the nut-server and nut-client packages and did a simple test with an APC UPS I have and was able to see in the logs that nut loaded the driver for it. However, I cannot get this to work with the Arduino. For both the APC and the Arduino I used `nut-scanner -U`. For the Arduino I get: Scanning USB bus. [nutdev1] driver = "usbhid-ups" port = "auto" vendorid = "2341" productid = "8036" product = "Arduino Leonardo" serial = "UPS11" vendor = "Arduino LLC" bus = "001" I then put this in my ups.conf [diyups] driver = "usbhid-ups" desc = "DIY UPS via Arduino" port = "auto" vendorid = "2341" productid = "8036" The Ubuntu nut package installed /lib/udev/rules.d/62-nut-usbups.rules which does have the VID/PID combination of my device so I hoped this would "just work" :-( When I run the usbhid driver (as root) like this: /usr/lib/nut/usbhid-ups -DDDDDDDDD -a diyups Network UPS Tools - Generic HID driver 0.47 (2.8.0) USB communication driver (libusb 1.0) 0.43 0.000000 [D3] do_global_args: var='maxretry' val='3' 0.000360 [D3] main_arg: var='driver' val='usbhid-ups' 0.000435 [D3] main_arg: var='desc' val='DIY UPS via Arduino' 0.000503 [D3] main_arg: var='port' val='auto' 0.000569 [D5] send_to_all: SETINFO driver.parameter.port "auto" 0.000620 [D3] main_arg: var='vendorid' val='2341' 0.000682 [D5] send_to_all: SETINFO driver.parameter.vendorid "2341" 0.000734 [D3] main_arg: var='productid' val='8036' 0.000785 [D5] send_to_all: SETINFO driver.parameter.productid "8036" 0.000918 [D1] debug level is '9' 0.009460 [D5] send_to_all: SETINFO device.type "ups" 0.009549 [D2] Initializing an USB-connected UPS with library libusb-1.0.26 (API: 0x1000109) (NUT subdriver name='USB communication driver (libusb 1.0)' ver='0.43') 0.009608 [D1] upsdrv_initups (non-SHUT)... 0.041470 [D2] Checking device 1 of 5 (2341/8036) 0.049789 [D2] - VendorID: 2341 0.049863 [D2] - ProductID: 8036 0.049907 [D2] - Manufacturer: Arduino LLC 0.049948 [D2] - Product: Arduino Leonardo 0.049990 [D2] - Serial Number: UPS11 0.050032 [D2] - Bus: 001 0.050078 [D2] - Device: unknown 0.050126 [D2] - Device release number: 0100 0.050171 [D2] Trying to match device 0.050224 [D2] match_function_subdriver (non-SHUT mode): matching a device... 0.050272 [D3] match_function_regex: matching a device... 0.050642 [D2] Device matches 0.050744 [D2] Reading first configuration descriptor 0.050799 [D2] result: -5 (Entity not found) 0.050921 [D3] libusb_kernel_driver_active() returned 0 0.051021 [D2] Claimed interface 2 successfully 0.051066 [D3] nut_usb_set_altinterface: skipped libusb_set_interface_alt_setting(udev, 2, 0) 0.051108 [D2] Couldn't retrieve descriptors 0.051346 [D2] Checking device 2 of 5 (0424/7800) 0.051500 [D1] Failed to open device (0424/7800), skipping: Access denied (insufficient permissions) 0.051548 [D2] Checking device 3 of 5 (0424/2514) 0.051642 [D1] Failed to open device (0424/2514), skipping: Access denied (insufficient permissions) 0.051708 [D2] Checking device 4 of 5 (0424/2514) 0.051798 [D1] Failed to open device (0424/2514), skipping: Access denied (insufficient permissions) 0.051845 [D2] Checking device 5 of 5 (1D6B/0002) 0.051945 [D1] Failed to open device (1D6B/0002), skipping: Access denied (insufficient permissions) 0.051991 [D2] libusb1: No appropriate HID device found 0.052033 libusb1: Could not open any HID devices: insufficient permissions on everything 0.052074 No matching HID UPS found Note that the Arduino is "interesting" because it's a composite USB device. With my sketch loaded it has a CDC interface (for flashing and serial output) and a HID device (which my sketch controls). Current Arduino core libraries let you enable and disable the CDC so I have tried with it both enabled and disabled. Neither seems to work. The above usbhid-ups run is with the CDC disabled, so that lsusb -v shows me: Bus 001 Device 007: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2341 Arduino SA idProduct 0x8036 Leonardo (CDC ACM, HID) bcdDevice 1.00 iManufacturer 1 Arduino LLC iProduct 2 Arduino Leonardo iSerial 3 UPS11 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.01 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 400 Report Descriptor: (length is 400) Item(Global): Usage Page, data= [ 0x84 ] 132 Power Device Page Item(Local ): Usage, data= [ 0x04 ] 4 UPS Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Local ): Usage, data= [ 0x24 ] 36 Power Summary Item(Main ): Collection, data= [ 0x02 ] 2 Logical Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 Item(Global): Report ID, data= [ 0x01 ] 1 Item(Local ): Usage, data= [ 0xfe ] 254 iProduct Item(Local ): String Index, data= [ 0x02 ] 2 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x02 ] 2 Item(Local ): Usage, data= [ 0xff ] 255 iSerialNumber Item(Local ): String Index, data= [ 0x03 ] 3 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x03 ] 3 Item(Local ): Usage, data= [ 0xfd ] 253 iManufacturer Item(Local ): String Index, data= [ 0x01 ] 1 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x85 ] 133 Battery System Page Item(Global): Report ID, data= [ 0x06 ] 6 Item(Local ): Usage, data= [ 0x8b ] 139 Rechargeable Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x1f ] 31 Item(Local ): Usage, data= [ 0x89 ] 137 iDeviceChemistry Item(Local ): String Index, data= [ 0x04 ] 4 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x20 ] 32 Item(Local ): Usage, data= [ 0x8f ] 143 iOEMInformation Item(Local ): String Index, data= [ 0x05 ] 5 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x16 ] 22 Item(Local ): Usage, data= [ 0x2c ] 44 Capacity Mode Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x10 ] 16 Item(Local ): Usage, data= [ 0x8d ] 141 Capacity Granularity 1 Item(Global): Logical Maximum, data= [ 0x64 0x00 ] 100 Item(Main ): Feature, data= [ 0x22 ] 34 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x18 ] 24 Item(Local ): Usage, data= [ 0x8e ] 142 Capacity Granularity 2 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x0e ] 14 Item(Local ): Usage, data= [ 0x67 ] 103 Full Charge Capacity Item(Main ): Feature, data= [ 0x83 ] 131 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x17 ] 23 Item(Local ): Usage, data= [ 0x83 ] 131 Design Capacity Item(Main ): Feature, data= [ 0x83 ] 131 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x0c ] 12 Item(Local ): Usage, data= [ 0x66 ] 102 Remaining Capacity Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x66 ] 102 Remaining Capacity Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x0f ] 15 Item(Local ): Usage, data= [ 0x8c ] 140 Warning Capacity Limit Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x11 ] 17 Item(Local ): Usage, data= [ 0x29 ] 41 Remaining Capacity Limit Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x09 ] 9 Item(Local ): Usage, data= [ 0x85 ] 133 Manufacturer Date Item(Global): Report Size, data= [ 0x10 ] 16 Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x1a ] 26 Item(Local ): Usage, data= [ 0x6a ] 106 Average Time To Full Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 Item(Global): Unit, data= [ 0x01 0x10 ] 4097 System: SI Linear, Unit: Seconds Item(Global): Unit Exponent, data= [ 0x00 ] 0 Unit Exponent: 0 Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x1c ] 28 Item(Local ): Usage, data= [ 0x69 ] 105 Average Time To Empty Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x69 ] 105 Average Time To Empty Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x0d ] 13 Item(Local ): Usage, data= [ 0x68 ] 104 Run Time To Empty Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x68 ] 104 Run Time To Empty Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x08 ] 8 Item(Local ): Usage, data= [ 0x2a ] 42 Remaining Time Limit Item(Global): Report Size, data= [ 0x10 ] 16 Item(Global): Logical Maximum, data= [ 0x64 0x05 0x00 0x00 ] 1380 Item(Global): Logical Minimum, data= [ 0x78 0x00 ] 120 Item(Main ): Input, data= [ 0x22 ] 34 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x2a ] 42 Remaining Time Limit Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Usage Page, data= [ 0x84 ] 132 Power Device Page Item(Global): Report ID, data= [ 0x12 ] 18 Item(Local ): Usage, data= [ 0x57 ] 87 Delay Before Shutdown Item(Global): Logical Minimum, data= [ 0x00 0x80 ] 32768 Item(Global): Logical Maximum, data= [ 0xff 0x7f 0x00 0x00 ] 32767 Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x13 ] 19 Item(Local ): Usage, data= [ 0x55 ] 85 Delay Before Reboot Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x0a ] 10 Item(Local ): Usage, data= [ 0x40 ] 64 Config Voltage Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177 System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1 Item(Global): Unit Exponent, data= [ 0x05 ] 5 Unit Exponent: 5 Item(Main ): Feature, data= [ 0x23 ] 35 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x0b ] 11 Item(Local ): Usage, data= [ 0x30 ] 48 Voltage Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x30 ] 48 Voltage Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report ID, data= [ 0x14 ] 20 Item(Local ): Usage, data= [ 0x5a ] 90 Audible Alarm Control Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Logical Minimum, data= [ 0x01 ] 1 Item(Global): Logical Maximum, data= [ 0x03 ] 3 Item(Global): Unit, data= [ 0x00 ] 0 System: None, Unit: (None) Item(Global): Unit Exponent, data= [ 0x00 ] 0 Unit Exponent: 0 Item(Main ): Input, data= [ 0x22 ] 34 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x5a ] 90 Audible Alarm Control Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x02 ] 2 Present Status Item(Main ): Collection, data= [ 0x02 ] 2 Logical Item(Global): Report ID, data= [ 0x07 ] 7 Item(Global): Usage Page, data= [ 0x85 ] 133 Battery System Page Item(Local ): Usage, data= [ 0x44 ] 68 Charging Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x44 ] 68 Charging Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x45 ] 69 Discharging Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x45 ] 69 Discharging Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xd0 ] 208 AC Present Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xd0 ] 208 AC Present Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xd1 ] 209 Battery Present Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xd1 ] 209 Battery Present Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x42 ] 66 Below Remaining Capacity Limit Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x42 ] 66 Below Remaining Capacity Limit Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x43 ] 67 Remaining Time Limit Expired Item(Main ): Input, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x43 ] 67 Remaining Time Limit Expired Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x4b ] 75 Need Replacement Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x4b ] 75 Need Replacement Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xdb ] 219 Voltage Not Regulated Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0xdb ] 219 Voltage Not Regulated Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x46 ] 70 Fully Charged Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x46 ] 70 Fully Charged Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x47 ] 71 Fully Discharged Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x47 ] 71 Fully Discharged Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Usage Page, data= [ 0x84 ] 132 Power Device Page Item(Local ): Usage, data= [ 0x68 ] 104 Shutdown Requested Item(Main ): Input, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x68 ] 104 Shutdown Requested Item(Main ): Feature, data= [ 0xa2 ] 162 Data Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x69 ] 105 Shutdown Imminent Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x69 ] 105 Shutdown Imminent Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x73 ] 115 Communication Lost Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x73 ] 115 Communication Lost Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x65 ] 101 Overload Item(Main ): Input, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Local ): Usage, data= [ 0x65 ] 101 Overload Item(Main ): Feature, data= [ 0xa3 ] 163 Constant Variable Absolute No_Wrap Linear No_Preferred_State No_Null_Position Volatile Bitfield Item(Global): Report Count, data= [ 0x02 ] 2 Item(Main ): Input, data= [ 0x01 ] 1 Constant Array Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): Feature, data= [ 0x01 ] 1 Constant Array Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Item(Main ): End Collection, data=none Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 20 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Thanks for any help you can provide.
_______________________________________________ Nut-upsuser mailing list Nut-upsuser@alioth-lists.debian.net https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser