atom feed19 messages in org.freebsd.freebsd-hackersTricky USB device.
FromSent OnAttachments
David GilbertApr 8, 2005 9:40 am 
Maksim YevmenkinApr 8, 2005 9:48 am 
David GilbertApr 8, 2005 9:56 am 
Maksim YevmenkinApr 8, 2005 10:10 am 
David GilbertApr 8, 2005 10:16 am 
Bernd WalterApr 8, 2005 12:05 pm 
David GilbertApr 8, 2005 3:12 pm 
Maksim YevmenkinApr 8, 2005 3:33 pm 
Bernd WalterApr 8, 2005 4:12 pm 
Bernd WalterApr 8, 2005 4:33 pm 
Maksim YevmenkinApr 8, 2005 4:47 pm 
Bernd WalterApr 8, 2005 5:31 pm 
Julian ElischerApr 8, 2005 6:06 pm 
Bernd WalterApr 8, 2005 9:02 pm 
David GilbertApr 9, 2005 2:05 pm 
Bernd WalterApr 9, 2005 2:24 pm 
David GilbertApr 9, 2005 2:48 pm 
Bernd WalterApr 9, 2005 2:57 pm 
David GilbertApr 9, 2005 7:39 pm 
Subject:Tricky USB device.
From:Bernd Walter (tic@cicely12.cicely.de)
Date:Apr 9, 2005 2:24:17 pm
List:org.freebsd.freebsd-hackers

On Sat, Apr 09, 2005 at 05:05:31PM -0400, David Gilbert wrote:

"Bernd" == Bernd Walter <tic@cicely12.cicely.de> writes:

Bernd> Yes - you must use 1 - there is only one out-endpoint. 0x81 is Bernd> for receiving data and endpoint 0 is the mandandory control Bernd> endpoint. Interrupt Endpoints are not variable in size. Both Bernd> interrupt endpoints are 8 Bytes, so you must read and write Bernd> exact 8 Bytes per transfer - 5 shouldn't work for USB compliant Bernd> devices.

I took your earlier advice and just opened ugen0.1 O_RDWR. I've tried sending 5 and 8 byte strings to it without effect. To make the 8 byte strings, I added spaces to the end of my 5 byte strings. I've also got a proper multitester now to verify operation.

Bernd> Depends on the device's firmware. I wouldn't be surprised if Bernd> the whole device just hangs after receiving bogus data - it Bernd> seems to be broken in many points. But it may block if the Bernd> device has nothing to send. An easy way to check out is using Bernd> tools like usbdevs -v and see if it hangs when accessing this Bernd> device.

usbdevs -v and udesc_dump both operate fine after trying this.

Then the device is still working and just has nothing to send. Would be helpfull to know something about the protocol used on the endpoints.