Odmowa dostępu do portu szeregowego
Port połączenia jest widoczny i wybrany, ale każda próba połączenia kończy się natychmiast błędem dostępu lub uprawnień.
Objawy
Port połączenia pojawia się na liście rozwijanej. Wybierasz go, klikasz Połącz, a połączenie natychmiast kończy się niepowodzeniem , nie po przekroczeniu limitu czasu ani po kilku sekundach próby. Błąd zawiera nazwę portu i wygląda mniej więcej tak:
odmowa dostępu podczas otwierania COM7: dostęp jest zabroniony. Inna aplikacja może już używać tego portu szeregowego. Zamknij inne oprogramowanie lasera lub terminala szeregowego, odłącz i ponownie podłącz kontroler, a następnie spróbuj ponownie.
Treść zależy od systemu operacyjnego. W systemie Okna szczegół brzmi "Access is denied", a komunikat sugeruje zamknięcie innych programów, co jest tam najczęstszą przyczyną. W systemach Linux i macOS szczegół brzmi "Permission denied", a komunikat wskazuje raczej na uprawnienia do urządzeń szeregowych:
odmowa dostępu podczas otwierania /dev/ttyUSB0: brak uprawnień. Konto użytkownika może nie nie mieć uprawnień do otwierania urządzeń szeregowych. W systemie Linux dodaj użytkownika do grupy dialout (lub grupy urządzeń szeregowych używanej przez dystrybucję), a następnie wyloguj się i zaloguj ponownie.
Co się dzieje
Port połączenia istnieje i Beam Bench go widzi , problemem jest jego otwarcie. Tylko jeden program może jednocześnie utrzymywać otwarty port szeregowy. Inny program już go otworzył, więc system operacyjny odmawia drugiego otwarcia, a Beam Bench zgłasza odmowę zamiast przekroczenia limitu czasu podczas uzgadniania połączenia.
Beam Bench nie może odebrać portu innemu programowi. Rozwiązanie zawsze leży po Twojej stronie: znajdź program, który już go używa, i zamknij go.
Rozwiązanie
Okna
W systemie Okna dzieje się to niemal za każdym razem z jednego z poniższych powodów. Sprawdź, czy nie działa:
- Zamknij program do obsługi elektroniki Arduino IDE, jeśli ma otwarty monitor portu szeregowego albo nadal wybraną płytkę na tym samym porcie COM.
- Monitor portu szeregowego PlatformIO albo trwające przesyłanie programu.
- Terminal szeregowy, taki jak PuTTY, nadal połączony z portem.
- Narzędzie do wgrywania firmware’u, które otworzyło port i go nie zwolniło.
- Inny uruchomiony program do grawerowania, nawet jeśli jest zminimalizowany.
- Druga kopia Beam Bench, inne okno lub inna instancja.
Linux
Szczegół w błędzie brzmi "Permission denied" i w systemie Linux niemal zawsze oznacza, że konto użytkownika nie należy do grupy dialout. Jest to problem z uprawnieniami, a nie programem zajmującym port: gdy port jest używany przez inny program, Linux zwykle zgłasza go jako zajęty, a nie niedostępny. Rozwiązanie opisano na stronie Uprawnienia portu szeregowego w systemie Linux.
Jeśli należysz już do grupy dialout, a błąd nadal się pojawia, sprawdź, czy jakiś program nie zajmuje portu z dostępem wyłącznym: terminal szeregowy (screen, minicom), narzędzie do wgrywania firmware’u lub inna instancja Beam Bench. Zamknij ten program i połącz się ponownie.
macOS
Zdarza się to rzadziej, ale zasada jest taka sama: terminal szeregowy lub inny program, który ma otwarty port, blokuje Beam Bench przed jego otwarciem. Zamknij ten program i połącz się ponownie.
Ogólne czynności, które rozwiązują większość problemów
- Zamknij każdy program, który może komunikować się z portem szeregowym: Arduino IDE, PlatformIO, terminal szeregowy, narzędzie do wgrywania firmware’u, inny program do grawerowania lub drugą kopię Beam Bench.
- Odłącz kabel USB kontrolera.
- Odczekaj kilka sekund.
- Podłącz kabel ponownie.
- Połącz się ponownie w Beam Bench.
Jeśli nie możesz znaleźć programu zajmującego port
Uruchom ponownie komputer. Ponowne uruchomienie zwalnia wszystkie zajęte porty, nawet te, których nie można namierzyć. Jeśli Beam Bench po ponownym uruchomieniu łączy się bez problemu, a błąd wraca później, przyczyną jest program otwarty w międzyczasie.
Nadal problem?
- Nie można połączyć maszyny: szerszy opis problemów z połączeniem, w tym nieprawidłowego portu i szybkości transmisji.
- Uprawnienia portu szeregowego w systemie Linux: konfiguracja grupy
dialoutw systemie Linux. - Panel Diagnostyka połączenia: obserwowanie dziennika zdarzeń podczas próby połączenia.
- Opublikuj post w grupie na Facebooku, podając używany system operacyjny i informacje o tym, jakie inne programy były otwarte, gdy wystąpił problem.