如何获得每个Arduino的唯一ID

时间:2016-12-15 12:20:47

标签: arduino tty udev

我使用两个Arduino Nano,并希望更改/dev中列出的名称,因为目前它们始终为ttyUSB<NUMBER>

如何获取唯一的序列号来创建udev规则?

我尝试通过udevadm获取它,但它为两个Arduinos返回相同的序列ID。

/var/log: udevadm info -a -n /dev/ttyUSB0 | grep '{serial}'
    ATTRS{serial}=="0000:00:14.0"

1 个答案:

答案 0 :(得分:1)

Arduino Nano基于ATmega328,没有内置USB控制器。电路板上的USB连接器连接到外部USB-to-TTL转换器IC。因此,您在PC端看到的所有USB设备参数都不属于Arduino本身,而属于USB芯片。

许多芯片可以使用唯一的序列号单独编程。或者,您可以使用插入Arduino板的PC端口号作为唯一标识符。

您尝试的udevadm命令显示&#34; serial&#34;您的PC中插入Arduino板的USB控制器,而不是Arduino板上的USB芯片序列。

取而代之的是udevadm info -n /dev/ttyUSB0 -q all。带序列号的行看起来像E: ID_SERIAL_SHORT=12345678。如果该行丢失或确实包含所有电路板的相同编号 - 请使用此udev规则根据USB端口号分配唯一的别名:

ACTION=="add", KERNEL=="ttyUSB*", SYMLINK+="arduino/tty-%s{../busnum}-%s{../devpath}"