Serial port access is denied
The port is listed and selected, but every connect attempt fails instantly with an access or permission error.
You see
The port shows up in the dropdown. You pick it, click Connect, and it fails immediately, not after a timeout or a few seconds of trying. The error names your port and reads something like:
access denied opening COM7: Access is denied. Another application may already be using this serial port. Close other laser or serial software, unplug and reconnect the controller, then try again.
The wording depends on the OS. On Windows the detail reads "Access is denied" and the message suggests closing other software, which is the usual cause there. On Linux and macOS the detail reads "Permission denied" and the message points at serial device permissions instead:
access denied opening /dev/ttyUSB0: Permission denied. Your user account may not have permission to open serial devices. On Linux, add your user to the dialout group (or your distro's serial group), then log out and back in.
What is happening
The port is real and Beam Bench can see it, the problem is opening it. Only one program can hold a serial port open at a time. Something else already has it open, so the operating system refuses the second open and Beam Bench reports it as denied rather than timing out during the handshake.
Beam Bench cannot take a port away from another program. The fix is always on your end: find and close whatever already has it.
Fix
If you are on Windows
This is where it happens almost every time. Check for:
- Arduino IDE with the Serial Monitor open, or a board still selected on the same COM port.
- PlatformIO's serial monitor, or an upload still in progress.
- A serial terminal such as PuTTY left connected to the port.
- A firmware flashing tool that opened the port and did not release it.
- Another engraving program still running, even minimized.
- A second copy of Beam Bench, another window or another instance.
If you are on Linux
The detail in the error reads "Permission denied", and on Linux that almost always means your user account is not in the dialout group. It is a permissions problem, not a program holding the port: when another program does have the port, Linux usually reports it as busy, not denied. See Linux serial permissions for the fix.
If you are already in dialout and still see this, check for a program holding the port with exclusive access: a serial terminal (screen, minicom), a flashing tool, or another Beam Bench instance. Close it and reconnect.
If you are on macOS
Less common, but the rule is the same: a serial terminal or another program with the port open blocks Beam Bench from opening it. Close it and reconnect.
General steps that fix most cases
- Close every program that might talk to a serial port: Arduino IDE, PlatformIO, a serial terminal, a firmware flashing tool, another engraving program, a second copy of Beam Bench.
- Unplug the controller's USB cable.
- Wait a few seconds.
- Plug it back in.
- Reconnect in Beam Bench.
If you cannot find what is holding the port
Reboot. A reboot releases every held port, even ones you cannot track down. If Beam Bench connects cleanly right after a reboot and the error comes back later, whatever you opened in between is the culprit.
Still stuck?
- Machine will not connect: broader connection failures, including wrong port and wrong baud rate.
- Linux serial permissions:
dialoutgroup setup on Linux. - Connection Diagnostics panel: watch the events log during a connect attempt.
- Post in the Facebook group with your OS and what else was open when it happened.