[Nut-upsdev] megatec over USB - new driver patch
Peter Selinger
selinger at mathstat.dal.ca
Tue Dec 5 17:20:27 CET 2006
Thanks. Could you send the dumped report descriptor as well, for the
record? In hex format, if it is not parseable. It can sometimes be a
clue when the same hardware is sold under a different name.
The USB-to-serial hack you describe does not seem to be the same that
Alexander discovered for the Krauler device (see
http://lists.alioth.debian.org/pipermail/nut-upsdev/2006-November/001294.html).
In his case, the device sent its report strings in a string descriptor
(not a report), and we haven't yet discovered how to send commands to
the device. But it's possible that his device supports your driver as
well.
Alexander, could you give Andrey's driver a try?
-- Peter
Andrey Lelikov wrote:
>
> Peter Selinger wrote:
> > Hi Andrey,
> >
> > thanks for your reverse-engineering efforts! Could you please post the
> > HID descriptor from this device? What is the OEM mechanism that you
> > discovered? It would be nice if you could document the serial-over-USB
> > protocol used.
> >
> > We have in the past seen several different USB devices that were not
> > proper HID devices, and at least one of them (the Krauler) seemed to
> > speak a USB-to-serial version of the megatec protocol. They all had
> > (almost) identical HID descriptors. So far none of them are supported
> > by NUT, but there is a good chance that your driver can support them,
> > if the OEM hack is indeed the same. The devices are:
> >
> > * Krauler UP-M500VA (see Alexander I. Gordeev's thread on nut-upsdev,
> > November 2006)
> > * Ablerex 625L (see Lau Kim Ping's thread on nut-upsuser, October 2006)
> > * Atlantis-Land S1501 (made by Ablerex) (see ngpost1's threads on
> > nut-upsuser and nut-upsdev, December 2005)
> > * Belkin F6H500ukUNV (made by MEC?) (see the thread by meherenow,
> > spamwhole, and Robert Kent on nut-upsdev, September 2006)
> >
> > I suspect that all of these devices use the same hardware and
> > protocol. If your OEM mechanism is the same as the Krauler's, then we
> > should distribute your driver to the owners of the above devices and
> > see if they get it to work. It would be great if this family of
> > devices could be supported.
> >
> > -- Peter
> >
> > P.S. accommodating your driver in Makefile.am is not a big problem.
> > Several drivers already have specialized LDADD variables, including
> > all of the USB drivers (which don't link against serial.o).
> >
> >
> descriptor is below. it is possible to dump report descriptor, but it is
> all junk. short protocol description is at the bottom of megatec_usb.c
> - basically exchange is via 8-byte hid reports (i believe converter just
> eats everything on control pipe and sends everything into interrupt
> pipe). data always comes in as 6 8-byte packets (limiting received
> string to 48 chars). windows driver sends only single-report packets
> limiting string len to 8 chars. commands used by windows driver are: Q1
> I F T TL C CT P . "P" command is actually usage of megatec protocol echo
> feature - it is used to synchronize and flush any buffered input on startup.
>
>
> Bus 002 Device 002: ID 05b8:0000 Agiler, Inc.
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.00
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x05b8 Agiler, Inc.
> idProduct 0x0000
> bcdDevice 1.00
> iManufacturer 1
> iProduct 2 UPS
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 34
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0x80
> (Bus Powered)
> MaxPower 100mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3 Human Interface Devices
> bInterfaceSubClass 1 Boot Interface Subclass
> bInterfaceProtocol 0 None
> iInterface 0
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.00
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 52
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0008 1x 8 bytes
> bInterval 10
> Device Status: 0x0000
> (Bus Powered)
>
More information about the Nut-upsdev
mailing list