[Nut-upsuser] NUT SuSE Linux 11.0 USB ULTRA ULT33046 ups
Bill Blessing
billy1180 at gmail.com
Wed Dec 31 16:42:10 UTC 2008
Well, I don't have any background as a developer, but I am an EE with
experience in embedded C and control systems design as well as experience
with C# and Visual Studios 2008. I'd be interested in at least giving it a
try, writing the software that is. Usbsnoop looks very similar to a program
we use at my company that logs RS-485 output. I'll see what I can do about
getting some output from usbsnoop. Thanks for the help. I'll keep everyone
posted as to any success.
-----Original Message-----
From: Arjen de Korte [mailto:nut+users at de-korte.org]
Sent: Wednesday, December 31, 2008 4:50 AM
To: Bill Blessing
Cc: nut-upsuser at lists.alioth.debian.org
Subject: Re: [Nut-upsuser] NUT SuSE Linux 11.0 USB ULTRA ULT33046 ups
Citeren Bill Blessing <billy1180 at gmail.com>:
> Checking device (0D9F/0002) (001/002)
> - VendorID: 0d9f
> - ProductID: 0002
> - Manufacturer: POWERCOM CO., LTD.
> - Product: USB to Serial
> - Serial Number: unknown
> - Bus: 001
> Trying to match device
> Device matches
> failed to claim USB device, trying 2 more time(s)...
> detaching kernel driver from USB device...
> trying again to claim USB device...
> HID descriptor, method 1: (9 bytes) => 09 21 00 01 00 01 22 25 00
> HID descriptor, method 2: (9 bytes) => 09 21 00 01 00 01 22 25 00
> HID descriptor length 37
> Report Descriptor size = 37
> Report Descriptor: (37 bytes) => 06 a0 ff 09 01 a1 01 09 01 15 00 26 ff 00
> 75 08 95 08 81 02 09 02 75 08 95 08 91 02 09 03 75 08 95 05 b1 02 c0
OK, this is clear. This report descriptor is much too short for a HID
Power Device Class UPS, so most likely it uses a USB to serial
converter.
> Using subdriver: EXPLORE HID 0.1
> Report[get]: (2 bytes) => 00 00
> Path: ffa00001.ffa00001, Type: Input, ReportID: 0x00, Offset: 0, Size: 8,
> Value: 0.000000
> Report[buf]: (2 bytes) => 00 00
> Path: ffa00001.ffa00002, Type: Output, ReportID: 0x00, Offset: 0, Size: 8,
> Value: 0.000000
> Report[buf]: (2 bytes) => 00 00
> Path: ffa00001.ffa00003, Type: Feature, ReportID: 0x00, Offset: 0, Size:
8,
> Value: 0.000000
> Report descriptor retrieved (Reportlen = 37)
> Found HID device
> Detected a UPS: POWERCOM CO., LTD./USB to Serial
Indeed, a USB to serial converter. Now the problem is finding out what
protocol it uses on the serial interface. I suspect that this will be
similar to the Powercom devices we already support through the serial
interface, but it would be nice to verify this by having a look at the
output of usbsnoop while monitoring it through the bundled (?) driver
on a Windows box.
If it indeed uses the Powercom protocol, there are basically two ways
to get this UPS supported:
1) Support for the USB to serial converter used is build into the
kernel module that creates a virtual /dev/ttyUSBx port to which the
existing 'powercom' driver can connect. This usually is a slow
process, unless the hardware used by the manufacturer is similar to
existing/generic USB to serial converters already supported. I
honestly don't know if this is feasible.
2) The existing 'powercom' driver is modified to talk to the USB to
serial converter directly. We do this for instance for the 'megatec'
driver (called 'megatec_usb' in that case), with varying levels of
success. A much cleaner way would be to separate the protocol handling
from the communication layer (like in the 'bcmxcp_ser'/'bcmxcp_usb'
and (new) 'blazer_ser'/'blazer_usb' drivers. This latter requires
rewriting the 'powercom' driver from the ground up however.
Both of the above require a developer with sufficient interest in
supporting this device and ample of time to do this. If you're not
able to do this yourself and you really need to monitor your UPS, I
suggest to switch to another UPS that is already supported.
Best regards, Arjen
--
Please keep list traffic on the list
More information about the Nut-upsuser
mailing list