O acesso à porta serial foi negado
A porta está listada e selecionada, mas todas as tentativas de conexão falham instantaneamente com um erro de acesso ou permissão.
O que você vê
A porta aparece na lista suspensa. Você a seleciona, clica em Conectar, e a conexão falha imediatamente, não após um tempo limite ou alguns segundos de tentativa. O erro menciona sua porta e mostra algo como:
acesso negado ao abrir COM7: Access is denied. Outro aplicativo talvez já esteja usando esta porta serial. Feche outros programas de laser ou serial, desconecte e reconecte o controlador e tente novamente.
A redação depende do sistema operacional. No Windows, o detalhe mostra "Access is denied" e a mensagem sugere fechar outros programas, que é a causa habitual nesse caso. No Linux e no macOS, o detalhe mostra "Permission denied" e a mensagem aponta para as permissões do dispositivo serial:
acesso negado ao abrir /dev/ttyUSB0: Permission denied. Sua conta de usuário talvez não tenha permissão para abrir dispositivos seriais. No Linux, adicione seu usuário ao grupo dialout (ou ao grupo serial da sua distribuição) e saia da sessão e entre novamente.
O que está acontecendo
A porta existe e o Beam Bench consegue vê-la; o problema é abri-la. Apenas um programa pode manter uma porta serial aberta por vez. Outro programa já a mantém aberta, então o sistema operacional recusa a segunda abertura e o Beam Bench informa que o acesso foi negado, em vez de atingir o tempo limite durante o handshake.
O Beam Bench não consegue tomar uma porta de outro programa. A correção sempre depende de você: encontre e feche o que já a está usando.
Correção
Se você estiver no Windows
É onde isso acontece quase sempre. Verifique se há:
- Arduino IDE com o Monitor Serial aberto ou uma placa ainda selecionada na mesma porta COM.
- Monitor serial do PlatformIO ou um envio ainda em andamento.
- Um terminal serial, como o PuTTY, deixado conectado à porta.
- Uma ferramenta de gravação de firmware que abriu a porta e não a liberou.
- Outro programa de gravação a laser ainda em execução, mesmo minimizado.
- Uma segunda cópia do Beam Bench, outra janela ou outra instância.
Se você estiver no Linux
O detalhe no erro mostra "Permission denied" e, no Linux, isso quase sempre significa que sua conta de usuário não está no grupo dialout. É um problema de permissões, não de um programa mantendo a porta: quando outro programa está usando a porta, o Linux normalmente informa que ela está ocupada, não que o acesso foi negado. Consulte Permissões seriais no Linux para saber como corrigir.
Se você já estiver no grupo dialout e ainda vir isso, procure um programa que esteja mantendo a porta com acesso exclusivo: um terminal serial (screen, minicom), uma ferramenta de gravação ou outra instância do Beam Bench. Feche-o e reconecte.
Se você estiver no macOS
É menos comum, mas a regra é a mesma: um terminal serial ou outro programa com a porta aberta impede que o Beam Bench a abra. Feche-o e reconecte.
Etapas gerais que resolvem a maioria dos casos
- Feche todos os programas que possam se comunicar com uma porta serial: Arduino IDE, PlatformIO, um terminal serial, uma ferramenta de gravação de firmware, outro programa de gravação a laser, uma segunda cópia do Beam Bench.
- Desconecte o cabo USB do controlador.
- Aguarde alguns segundos.
- Conecte-o novamente.
- Reconecte no Beam Bench.
Se você não conseguir encontrar o que está usando a porta
Reinicie o computador. Uma reinicialização libera todas as portas mantidas abertas, inclusive as que você não consegue localizar. Se o Beam Bench se conectar normalmente logo após uma reinicialização e o erro voltar mais tarde, o responsável é algo que você abriu nesse intervalo.
Ainda não resolveu?
- A máquina não conecta: falhas de conexão mais amplas, incluindo porta incorreta e taxa de transmissão incorreta.
- Permissões seriais no Linux: configuração do grupo
dialoutno Linux. - Painel Diagnóstico de Conexão: acompanhe o registro de eventos durante uma tentativa de conexão.
- Publique no grupo do Facebook informando seu sistema operacional e o que mais estava aberto quando isso aconteceu.