Comments (6)
A little bit of background. The problem came to my notice in Olimex's reason for creating a USB hub board where they gave some detail, including:
Unfortunately, in most cases, these cheap USB hubs, like the one we have on the web and many others, simply refuse to work. Out of the 10 USB hubs I bought to test, only 2 were functional.
from tinyusb.
With the hub plugged into a Pi, please post the output of sudo lsusb -v
. Also busting it open and getting the controller IC part number would be useful.
from tinyusb.
Here's a log after connecting the hub.
Bus 001 Device 002: ID 214b:7250
after-hub-plug.log
from tinyusb.
It appears the hub is very flaky when talking to low-speed devices if operating in full-speed mode. I attach a Teledyne Lecroy analyser trace showing multiple errors - it appears the host hardware eventually gets upset. My suggestion would be to ensure consistency of the expected packet data toggle in the case of smashed ACKs.
pico host usb hid probe.zip
from tinyusb.
Thanks @P33M, so the Pico host eventually gets upset. Did you try traces with other hosts, as Matthew tried a Pi5 and Linux laptop, and they also suffered the hub's flakiness but coped better?
from tinyusb.
Every single other host will use the hub in high-speed mode, which fundamentally changes the signalling involved - communication with the low-speed device is handed off to the hub's transaction translator. See the USB 2.0 spec section 11.14.1.1.
from tinyusb.
Related Issues (20)
- USB Audio Mic is unusable if tud_task isn't called thousand times a second (missed packets?) HOT 1
- Unexpected ReportID HOT 1
- usbtmc error in freertos
- Host Vendor Class API HOT 2
- Potential code typo in examples/device/uac2_headset HOT 1
- Enabling feedback for USB microphone hangs
- Inconsistent Driver Errors on STM32F0
- [UVC] Support device with multiple VS and VC interface HOT 1
- add webusb memory region support in dfu mode
- `tud_cdc_rx_cb` callback is never called. HOT 7
- MAX3421 (host) and NAK handling HOT 1
- Add a check to see if device ID is correctly mapped before accessing it HOT 5
- Debug logging options not enabled by tusb_config.h, ep_dir_string not defined HOT 5
- Plug in two devices at once, no devices found, panic HOT 7
- unredistributable *.ld files under non-free license HOT 9
- dcd_rusb2.c MSC enum error HOT 5
- Losing half of the bandwidth when receiving data by hid set-report transfer. HOT 2
- support wch ch32v/f full usb host
- DWC2: usbd_edpt_close() does not free TX FIFO RAM HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinyusb.