Linux USB stability issues

Linux stability issues is a problem from testbed_micropython.

Up to ~6 tentacles work seemless.

The stability isssue have theses root causes

  • Hub

  • USB protocol stack

    • USB CDC-ACM requires polling for a serial usb device every ~100ms.

      • Example: 16 tentacles with ~2 serial lines each: 32 polls every 100ms.

  • PCI USB host

    • The are different chipsets. See 30_usb_host.rst

Ubuntu tuning

disable autosuspend

Add kernel boot parameter:

usbcore.autosuspend=-1 pcie_aspm=off

sudoedit /etc/default/grub
sudo update-grub
sudo reboot

keep hubs and CP210x forced on with udev

/etc/udev/rules.d/82-octoprobe_cp210x.rules

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0424", ATTR{idProduct}=="2514", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", TEST=="power/control", ATTR{power/control}="on"
sudo udevadm control --reload
sudo udevadm trigger