[Dprglist] Raspberry pi to Arduino Serial Communications

Pat Caron patcaron at mail.com
Wed Jan 6 12:24:25 PST 2021

During the last RBNV I mentioned that I was having problems communicating
with an Arduino connected to the RPI due to that nature of the USB bus and
what device gets connected first ei: /dev/ttyUSB0 vs /dev/ttyUSB1 or
/dev/ttyACM0...etc when using multiple Arduinos.  To resolve this I used
some udev rules as below to connect the devices to a symbolic link
therefore resolving the unknown USB device name.  The same symbolic link
name will be given to the USB serial device connected to a specific port.

I created */etc/udev/rules.d/99-tty-by-path.rules* with the following
content on the raspberry pi.

# Rules to create SYMLINK to Arduino device by USB path
ACTION=="add", SUBSYSTEMS=="usb", KERNELS=="1-1.2.7:1.0",
ACTION=="add", SUBSYSTEMS=="usb", KERNELS=="1-1.2.7:1.1",

I got the path for the KERNELS=="1-1.2.7:1.x" by typing the command below
in the terminal for each devices connected
udevadm info -a --name=ttyACM0

      looking at parent device

Reload the rules or reboot for them to take effect!!

In python I use:

        link = txfer.SerialTransfer('/dev/ttyUSB-motor', 57600)

        time.sleep(2) # allow some time for the Arduino to completely reset
        while True:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20210106/a07fafc7/attachment-0001.html>

More information about the DPRGlist mailing list