On Sun, Feb 09, 2003 at 01:24:55PM -0500, John Homppi wrote:
> **** 
> An aside for Jeff:
> Please indicate whether the following analysis matches your research
> regarding the Evolution Robots platform. 
> ****

Your analysis follows mine exactly.

> It is important to differentiate the endpoints in this discussion.
>   Control in/out endpoint - always assumed present
>   Interrupt in endpoint - for data inbound to the PC
>   Interrupt out endpoint - for data outbound to the peripheral device
> 
> The interrupt out endpoint was NOT present in the USB 1.0 spec. It was
> a new concept added in the USB 1.1 spec.

My conclusion, after looking over the hiddev code, is that it complies with
USB 1.0, and did not seem to address the interrupt OUT features of USB 1.1.

I originally e-mailed Brad, asking about interrupt OUT support in the kernel,
and he suggested that I pose the question to usb-devel. I'm very glad that
you're taking a look at our problem, Brad!

> The ADU device uses control endpoints for enumeration only. 

This is consistent with our device.

> The ADU board transmits all inbound data via the interrupt in endpoint. 

My current driver for our IR sensor peripheral uses the HIDDEV interface. It
performs read() on /dev/usb/hiddevX, which results in interrupt transfers of
all inbound data. Kudos to Mr. Stewart and Mr. Pavlik for making this very
simple!

> The ADU board receives all outbound data via the interrupt out endpoint.

The Evolution Robotics Gripper and IR sensor pack also use interrupt endpoints
for outbound data. I'm currently posing questions to the LegoUSB tower guys
(http://legousb.sourceforge.net/legousbtower/index.shtml), who claim, on their
website, that development of a user-space daemon for their hardware is currently
stalled due to lack of support of interrupt out transfers. I'm wondering if
extending the HIDDEV interface, as John has proposed, will satisfy their
requirements.

> We need the ability to write data to the interrupt out endpoint
> of a hid class device (not just to the control out endpoint). 
> This is an extension of the functionality already in place, not a
> replacement of any functionality. All of the normal enumeration,
> control messages and reports must continue to operate.

I completely agree.

> Seeing as the hiddev_read function reads data from the interrupt
> endpoint, I thought the logical place to write to the interrupt
> endpoint would be "hiddev_write". The current hiddev_write 
> function returns -EINVAL so changing it should not break anything.
> The HIDIOCSREPORT should continue to communicate via
> the control endpoint, while the hiddev_write uses the interrupt
> endpoint.

This would be very convenient!

> The "data" is an opaque string of bytes, it is neither a 
> control message nor a report as defined in the USB spec. 
> It is just a data-load to be delivered to the device. (Similar to
> the buffer in the existing hiddev_read.)
> 
> 
> NOTE: The ADU board uses a Microchip PIC processor that has USB
> support built in as a combination of firmware and silicon
> circuitry. I would really like to see a generic solution so that
> all similarly designed HID class devices could use their
> interrupt out endpoints. (ie. the Ontrak ADU board, the Evolution
> Robot, the Labjack board, etcetera).

One of the nicest features of the Microchip PIC-USB is that it is a very
inexpensive solution for a hobbyist who is interested in interfacing hardware
to their PC through the ubiquitous USB interface. I'm considering using it in
my own personal projects, and would certainly rather develop on the Linux
platform.

Gathering from previous e-mail, it appears that certain force-feedback joysticks
also use the interrupt OUT transfers, and I think that a generalized solution
would be preferable to development of special kernel modules for each type of
force-feedback joystick?

Thank you all for your attention concerning this issue.


Regards,

Jeff


-- 
         Jeffrey Baitis - Associate Software Engineer

                    Evolution Robotics, Inc.
                     130 West Union Street
                       Pasadena CA 91103

 tel: 626.535.2776  |  fax: 626.535.2777  |  [EMAIL PROTECTED] 



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to