简体   繁体   中英

How to select a particular USB port on raspberry pi 3B+ to program two arduino boards with arduino-mk?

I have a python program on my Raspberry pi 3B+ witch updates an Arduino mega2560 and an Arduino Uno by using Arduino-mk through bash commands. Each Arduino has its own code folder with its code (.ino) and a Makefile which looks like:

ARDUINO_DIR = /usr/share/arduino
ARDUINO_PORT = /dev/ttyUSB0 (here is the problem)

USER_LIB_PATH = /home/pi/sketchbook/libraries
BOARD_TAG = mega2560 (Uno for the uno one)

include /usr/share/arduino/Arduino.mk

When I call the following command:

os.system("(cd ~/sketchbook/mega; make upload clean)")

with only the mega connected on the USB port everything works and the mega gets programed (same with Uno only). but when I try to get both done:

os.system("(cd ~/sketchbook/mega; make upload clean)")
os.system("(cd ~/sketchbook/uno; make upload clean)")

arduino-mk can't program the Uno (multiple timeouts).

At first the second line in Makefile was:

ARDUINO_PORT = /dev/ttyAMC0

but it was not working so I checked on the web and found that some Arduino copies worked better with:

ARDUINO_PORT = /dev/ttyUSB0

Then it worked but I couldn't get any result with ttyUSB1 up to ttyUSB3 (I hoped it would work like COM ports on windows).

I also noticed that if I keep testing with ttyUSB0 and try with each physical USB port and worked so ttyUSB0 refers to the four physical ports right?

Please how can I get one particular port name? Or is there an other way to make Arduino-mk work?

Plug in one device at a time and look at the output of ls -l /dev/serial/by-id/ , you should see a symlink to the actual device node, but uniquely named for your specific device.

You can then set ARDUINO_PORT=/dev/serial/by-id/unique_name in the respective makefiles.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM