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

  • WhatsApp Image 2020-09-26 at 9.28.51 PM.jpeg

    Hey guys, we are thrilled to announce the speaker Mr. Brian Douglas for our upcoming event organised by HackClub TIST as part of Hacktoberfest 2020. He will guide you through GitHub and the importance of Open Source contributions.

    Mr. Brian Douglas has been working as a Staff Developer Advocate at GitHub for the past three years and was fully on-board with us when we contacted him about the event.

    We at Hackclub TIST strongly believe in the power of collaboration and how even the smallest guidance can have a huge impact in the long run.

    So register now at and lets git learning (pun intended).

    Friday October 2, 2020
    7:00 pm -9:30 pm IST

    read more
  • P

    @Anudeep Thanks a lot m8, I actually made a very silly mistake of including the https:// while entering FIREBASE_HOST, where I must have entered the Domain name alone and removed the https:// extension.

    Thanks again for replying that quick. Cheers.

    read more
  • A

    Hello @Palani, In the Firebase, there are two types of storage,

    Cloud Firestore (Very recent one & NoSQL database) Realtime Database (To which we upload the data using NodeMCU)

    In the Arduino Code, you can see that there is a variable named FIREBASE_AUTH.

    This variable should be assigned to the Database secret. This you can find in Project Settings -> Service accounts -> Database Secrets.

    My mistake is, i have mistakenly assigned thay to Web API key. This is found at Project Settings -> General.

    The error can also occur when u don't initialise a proper realtime database in Firebase. (This is not my case).

    read more
  • P

    @Anudeep Hello Anudeep could you please help me out by elaborating the fix to get rid of that error?
    Thanks in advance.

    read more
  • At Adobe, weโ€™re focused on bringing together the most intelligent, driven, diverse set of individuals and give them the freedom to nurture their intellectual curiosity. We provide them with the necessary resources and support to shape their ideas into tangible results.
    Through the Adobe India Women-in-Technology Scholarship, we are striving towards creating gender equality in science, technology and engineering domains by encouraging women to showcase their excellence in computing and technology and become future leaders and role models in the field.

    ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฎ๐—ฝ๐—ฝ๐—น๐˜†?

    Applications must be submitted through their dedicated application portal which opens on August 20th, 2020 and will close on September 20th, 2020, 5 pm India time.

    ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฑ๐—ฒ๐—ฎ๐—ฑ๐—น๐—ถ๐—ป๐—ฒ:

    Application deadline: September 20th, 2020, 5 pm India time.


    read more