24 јул 2015

Arduino IDE na Linux-u - gde je /dev/ttyUSB0?


Problem:
U Debian/LMDE/Ubuntu/Mint distribucijama (neke druge nisam isprobavao) nije moguće podesiti Port (Tools/Port) u Arduino IDE - ta opcija je nedostupna ("zasivljena").

Rešenje:
1. korisnik mora biti u grupi dialout ($ sudo adduser USER_NAME dialout)
2. treba deinstalirati brltty paket ($ sudo apt-get purge brltty)

Opis:
Podrazumeva se da je korisnik član grupe dialout. Iako je Arduino mikrokontroler (npr. Duemilanove) priključen na računar preko USB porta, u Arduino IDE nije moguće odabrati port za komunikaciju jer ta opcija nije dostupna.
Listajući /dev direktorijum u potrazi za device file-om, ispostavlja se da ga tamo nema!?
$ ls /dev/ttyUSB* -l
ls: cannot access /dev/ttyUSB*: No such file or directory
Analiziranjem problema dalje, vidi se da je sistem uredno prepoznao priključeni mikrokontroler:
$ lsusb
Bus 003 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Gde je taj ttyUSB0, što ga nema tamo gde mu je mesto?
Pa, evo zašto ga nema:
$ dmesg | grep tty
[ 1058.698443] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0
[ 1060.279423] usb 3-2: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
Kad se čovek dobro zagleda, vidi se da je brltty (Braille device) je u konfliktu sa Arduinom. A trebalo mi je vremena da se zagledam...
I na kraju, rešenje je gore opisano, deinstalacijom ovog konfliktnog paketa, sve je proradilo kako treba:
$ ls /dev/ttyUSB* -l
crw-rw---- 1 root dialout 188, 0 Jul 24 21:50 /dev/ttyUSB0
Naravno, sada se i iz Arduino IDE bez problema može odabrati željeni port.