Como corrigir o erro AVRDUE: ser_open(): não foi possível abrir o dispositivo no Arduino

avrdude: ser_open(): não foi possível abrir o dispositivo "/dev/ttyACM0": Permissão negada

Neste artigo, explicarei como resolver um erro comum no Arduino:


avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Contexto

Depois de muito tempo sem usar o Arduino, peguei minhas duas placas (a original e a Elegoo ) para fazer algumas atividades com minha filha. Conectei-as, tentei usar o comando "piscar" para verificar se tudo estava funcionando corretamente, mas quando fui enviar o sinal para a placa, recebi o erro conhecido.

Arduino:1.8.5 (Linux), Tarjeta:"Arduino/Genuino Uno"

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
 Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.

Tanto meu PC quanto meu laptop têm o Ubuntu 18.04 instalado.

Solução

Começo clicando no link sugerido . E sigo os passos.

Em Ferramentas/Placa Arduino/Genuino Uno está marcado

Em ferramentas / porta serial /dev/ttyACM0

solução de problemas do avrdude arduino

E, conforme sugerido na documentação, caso haja problemas com os drivers e permissões, eu abro o terminal e executo:

 sudo usermod -a -G tty yourUserName
 sudo usermod -a -G dialout yourUserName

onde seuNomeDeUsuário é o seu nome de usuário 🙂

Agora eu saio da minha conta e entro novamente. E, por precaução, reinicio o computador/notebook.

Ainda não funciona e a documentação do Arduino não ajuda mais. Então, continuei pesquisando em fóruns e blogs. Se, neste ponto, isso também não funcionar para você, e você estiver na mesma situação que eu, siga os próximos passos.

O comando `ls /dev/ttyACM0` retorna `/dev/ttyACM0`.
ls -l /dev/ttyACM0 retorna crw-rw—- 1 root dialout 166, 0 nov 26 16:41 /dev/ttyACM

Com isso, confirmamos que a porta existe.

Iremos conceder as permissões e verificar se o nosso usuário possui as permissões necessárias.

 sudo chmod a+rw /dev/ttyACM0
 id devuelve 20(dialout) 

E vejo que o usuário está dentro do grupo dialout , então essa parte está correta.

VEJA TAMBÉM  Sensor de toque TTP223B: Guia completo, recursos e como usá-lo

O que funcionou para mim foi reinstalar o Arduino.

Se você verificar

which avrdude

E se nada mais funcionar, reinstalar o Arduino deve resolver o problema.

sudo apt install --reinstall arduino

E se você não conseguiu resolver o problema, deixe um comentário e eu tentarei ajudá-lo(a).

Ferramenta para corrigir o problema AVRDUE

Existe um script para resolver esse problema . Você pode tentar para ver se ajuda. Eu ainda não o usei, mas deixo aqui porque acho que pode ser um recurso útil.

AVRDUDE

Deixo aqui algumas informações para melhor compreensão do que é o AVRDUDE. O nome vem de AVRDUDE – AVR Downloader / UploaDEr.

AVRDUDE é um utilitário para baixar/carregar/manipular o conteúdo da ROM e da EEPROM de microcontroladores AVR usando a técnica de programação em sistema (ISP).

https://www.nongnu.org/avrdude/

O AVRDUDE foi iniciado por Brian S. Dean como um projeto pessoal, enquanto programador da série de microcontroladores Atmel AVR.

Você pode encontrar o software e muito mais informações no site do projeto.

Deixe um comentário