hello,
Am Mittwoch 13 April 2005 06:24 schrieb Hans-Christoph Steiner: [...]
I was just starting to think about how to make [hid] work with microcontrollers. This sounds like the perfect way. Do you have more info on the HID stuff? I couldn't find it on your site.
first, the two sources of info i have used :
almost all i know about hid development i got from the official usb-hid pages at http://www.usb.org/developers/hidpage/
the only other piece of info i used is the stuff for the 16c765 microcontroller from the microchip-website http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1...
now to using hid in general :
altough hid makes it somewhat easier for the computer to talk to the device, it can certainly drive you nuts. for one, each thing you send wants its own report descriptor. now, if you are going to have a lots of i/o, it may happen that you hit the bounds of your os, regarding to the number of i/o possible. for example, to use my box _fully_ with hid on linux, one would need to tweak the event system modules to allow for that much. for example, in linux's input.h there is only max. 0x3f (=63) for absolute events. not enough for up to 88 as i offer. same for led's, for example.
another thing is the _sending_ of values to the microcontroller via hid. before you wonder, yes, hid should be able to send stuff to the device as well. just look at your keyboard led's, that are just hid-defined led's and that get toggled by the driver if you press caps-lock or the like ...
unfortunatly, linux-event doesnt allow for sending absolute values, for example. so, that has to be tweaked in the kernel driver as well. of course, this anly applies if you want to send such values to the device....
on the microcontroller side you may have fun as well. mainly, because the descrpitors eat a lot of space. in my box, i sodomized the original firmware so that it just iterates n times over the same descriptor, to save codespace. without that, i couldnt even fit the descriptors alone in the controller....
anyways, it is a good idea to not only offer hid. my firmware also supports a second, non-hid config. this is implemented in the firmware and selected with a usb "select config" command to the device.
and again, i want to ask all the other people that are working on such devices that we communicate about the stuff a little, to make them at least "message compatible" to each other. as it seem, there are serveral solutions comming up, and im afraid that they all would cook their own soup...... since we are designing these things ground-up, let us make them at least compatible in that way. think about patch sharing .... one makes a patch using such a device, and gives it away. the other person uses a different device, but can directly use it because it speaks "the same language".....
hope that helped a little bit, if you have more questions about the hid stuff, just ask....
.hc
greets,
chris