TransWikia.com

Uploading code to arduino gives me the error: "avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied"

Ask Ubuntu Asked by sergiomafra on January 4, 2021

My OS is Ubuntu 18.04 and arduino was working until now.

Although there are a few solutions, none of them seems to work for me.

I followed these instructions on the arduino website.

Then I tried this on arduino Stack Exchange, which should work in cases where the first solution didn’t. The answer says we should create a few rules on /etc/udev/ruled.d/ path.

But none of them worked for me.

I also tested arduino in Windows 10 to see if it was a hardware problem, but it worked fine.

Does anyone have any other ideas on how to solve this issue?

UPDATE:

  • My username, sergio, is part of both groups (tty and dialout);
  • I logged out and back in as arduino official tutorial explains;
  • In Arduino IDE, the configurations are correct: Arduino UNO and ttyACM0
  • This is the output of ll /dev/ttyACM0 after running the tutorial commands:

    crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
    

UPDATE 2:

I’ve created a script to solve this:
https://github.com/sergiomafra/iniarduino

10 Answers

I had a similar issue when I tried to upload a sketch to Arduino. The issue was connected to the lack of permissions to read/write to the serial port. I was able to fix by using the following command:

To confirm the port exists enter the following from the root directory.

ls /dev/ttyACM0

To set read/write permissions, enter the following

sudo chmod a+rw /dev/ttyACM0

Correct answer by Adrian on January 4, 2021

This worked to fix the 'unable to open serial port' problem (put your Ubuntu username in instead of $USER) after downloading Arduino from Ubuntu Software.

sudo usermod -a -G dialout $USER  
sudo chmod a+rw /dev/ttyUSB0

Answered by Sam_Carmichael on January 4, 2021

I had the same issue, I tried installing from Ubuntu Store on 18.04 and try everysolution here. Nothing worked for me. So I downloaded the latest

I extracted and ran the following command to install it: $ sudo ./install.sh

After installing, I ran the script that came with the latest version by running the following:

$ ./arduino-linux-setup.sh <user_name>

Once the script is complete, it show you a message of "Please Rebook you system". I didn't restart when I try the solutions here, may be this is something that next users should try.

Important: When you install the software following these steps you need to go to Ubuntu Software and Give Permission to "Access Usb Hardware directly".

Answered by titusfx on January 4, 2021

For me mixture of above two answers worked: First was I couldn't find avrdude, which avrdude this gave me nothing. So, I had to reinstall the arduino.

sudo apt install --reinstall arduino

This installed avrdude, and I could find it in /usr/bin/avrdude. Next thing was to set read/write permission to the serial port:

sudo chmod a+rw /dev/ttyACM0

Then I could upload the sketch on to my arduino!

Answered by Bhaskar Chakradhar on January 4, 2021

ha I'm a newbie and I made some mistakes)) Don't do it the way I do.

  1. First of all, in my book there was a bad picture about the led connection scheme. I found new one and reconnected wires. Now they are connected correctly.
  2. Then I connected arudino to the computer (it's important).
  3. Then I executed the following commands:

    • ls -l /dev/ttyACM0
    • sudo usermod -a -G dialout [my_username]
    • sudo chmod a+rw /dev/ttyACM0

When I was looking for a board in menu of arduino programm (Tools -> Board) I did not find an 'Arduino/Genuino Uno' just there was an 'Arduino Uno' (I guess it's OK)

Answered by Nefedova Oxana on January 4, 2021

I see that the question is already accepted but none of the solutions did it for me so I've got a different solution. I installed the arduino IDE via the Ubuntu software installer. What you need to do is.

  1. Go to arduino IDE in Ubuntu software store
  2. click permissions
  3. set Access usb hardware directly on on

Answered by sjoerd hilhorst on January 4, 2021

I got a solution.

  1. Find your port to which the Arduino is connected (e.g. mine was /dev/ttyUSB0). You may find it mentioned in the error message in Arduino IDE.

  2. Open the terminal (Ctrl+Alt+T).

  3. In the terminal run:

    sudo chmod 777 /dev/ttyUSB0
    

    The above command sets the required permissions.

Answered by yugal sharma on January 4, 2021

Here's what worked for me:

  • Uninstall the version from Apt, it doesn't work properly (sudo apt uninstall arduino; sudo apt autoremove)
  • Install the version from the Arduino website
  • sudo apt install avrdude since the one from the website doesn't include it
  • sudo usermod -a -G dialout $USER since the one from the website doesn't do this automatically (the dialout group owns the device file; this adds the current user to that group)

And now everything's working again!

Answered by Draconis on January 4, 2021

In combination with all the posts I read, this is what I did to solve that issue by following directions from this thread.

In a new terminal, I typed the following as shown below.

https://i.stack.imgur.com/ifRmx.png

Please note that fourplus is my username.

Answered by Arafat Mukasa on January 4, 2021

Reinstall your arduino installed from Ubuntu software center:

sudo apt install --reinstall arduino

Reinstalling is necessary since your which avrdude command according to your comment returns nothing, but should be /usr/bin/avrdude. Check again:

which avrdude

Run your Arduino IDE after reinstalling and close it.

Check your arduino configuration. Open /home/sergio/.arduino/preferences.txt file and check there serial.port option. Try to change it to /dev/ttyACM0. Open that file:

sudo nano /home/sergio/.arduino/preferences.txt

and apply corresponding changes, i.e. the option should look

serial.port=/dev/ttyACM0

Restart computer afterwards.

Answered by Bob on January 4, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP