[chuck-users] odd hid issue (touchpad)

Hans Aberg haberg at math.su.se
Sat Jul 18 03:48:19 EDT 2009

On 17 Jul 2009, at 23:49, Kassen wrote:

> I'm looking on
>  http://en.wikipedia.org/wiki/USB_human_interface_device_class
> The HID protocols are evidently only for USB connections.
> Well, yes, strictly speaking. However I have been using PS/2  
> keyboards with ChucK for quite a while (because my favourite  
> keyboards pre-date the USB standard) and have never had a issue with  
> those under ChucK. I'd also like to point out that if this device  
> were completely unlike a HID device the ChucK HID abstraction should  
> be unable to open it. Instead it dutifully reports it's a PS/2  
> device. My issue is that it does get opened as a mouse but that it  
> doesn't give any data. If ChucK would say "Hey, I see no USB mouse  
> so you can't have a HID abstraction of any mouse at all." it'd have  
> to admit that that would be inconvenient yet fair.

I checked in a program the HID variables for the mouse and trackpad  
are the same X-Axis Y-Axis. But 'chuck' probably just calls some  
interface that is available on the OS. That is how it works on Mac OS  
X. So if the OS admits PS/2 devices, then should feed some information  
into that interface, which is what 'chuck' then reports.

> I'm not familiar with the Mac situation, having never owned one, but  
> this is a bog-standard  setup for non-Mac laptops. I believe it even  
> makes sense as supposedly PS/2 has some advantages over USB for mice  
> in how it uses system bus bandwith. We'd need to consult a hardware  
> expert to verify that; I certainly don't know that much about  
> motherboard architecture or OS design.

Though some older protocols like SCSI have advantages over more  
modern, consumer friendly ones like USB, I  don't there are any system  
bus issues for these, as one has some intermediate hardware that  
provides the communication. In the 1970s I assembled a computer, that  
wrote the keyboard characters directly into memory, which the CPU  
checked in a loop. This is highly inefficient way to handle it.

> This might also be limited by factors like maximum poll-rate and  
> resolution;

For the USB keyboards I have checked, this seems to be limitation of  
the keyboard, that is, even before the data is sent to the computer.  
This is because it differs with the keyboard. The computer is so fast  
that it easily can handle any human typed key roll-over. The slow USB  
1 bus is on about 12 Mb/s, which should admit for tens of thousands of  
key stroke in a tenth of a second.

When experimenting with the diatonic key map, the problem is mostly  
due to other process running. One notorious one is looking for RSS  

> I'm not sure but I don't think trackpad makers are very concerned  
> with those factors; these are hardly expensive high-performance  
> interface devices.
> Interestingly; according to ChucK there is a second mouse device  
> here that can be opened which looks like a emulation layer for  
> macintosh mice. I have no idea what that's doing there and why but  
> it's not giving me any useful signals either. I could look up the  
> exact name if that would be relevant but I would suspect it's simply  
> there in case Ubuntu would be installed on a Macbook. Maybe Apple  
> instead uses a internal USB bus or something else altogether.

I think I tried a Mac keyboard once on a Windows, finding it not  
working. One needs to have a driver installed. Each device may require  
its own. The USB HID interface unifies those, so that only one driver  
is needed, which then can be supplied by the OS. The latest version of  
this USB HID interface or standard was issued this year. So perhaps it  
was not available when 'chuck' was written.


More information about the chuck-users mailing list