Can anyone make sense of serial port naming on the Mac?


#1

Folks:

I am using a Mac Mini to control a bunch of lab hardware using LabView with, among other things, seven USB-to-serial adapters (PL2303-DB9) plugged into a 7-port USB hub (USB2-HUB-AG7).

Perhaps surprisingly, this arrangement functions fine, but I find myself deeply confused by how the assignment of serial port IDs works on the Mac. There are two levels of name assignment here – first, each serial adapter gets a port name in /dev, e.g., /dev/cu.usbserial1, usbserial2, or whatever. Second, NI-VISA (the comms driver software that underlies Labview) assigns an internal resource name to each of these /dev entries.

Unfortunately, neither of these naming schemes functions reproducibly, i.e. if I restart the machine and/or disconnect/reconnect USB connections, the various physical ports wind up with different port identifiers, and the various port identifiers get mapped to different VISA resource names. I can’t figure out what the underlying strategy is. Obviously, this is annoying, although not crippling, because every time I restart, I need to identify which port identifier is connected to which piece of hardware again.

It would be nice if I could figure out in advance which physical connection will have which software address. Can anyone enlighten me as to the underlying logic here? Presumably it involves both the driver software and how the USB hub is constructed.

thanks,

–greg


#2

Hi Greg-

Thanks for posting with a nice clear description of the devices and model numbers you’re using, it’s always great to hear about the cool stuff people are doing with our devices. I’m writing from a system I can try and replicate your situation from, and have the OS X labview trial downloading. I’ll at least be happy to look into this with you and share any observations I can make once the download completes and I’ve had a chance to test a bit.

The USB2-HUB-AG7 is actually two four port hubs internally daisy-chained with port four on hub one being used to provide an “input” for the second hub. OSX System profiler doesn’t make this distinction clear, so from a first glance I suspect that it may be as simple as which usb->serial adapter initializes first. That said, there may be other factors at play I’m overlooking on this first glance. It might be that simply plugging them in in a certain order post reboot would make this behavior predictable enough to work.

I’ll be curious to hear if that basic procedure is helpful or if diving in further is worthwhile.

Best wishes, and again thanks for posting!

Jeff Everett
MCITP Enterprise Support Tech
Plugable Technologies


#3

Thanks Jeff. Which ports on the outside correspond to which of the two daisy-chained hubs?


#4

Hi Balcs-

I misspoke: our USB 2 10 port hub is the one with internally chained hubs.

The USB2-HUB-AG7 uses a single Terminus Technology FE2.1 controller:
http://terminus-tech.com/images/FE2.1…

All ports should enumerate at the same time on the USB2-AG-7 single controller hub: sorry for my confusion there.

Please let me know if you’ve any other questions. Finding answers may take some testing and time to be able to respond for more complex questions like this, but I’m happy to help.

Best wishes-

Jeff


#5