[Nut-upsuser] usbhid-ups not loading with Arduino Leonardo on Ubuntu 23.10
Kelly Byrd
kbyrd at memcpy.com
Sun Oct 29 20:42:28 GMT 2023
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/nut-upsuser/attachments/20231029/eccfc20c/attachment-0001.htm>
More information about the Nut-upsuser
mailing list