Using USBtinyISP with Ubuntu

If you want to use Adafruit’s excellent USBtinyISP programmer with Ubuntu Linux, you’ll probably run into this error:

avrdude: Warning: cannot open USB device: Permission denied

Here’s a quick dump of what should help:

In a terminal, type:
sudo nano /etc/udev/rules.d/99-USBtiny
Then paste
SUBSYSTEM=="usb", ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", GROUP="adm", MODE="0666"
into the new file. Write it out by pressing Ctrl-O.

sudo usermod -a -G plugdev YOURUSERNAME
sudo service udev restart
sudo udevadm control --reload-rules

Insert the USBtinyISP again.

This makes a rule which fixes the permissions on the USB mount point every time the device is inserted. All information comes from this thread but wasn’t properly structured. Hope this helps someone 🙂

Like this? You might be interested in my latest project. It's a desk light made completely from a single sheet of printed circuit board. Check it out:


6 thoughts on “Using USBtinyISP with Ubuntu

  1. Thanks for the summary! It helped me get my USBtiny working in Ubuntu 16.04 LTS. However I had to change the name of the rules file to “/etc/udev/rules.d/99-USBtiny.rules” to get it to work.

  2. I’m having this problem on an RPi running Raspian. I followed the instructions including the comment about adding the .rules extension to the file.

    • Hi John,
      Sorry I wouldn’t know how to get this running on Raspbian. Interesting combo though 🙂

  3. Thanks for this information. It got me going. A couple questions though:
    Should “ATTR” be “ATTRS”?
    Also, shouldn’t GROUP=”adm” be GROUP=”plugdev”?
    On my system the group is dialout, but regardless, I believe that the group in the 99-USBtiny.rules file should match that in the usermod command.

    • Could well be. This is such a long time ago I had a hard time remembering what it was about 😀

  4. FYI, for my Jaycar XC4627 Duinotech AVR ISP programmer (lsusb: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb), putting the below in a file called “99-USBasp.rules” worked. I’m already a member of dialout ( Running Lubuntu v22.04.

    SUBSYSTEM==”usb”, ATTR{idVendor}==”16c0″, ATTR{idProduct}==”05dc”, GROUP=”dialout”, MODE=”0666″

    Your guide was useful for working this out. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *