HID generic data transfer

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
FuBe_4381791
Level 4
Level 4
10 questions asked 50 sign-ins 25 replies posted

Hello! I'd like opinions, advice and thoughts please!

I am using FX3 to create a driver-less (using generic drivers only) keyboard + mass storage solution, and I want to create an API to communicate to this to load keyboard output and to manage mass storage access, read/write etc.

For the API, I am using HID API: GitHub - libusb/hidapi: A Simple library for communicating with USB and Bluetooth HID devices on Lin...

I think my approach has the issues:

1. OS does not allow both Keyboard and MSC drivers to be loaded for a single device from generic drivers, do I have to use a custom/Cypress driver?

2. Windows OS blocks access to endpoints from generic HID devices to discourage keyloggers

3. Generic drivers do not support multiple endpoints for a single device type

Is 1 an issue or can the descriptor handle this? Can I get around 2 and 3 by adding a third HID interface? If so, how can I do this? There are many bulk loop examples but none of them use generic drivers (as far as I can tell). I think I can use a HID device descriptor of 0, but I am not certain what that would involve, what driver would an OS try to use since the descriptor is not standard? (I am still going through the 100's of pages of documentation on USB HID specification, but if someone knows please post, it will save me allot of time).

My first objective is to use HIDAPI's "hid_write" and "hid_read" functions to communicate to the FX3 via generic drivers, but there does not seem to be any examples of how to do this? There are many examples via the cypress dll/libraries, but from what I understand, they rely on the Cypress driver. I went through this discussion forum but I did not find these questions.

Regards and thanks! Sorry for the silly questions!

Fujimi

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please find my comments below:

1. OS will allow Keyboard and MSC drivers to be loaded for a single device if you have 2 interfaces. One for HID and other for the MSC.

2. We do not have an application as of now to communicate to FX3 via generic drivers. We only have an application to communicate with FX3 via Cypress Driver (Control Center).

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna

View solution in original post

0 Likes
2 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please find my comments below:

1. OS will allow Keyboard and MSC drivers to be loaded for a single device if you have 2 interfaces. One for HID and other for the MSC.

2. We do not have an application as of now to communicate to FX3 via generic drivers. We only have an application to communicate with FX3 via Cypress Driver (Control Center).

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna
0 Likes

Thanks for the fast reply!

I successfully got a generic HID example with modified HID mouse and BulkLoopManualInOut working, now looking into merging Keyboard + MSC + this generic HID together

0 Likes