[TriEmbed] best tool for automagic interaction with USB serial ports

Pete Soper pete at soper.us
Wed Feb 27 19:54:58 CST 2019


On 2/27/19 7:16 PM, John Vaughters via TriEmbed wrote:
>
> Pete,
>
> If you are using the same USB devices all the time and do not expect 
> changes, consider doing udev rules. Below is an article I wrote about 
> it. Basically it recognizes your USB device based on certain ID's and 
> you can name the device whatever you want. As far as communicating, 
> "expect" scripts is as good as any tool I can think of. The only thing 
> that is probably
Thanks. That's a nice how-to and will make it easy to differentiate 
between the TI XDS110 debug probes and Beaglebone boards that both 
manifest as /dev/ttyACMn and between instances of custom devices and the 
Arduino Nano's I'm using to run some motors that both manifest as 
/dev/ttyUSBn. But I need to go a step further. To assign a name like 
"NW-FOO" to the XDS110 in the NW corner of my "test range" I'd need to 
interpose in Udev somehow so it could do the thing to determine which is 
which. For the XDS110 there's a TI program that (if you repeat it enough 
times: flaky as heck) puts out strings including the ID string, but for 
the custom device I need to use expect to poke something into the port 
and get back the ID (and same for the Arduino motor controllers).

So the question is whether there's a hook mechanism with Udev that would 
allow running a command as a side effect of the device's detection and 
name assignment under /dev. Especially if that could be run as root I 
could create the symbolic link and properly set its group id. Or maybe 
the invoked program/script could simply rename the device after it's 
probed it?

I agree that USB has got further to go. I regret going with Ubuntu 18.04 
for my latest PC 'cause Code Composer Studio seems to be much less able 
to manage the debug probes than when it's running on 16.04. Over on the 
TriLUG list there's been griping about 18.04 having regressions and that 
matches my experience.

-Pete
> better is Tera-Term, but that is strictly windows. It is quite good 
> though and I wrote a tool to run scripts to 300 edge routers using 
> Tera-Term. One thing I used to do is use "socat" to send the serial 
> device to a raw TCP port and communicate over the network. In general 
> I do everything I can to not communicate to USB devices due to their 
> constant connection issues. I prefer using UART if possible.
>
> Good Luck,
>
> John Vaughters
>
> Arduino Communications Device Naming with udev - Combustory 
> <http://combustory.com/wiki/index.php/Arduino_Communications_Device_Naming_with_udev>
>
>
> 	
>
>
> 	
>
>
>     Arduino Communications Device Naming with udev - Combustory
>
> <http://combustory.com/wiki/index.php/Arduino_Communications_Device_Naming_with_udev>
>
>
> On Wednesday, February 27, 2019, 4:41:50 PM EST, Pete Soper via 
> TriEmbed <triembed at triembed.org> wrote:
>
>
> It's been many years since I used the Unix "expect" command but that was
> the industrial strength solution for automated interaction with a serial
> connection such as via ssh where you specify a "script" of "this is
> sent, this is what's received back", interactions and the logic to take
> actions based on the interaction details. What's out there now that I
> should be using, or is this still the best way to go? My host
> environment choices are Linux or Cygwin (inside a VM).
>
> My situation is that I have three or four flavors of device that I need
> to connect to with either ssh or a terminal emulator where a script of
> some sort dictates what I have to send and what I expect back. This, in
> turn, is to deal with the musical chair situation with USB connections
> such as when I get intermittent electrical service from Duke Energy (at
> no extra cost!) I've got an automated test system where there are, for
> example, /dev/ttyACM{0,1,2,3,4,5,6,7}, /dev/USB{0,1,2,3}, etc, and I
> need to establish and keep fresh meaninfully named symlinks that get
> associated with the right devices assigned randomly by system startups,
> being forced to unconnect/reconnect cables, etc.
>
> .
> Thanks,
> Pete
>
>
> _______________________________________________
> Triangle, NC Embedded Computing mailing list
>
> To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org>
> List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
> TriEmbed web site: http://TriEmbed.org
> To unsubscribe, click link and send a blank message: 
> mailto:unsubscribe-TriEmbed at bitser.net 
> <mailto:unsubscribe-TriEmbed at bitser.net>?subject=unsubscribe
>
>
> _______________________________________________
> Triangle, NC Embedded Computing mailing list
>
> To post message: TriEmbed at triembed.org
> List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
> TriEmbed web site: http://TriEmbed.org
> To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net?subject=unsubscribe
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20190227/dd10197f/attachment.htm>


More information about the TriEmbed mailing list