User Tools

Site Tools


arduino:arduino_on_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
arduino:arduino_on_linux [2017/12/04 01:17] mithatarduino:arduino_on_linux [2019/12/29 05:36] – [USBtiny permissions] mithat
Line 1: Line 1:
 ====== Arduino on Linux ====== ====== Arduino on Linux ======
  
-Depending on your distribution, you might need to add permission to your user so it can access ''/dev/ttyACM*'' or whatever. On my Debian system, the following worked (as root): +===== Managing permissions =====  
-<code bash>+ 
 + 
 +==== Serial port permissions ==== 
 + 
 +Depending on your distribution, you may need to add permission to your user so it can access ''/dev/ttyACM*'' or whatever. On my Debian sid system, all I needed to do was add my user to the ''dialout'' group. The following did the trick (as root): 
 +<code>
 # usermod -a -G dialout <username> # usermod -a -G dialout <username>
 </code> </code>
 +
 +==== USBtiny/USBtinyISP permissions ====
 +
 +If you plan to use a USBtiny or USBtinyISP to program your Arduino instead of the more conventional approaches, you are likely to encounter a different permission error. On my Debian sid system, I encountered a “Warning: cannot open USB device: Permission denied” error that adding my user to the ''dialout'' group didn't fix. 
 +
 +I was able to clear it by adding the suggestion at the end of this [[https://learn.adafruit.com/usbtinyisp/avrdude|Adafruit page]]. Specifically, as root create a file ''/etc/udev/rules.d/99-USBtiny.rules'' with the following single line:
 +<code>
 +SUBSYSTEM=="usb", ATTR{product}=="USBtiny", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"
 +</code>
 +The next time you log in, your programmer //should// work as expected --- unless the ''product'', ''idProduct'', and/or ''idVendor'' attributes aren't as expected. You can confirm their values by plugging in your USBtiny and running ''dmesg'' (as root):
 +<code>
 +# dmesg
 +[404467.789928] usb 2-1.2: New USB device found, idVendor=1781, idProduct=0c9f
 +[404467.789930] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
 +[404467.789931] usb 2-1.2: Product: USBtiny
 +</code>
 +
 +A USBtinyISP from a different vendor I used identified itself as “USBtinyISP” rather than “USBtiny”, and so the udev rule above didn’t work. The solution was to add an additional rule in a second line to ''/etc/udev/rules.d/99-USBtiny.rules'':
 +<code>
 +SUBSYSTEM=="usb", ATTR{product}=="USBtiny", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"
 +SUBSYSTEM=="usb", ATTR{product}=="USBtinyISP", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"
 +</code>
 +
 +Modify as needed for your USBtiny.
arduino/arduino_on_linux.txt · Last modified: 2019/12/29 05:37 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki