Tricky USB device.

David Gilbert dgilbert at dclg.ca
Fri Apr 8 15:12:42 PDT 2005


>>>>> "Bernd" == Bernd Walter <ticso at cicely12.cicely.de> writes:

Bernd> Then it really shouldn't have claimed to be one in the
Bernd> interface descriptor :( But the HID specification is more today
Bernd> than just _human_ interface.  e.g. there are extensions for
Bernd> USV, ...

[...]

Bernd> Has this device multiple interfaces?  e.g. one HID and another
Bernd> as described.  I often thought about getting ugen working at
Bernd> interface level too.

Here's the output of udesc_dump on it.  Right now, using the current
version of libusb (not the version from ports), I can use
usb_interrupt_write(dev, 1, "MK255", 5, 0) to send data to it --- and
the data is sent --- at least lights on the USB hub flash.  If I
replace '1' with anything else, it doesn't accept it.  However, it
doesn't seem to have opened the relays.

I'm also not entirely clear how/when to use usb_interrupt_read()
... as many of the commands listed in the manual return data, but
usb_inerrupt_write() doesn't seem to allow for data to be returned,
but following usb_interrupt_write(), the read will hang.

... so I'm somewhat at a loss, but I also can't find my multitester
... and will be fetching another one tonight.

I'd appreciate any random knowledge anyone can summon on this topic.

Standard Device Descriptor:
  bLength            18
  bDescriptorType    01
  bcdUSB             0110
  bDeviceClass       00
  bDeviceSubClass    00
  bDeviceProtocol    00
  bMaxPacketSize     8
  idVendor           0a07
  idProduct          00d0
  bcdDevice          0000
  iManufacturer      1
  iProduct           2
  iSerialNumber      3
  bNumConfigurations 1

Configuration 0:
	Standard Configuration Descriptor:
	  bLength             9
	  bDescriptorType     02
	  wTotalLength        41
	  bNumInterface       1
	  bConfigurationValue 1
	  iConfiguration      4
	  bmAttributes        a0 (remote-wakeup)
	  bMaxPower           100 (200 mA)

	Standard Interface Descriptor:
	  bLength            9
	  bDescriptorType    04
	  bInterfaceNumber   0
	  bAlternateSetting  0
	  bNumEndpoints      2
	  bInterfaceClass    03
	  bInterfaceSubClass 00
	  bInterfaceProtocol 00
	  iInterface         5

		HID Descriptor:
		  bLength           9
		  bDescriptorType   21
		  bcdHID            0100
		  bCountryCode      00
		  bNumDescriptors   1
		  bDescriptorType   22
		  wDescriptorLength 102


	Standard Endpoint Descriptor:
	  bLength          7
	  bDescriptorType  05
	  bEndpointAddress 81 (in)
	  bmAttributes     03 (Interrupt)
	  wMaxPacketSize   8
	  bInterval        10

	Standard Endpoint Descriptor:
	  bLength          7
	  bDescriptorType  05
	  bEndpointAddress 01 (out)
	  bmAttributes     03 (Interrupt)
	  wMaxPacketSize   8
	  bInterval        10

Codes Representing Languages by the Device:
  bLength          4
  bDescriptorType  03
  wLANGID[0]       0409

String (index 1): www.ontrak.net

String (index 2): ADU208 USB Relay I/O Interface

String (index 3): C02053

String (index 4): Cfg1

String (index 5): EP10In



More information about the freebsd-hackers mailing list