Coder Social home page Coder Social logo

Merging forks about esp32-usb-soft-host HOT 12 OPEN

tobozo avatar tobozo commented on September 13, 2024
Merging forks

from esp32-usb-soft-host.

Comments (12)

suarezvictor avatar suarezvictor commented on September 13, 2024

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

I'd really like support for FS devices at 12mbps, and that way test a game controller
Do you know of a good library that does good packet decoding of various types of hardware? I wasn't able to find even a mouse handler that supports both 8-bit protocol and 12-bit protocol (I'm currently assuming 12-bit)

from esp32-usb-soft-host.

tobozo avatar tobozo commented on September 13, 2024

I'd really like support for FS devices at 12mbps

12mbps sound way over limit with the USB 1.0 specifications of this USB driver, unless you're talking of using tinyusb?

Do you know of a good library that does good packet decoding of various types of hardware?

The USB_Host_Shield library is a very good source of inspiration.

I wasn't able to find even a mouse handler that supports both 8-bit protocol and 12-bit protocol

Neither did I when I played with the ESP32-WUD, so I made a tinyusb descriptor for absolute mouse that uses signed 16bits values.

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

I'm talking about pushing this exact core to 12mbps, the teensy runs at 600MHz...
Great to know about absolute mouse! they may use it with touchscreens, I have one and didn't figure out how it works, they may use absolute coordinates
regardind the host shield library I'll take a look

what about keeping a C interface and a C++ wrapper for those that require it? C++ in FPGA environments is a bit harder

from esp32-usb-soft-host.

tobozo avatar tobozo commented on September 13, 2024

have you seen the this teensy library? it seems to handle mass storage, filesystem and game controllers altogether

separating C++ wrapper from C interface sounds good but I've never tried FPGA devices before, do I need additional hardware such as an oscilloscope or other special tools to play with that?

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

yes, the teeny library may be useful
I've seen a more complete one but can't remember it now
btw such a library doesn't support 12-bit mouse protocol (all my mouses are like that so it may be the norm), see https://github.com/PaulStoffregen/USBHost_t36/blob/master/mouse.cpp#L63

In regards to the C interface, i think that's mandatory. you can do C++ in the FPGA but it's not as usual (indeed I implemented a complete UI with mouse/keyboard support in C++ and using C++ libraries)

go get a FPGA! you need nothing for simple to intermediate things
indeed you can run simulated designs with verilator on your PC at useable speeds (i.e. run a linux console with a custom CPU done in the FPGA)

from esp32-usb-soft-host.

tobozo avatar tobozo commented on September 13, 2024

https://github.com/cociorbaandrei/LOGITacker_nrf52832/blob/master/logitacker/logitacker_usb.h this one has a 12bit report descriptor.

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

a good driver should detect the protocol, like windows and Linux do
I've seen no embedded development with such a capability

from esp32-usb-soft-host.

tobozo avatar tobozo commented on September 13, 2024

it's not the driver's job to negociate a story between USB devices, windows and linux/mac use different strategies anyway.

For example a problem with libraries derived from tinyUSB is that their descriptor/reports are macro based, which makes it nearly impossible to have variable ID or device order, thus rendering any mixed-device implementation limited to some situations only (e.g. can't add hybrid absolute mouse/keyboard as device number 1 to a windows laptop with an existing touchpad if a second mouse already exists on the bus).

Otherwise there's a way to identify the OS if you manage to capture some low level reports, then you can apply some different magic to your report descriptors depending on the situation.

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

are we talking about doing a USB host right? so the host hast to adapt to the device capabilities

from esp32-usb-soft-host.

suarezvictor avatar suarezvictor commented on September 13, 2024

we need to split the development in a module that communicates with USB devices (packet exchanging), an other that does the decoding and interpretation of packets, the latest one should be really general... just one implementation for all platforms

from esp32-usb-soft-host.

tobozo avatar tobozo commented on September 13, 2024

Tried for a dozen hours but I can't get my head around those tinyusb changes, whatever I try doesn't compile with ESP32. I guess it's enough research for a sunday :-)

from esp32-usb-soft-host.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.