how did sudo command solved can't open device "/dev/ttyUSB0": Permission denied?

  • Please read full

    This is the most common or the most probable error you might have seen if you tried coding Arduino, nodeMCU etc in Arduino-ide.
    It might happen that when you upload a sketch - after you have selected your board and the serial port -, you get an error Error opening serial port ... If you get this error, we google it and the method to debug it is to set serial port permission.

    Screenshot from 2020-03-29 17-27-59.png

    this is the steps we followed to solve it. Even though the error stilled showed sometimes and had to use this code again.

    Since I try different distros of Linux sometimes I end up corrupting the old distro and reinstalling it from the beginning.
    This time I actually didn't follow these step but installed Arduino from the terminal using sudo apt install arduino command and run the code. The interface was completely different. The image below is the general interface of ide but installing it with sudo command give an ide with same screen but no setup{} or loop() part, a blank screen.
    Screenshot from 2020-03-29 17-42-34.png
    An error popped up about the port issue and solution to add the user to the group was mentioned in the terminal and followed the same command. After which the error never showed. I also snap installed arduino.

    Now my question is : By installing arduino using sudo command did I install ide or supporting libraries and why did the error stop?

    1. Go to Arduino software
    2. Download Linnux 64-bit or 32-bit software
    3. Extract the Downloaded tar.xz file on your home directory.
    4. Navigate to your extracted file using cd command:
      cd arduino-1.8.12-linux64
    5. Make the file executable:
      sudo chmod +x
    6. Install arduino using shell script
      sudo ./
    7. Open Terminal and type:
      ls -l /dev/ttyACM*
      you will get something like:
      crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0
      The "0" at the end of ACM might be a different number, or multiple entries might be returned. The data we need is "dialout" (is the group owner of the file).
      Now we just need to add our user to the group:
      sudo usermod -a -G dialout <username>

    I believes it is a better way to solve your problem. Other way you to try to solve problem is install arduino via:
    sudo apt-get install arduino-core

  • @arunksoman thanks for the steps
    but the thing is I don't have issues with port now, I was curious how it got resolved without going through the usual steps but by using sudo command.

  • @Abhay What did you mean by usual steps?

  • @arunksoman by usual steps I meant adding our user to the group.
    ie the step
    sudo usermod -a -G dialout <username>

  • @Abhay I think most probably you might have done this earlier while installing Arduino.

  • @arunksoman thanks,
    I will look more into it. Thanks again

Log in to reply

Recent Posts

  • F

    @salmanfaris best if you could point me to an example that works as described: getting different values depending on hoe close the finger is without really touching. nothing i tried did work yet

    read more
  • F

    @salmanfaris I haven't found a good sensor module for this at all. I used a thing which was calles touch sensor and it returns only 1/0. Tried to use touchRead() but it is not sensitive apparently, only 40 and 1 more or less.

    #define touch_pin_numer 33

    const int VALUE_THRESHOLD = 30;
    void setup()

    void loop(){
    TOUCH_SENSOR_VALUE = touchRead(touch_pin_numer);
    Serial.println ("Touch ON");
    Serial.println ("Touch OFF");

    should show something between 40 (current max) and 1 (current min) the closer the finger gets but it shows 40/41/39 and 1 - nothing inbetween. got this code from the web

    read more
  • @FlorianB Can you share the code, output window/error and details of the sensor module?

    read more
  • F

    Hi! I am trying to add an capacitive sensor to the ESP32, that will work through glass with 3mm thickness and an distance of 8 to 2 cm. I have bought sensors which only work on touch, i have looked into the touchRead() function but cant get a steady value increase/decrease with distance and only a real touch gets me enough difference to count it as a "touch". I have checked Arduino examples with foil where a resistor can set the sensitivity but nothing worked on my ESP32. i have spent hours looking for an example, can somebody point me to one please?

    read more
  • Capture.PNG

    Welcome to the Second edition of MakerGram Live, a newsletter where we pull together information about Interesting projects, Industry news, upcoming events, job opportunities and other interesting bits that you may find useful. 😉

    If you are a member of makergram, you already received a mail, please check your inbox or you can read from here: MakerGram Live | May 2020 Maker Update

    read more