Jump to content
DTaylor

cRIO USB Device Limit?

Recommended Posts

I have a cRIO 9030 based test system that connects to 16 control boards over USB (FTDI). I can connect and communicate with 14 just fine, but it seems NI Linux RT is not recognizing the 15th and 16th devices. /dev/ttyACM0 through /dev/ttyACM13 show up for the first 14 boards, but no new ttyACM files appear for devices 15 and 16. The first 14 also show up under devices and interfaces in MAX and are discoverable with VISA. I've tried a couple different hubs in different configurations connected to the two USB ports (including daisy chaining them), and I'm always able to get exactly 14 boards to connect.

I can communicate with all 16 without issue on my desktop, so I don't think it's an issue with the hubs.

Is this a real OS or hardware limitation, or does anyone know of a potential solution or workaround? If there is a real limitation, I can settle for testing two batches of 8 at a time. Thanks!

x-post here: https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/FTDI-USB-Device-Limit/td-p/3686134

Edited by DTaylor
added dark side xpost

Share this post


Link to post
Share on other sites

I'm curious what USB hardware you are using.  It sounds like you have 16 individual devices and might fair better with a single 16 port device.  I've used these successfully on Windows, but never had access to one and an RT controller.  I know of no reason why this limitation would be there, but NI might and you should probably crosspost here.

EDIT:  You may also want to update this post with USB devices you were successful with.  I haven't found an FTDI, or Prolific chipset that hasn't worked yet.

Share this post


Link to post
Share on other sites
15 minutes ago, Tim_S said:

but can run into bandwidth issues.

So I can't even get to the point where I attempt to send data to all 16 at the same time. I'm so far unable to get the OS to even enumerate all the devices.

15 minutes ago, Tim_S said:

Powering a device off the USB port could cause problems as well if you exceed the current capability of the port.

I should have mentioned that the first configuration I tried was two 8 port hubs each with their own 60W DC supply.

11 minutes ago, hooovahh said:

I'm curious what USB hardware you are using.

The control boards have Arduino Megas on them that I'm connecting to. I have two Anker 8 port USB hubs each with their own 60W DC supply. I connected one to each USB port on the cRIO. If I instead daisy chain them, I can see up to 14 devices enumerated from the one cRIO USB port, and when I connect a 15th board directly to the second cRIO USB port (not through a hub), nothing new shows up in /dev and there are no new devices in MAX or VISA discovery.

Edited by DTaylor

Share this post


Link to post
Share on other sites

Search your feelings, you know it to be true.  The dark side is the only path forward. (unless someone from NI comes here which does happen but I think this is specific enough of a problem to ask that group)

19 minutes ago, DTaylor said:

If I instead daisy chain them, I can see up to 14 devices enumerated from the one cRIO USB port, and when I connect a 15th board directly to the second cRIO USB port (not through a hub), nothing new shows up in /dev and there are no new devices in MAX or VISA discovery.

This really does sound like a software limitation, potentially in the kernel.  The fact that the 15th device is pluged directly into the cRIO not through a hub is the key piece of information.

Share this post


Link to post
Share on other sites

from dmesg:

[    7.434709] usb 1-4.4.4.2: new full-speed USB device number 24 using xhci_hcd
[    7.577906] usb 1-4.4.4.2: Not enough host controller resources for new device state.
[    7.577923] usb 1-4.4.4.2: can't set config #1, error -12

It looks like this issue is not limited to NI Linux-RT: https://superuser.com/questions/731751/not-enough-host-controller-resources-for-new-device-state

I poked around in the BIOS and couldn't find anything that would allow me to disable xhci. Does anyone know if this is possible without recompiling the kernel?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.