Send mouse clicks to USB Host

Hello, I’m looking at the FEZ Duino / TinyCLR 2.0. Does it support HID?

1 Like

Not supported today but we may add in the future.

Is the future in the next few weeks? This is one feature I loved from NETMF that I’m dying to have moving forwards.

Absolutely… but not the functionality :slight_smile:

Ok, that is a pitty. Can we implement it ourselves? Do you have pointers?

@Pablo0031, it is non-trivial, unfortunately.

Might not be trivial, but does tinycrl provide extensibility to have this feature developed outside the core?
Is that a usecase for UsbClientController.FromProvider()?

Not today. We are focused on commercial use and so far we haven’t received such request for commercial use.

Well, I gave a commercial usecase. But I understand if it does not fit GHI priorities currently.

If a 3rd party developer is allowed to do it, that would be a solution too.

I checked the code and found the ‘provider’ facility. It sure looks like it was designed to support future usb device types… it seems like everything is there, right? I wouldnt mind putting together a mouse provider myself if possible.

We are looking into it. You can see GitHub for a list of what is coming

Ok @Gus_Issa, looking forward to any progress… Checking github you mean … TinyCLR-Libraries Issues?

Yes and I have just added your request Add USB HID support to USB Client · Issue #688 · ghi-electronics/TinyCLR-Libraries · GitHub

Top, thank you!

1 Like

@Gus_Issa I did some research and found 2 interesting links I think are worth sharing in the context of USB HID device emulators.
For USB newbies I found this article insightfull to get a basic understanding of the protocols / descriptors: USB-MADE-SIMPLE
And for the techies this article, including code, written by Elmue: USB HID KB, Mouse and Touch emulator

For my project the “absolute coordinates” is a requirement, since the code should mimic the behaviour of a mouse click on the screen and/or a touch event on the screen. The touch event per definition supports absolute coordinates, while the mouse (with relative coordinates or mouse x y movements) you actually never know ‘where’ the mouse pointer is on the screen. Elmue describes this very well and made a robust solution so his solution actually works on Win and Linux hosts on screens of different resolutions.

I want to share some history here… GHI Electronics was the first company in the world to offer a USB chipset (USBwiz). We were also the first in the world to add USB host to NETMF (USBizi), and even did it on JAVA ALFATxp. We were the first company in the world with MAX3421 USB library. :nerd_face: What I mean is that USB is very easy for us. The only thing stopping us from giving you what you need is finishing items of higher priority.

Still, thanks for the links and please keep on sharing.

1 Like

OK @Gus_Issa, thanks for that insight – eeks — your history indeed is impressive. Never in doubt … :wink: I’ll walk the dog for some extra rounds and be as patience as I possibly can …


@Pablo0031 Yea, the doggie would love that.

1 Like