Hello,
One of the keyboards in question is an Arduino which may differ from standard USB keyboards.
If there is no traffic then maybe the set idle didn't work. More likely is that there are more than one endpoint or interface on the keyboard. The example code is the simplest one which assumes that the first interface and the first endpoint in that interface is the one to use.
// user ioctl to find interrupt endpoint information
hc_iocb.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_GET_ENDPOINT_INFO;
hc_iocb.handle.ep = epInt;
hc_iocb.get = &epInfo;
It might not be of course so an examination of the config descriptor would be needed.
The USBDescriptors example code will tell you on VNC2.
The USBDescriptors program will dump the report descriptors as well. This could be helpful in debugging what's wrong.
Please note, VNC2 is a very mature product which is no longer supported by R&D. It was developed over 10 years ago.
Please note the Vinculum / Vinculum-II may not work with some USB peripheral designs, due to specific design implementations.
We have only tested with particular USB peripherals when the firmware was written many years ago.
The workaround is to use USB peripherals that are working, and disregard ones that are not working.
Another alternative is to use FT90x from our sister company Bridgetek:
https://brtchip.com/ft900/There are significant benefits of FT9xx:
-Eclipse based IDE
-Source code for API drivers is provided
-Significant performance improvement
-Actively in development by R&D
-Improved documentation and software examples
Example code can be found in
AN_360 FT9xx Example Applications.
We provide
FT9xx Development Modules and a free
FT9xx Toolchain for custom application development.
Best Regards,
FTDI Community