I’ve recently fiddled with the settings under Tools in the IDE, to upload code to a Daisy Seed board , following these instructions . This required changing the board to STM32 MCU based boards, after which a bunch of other choices appear in the IDE that are not there when the chosen board is an Arduino UNO. After switching back to choosing an Arduino UNO, the IDE shows the board’s port (/dev/ttyACM0 on my Debian system), but when I try to upload code to it, I get the following error:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
Failed uploading: uploading error: exit status 1
I tried a few different programmers like Arduino as ISP, ArduinoISP, or AVRISP mkII from the Tools -> Programmer menu, but no luck.
Anyone knows how I can reset the IDE to be able to upload code to my Arduino boards again?
My IDE is 2.3.5 on a Debian 13 system.
Thanks.
P.S. I checked a bunch of other similar posts, but none seemed to provide an answer to my problem.
Answering to myself, hopefully anyone in the future having the same issue will read this. I had several IDE windows open, and one of the had the serial monitor open, which was blocking the IDE from uploading code to my board. Since I’m on Linux, I read this from Arduino’s website and did a lsof /dev/ttyACM0 in the terminal, which gave this:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
serial-mo 7307 alex 3u CHR 166,0 0t0 719 /dev/ttyACM0
and then did ps 7307 (the PID of the process), which returned this:
PID TTY STAT TIME COMMAND
7307 ? Sl 0:00 /home/alex/.arduino15/packages/builtin/tools/serial-monitor/0.15.0/serial-monitor
telling me that the IDE’s serial monitor was using the port. I found the IDE window with the open serial monitor, closed the monitor and was finally able to upload code.
BTW, the programmer I have chosen is AVRISP mkII. I think this is the correct one, right?
Thanks for taking the time to post an update with your findings @alexandros301 !
The Arduino IDE developers are tracking the bug where Serial Monitor interferes with the upload here:
opened 07:07AM - 23 Dec 22 UTC
topic: code
type: imperfection
### Describe the problem
In order to upload to an Arduino board via a serial po… rt, the upload tool (e.g., [**AVRDUDE**](https://github.com/avrdudes/avrdude)) must be able to open the port. This is not possible if another process already has control of the port.
Arduino IDE's "Serial Monitor" and and "Serial Plotter" components also use the serial port of the board. Arduino IDE handles this potential conflict of port usage automagically by closing the port in Serial Monitor/Plotter when an upload process is triggered, then opening it again after the upload is finished. This means no special action is needed from the user to upload while Serial Monitor/Plotter is open.
🐛 The upload fails with an "`Access is denied`" error under the following conditions:
- The board uses an FTDI FT232R USB chip
- Arduino IDE is running on a Windows machine
- Serial Monitor or Serial Plotter is open
I've been using Arduino IDE 2.0.3 with Nano without issues when uploading on Ubuntu. Now I've tried it on Windows 11, and most of the time, it gives me this error:
```text
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\macie\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "\\.\COM5": Access is denied.
```
But I can see logs from the serial monitor in Arduino IDE -> serial monitor.
### To reproduce
#### Equipment
A board or other device that has an [FTDI FT232R](https://ftdichip.com/products/ft232rl/) USB chip.
The [classic **Arduino Nano**](https://docs.arduino.cc/hardware/nano) is a common board that uses this chip.
FT232R modules ([example](https://docs.arduino.cc/retired/other/usb-serial-converter)) or cables ([example](https://www.sparkfun.com/products/9717)) are also often used to upload to boards such as the [**Arduino Pro Mini**](https://www.sparkfun.com/products/11113) that don't have an integrated USB chip.
The fault can be reproduced even if the FTDI-based device is not an Arduino board. In this case, the upload is expected to fail, but it would fail with a "`not in sync`" error instead of "`Access is denied`".
#### Steps
1. Select **File > New Sketch** from the Arduino IDE menus.
1. Connect the Arduino board to your computer.
1. Select the board and port from the Arduino IDE menus.
1. If the Serial Monitor view is not already open, select **Tools > Serial Monitor** from the Arduino IDE menus to open it.
1. Select **Sketch > Upload** from the Arduino IDE menus.
1. Wait for the upload process to finish.
🐛 The upload fails:
```text
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\macie\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "\\.\COM5": Access is denied.
```
1. Click the **X** icon on the "**Serial Monitor**" view tab in the bottom panel.
1. Select **Sketch > Upload** from the Arduino IDE menus.
1. Wait for the upload process to finish.
🙂 The upload is successful.
1. Select **Tools > Serial Plotter** from the Arduino IDE menus.
1. Select **Sketch > Upload** from the Arduino IDE menus.
1. Wait for the upload process to finish.
🐛 The upload fails:
```text
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\macie\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "\\.\COM5": Access is denied.
```
1. Close the "**Serial Plotter**" window.
1. Select **Sketch > Upload** from the Arduino IDE menus.
1. Wait for the upload process to finish.
🐛 The upload fails:
```text
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\macie\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "\\.\COM5": Access is denied.
```
**ⓘ** This unexpected result is caused by a separate bug: https://github.com/arduino/arduino-ide/issues/1423
### Expected behavior
Serial Monitor and Serial Plotter do not interfere with upload process.
### Arduino IDE version
#### Original report
2.0.3
#### Last verified with
2.3.3
### Operating system
Windows
### Operating system version
Edition Windows 11 Pro
Version 22H2
Installed on 07/11/2022
OS build 22621.963
Experience Windows Feature Experience Pack 1000.22638.1000.0
### Additional context
I bisected the introduction of the fault to df8658e
---
Logs generated from an upload that fails with this fault using the build for 053574b with the `arduino.cli.daemon.debug` [advanced setting](https://github.com/arduino/arduino-ide/blob/main/docs/advanced-usage.md#advanced-settings) set to `true`:
[2023-08-16_log.log](https://github.com/arduino/arduino-ide/files/12357046/2023-08-16_log.log)
---
I have no problems uploading sketches on Arduino IDE 1.8.19 from Microsoft Store on the same system. I can quit 2.0.3, start 1.8.19, and it's working immediately.
---
I cannot reproduce the fault on Linux (Ubuntu 22.04) or macOS (Ventura).
---
I cannot reproduce the fault when using native USB boards (e.g., [**Leonardo**](https://docs.arduino.cc/hardware/leonardo), [**MKR**](https://docs.arduino.cc/#mkr-family)) or boards that use other models of dedicated USB chip (e.g., ATmega16U2 on Uno and Mega, WCH CH340 on derivative boards).
<a name="workaround"></a>
#### Workaround
<a name="serial-monitor"></a>
##### Serial Monitor
1. Click the **X** icon on the "**Serial Monitor**" tab in the bottom panel of the Arduino IDE window to close the tab:

1. Upload the sketch.
1. Open **Serial Monitor** again if needed (by clicking the icon on the IDE toolbar or the **Tools > Serial Monitor** menu item) after the upload is finished.
<a name="serial-plotter"></a>
##### Serial Plotter
1. Close the "**Serial Plotter**" window.
1. If the "**Serial Monitor**" view is not already open, select **Tools > Serial Monitor** from the Arduino IDE menus to open it.
**ⓘ** We must do an open/close cycle on **Serial Monitor** as a workaround for [a bug](https://github.com/arduino/arduino-ide/issues/1423) in **Serial Plotter**
1. Click the **X** icon on the "**Serial Monitor**" tab in the bottom panel of the Arduino IDE window to close the tab:

1. Upload the sketch.
1. Open **Serial Monitor** and/or **Serial Plotter** again if needed after the upload is finished.
#### Additional reports
- https://github.com/arduino/arduino-ide/issues/1937
- https://github.com/arduino/arduino-ide/issues/726#issuecomment-1464313325
- https://github.com/arduino/arduino-ide/issues/1783#issuecomment-1614370292
- https://github.com/arduino/arduino-ide/issues/1783#issuecomment-2196936864
- https://github.com/arduino/arduino-ide/issues/2837
- https://www.reddit.com/r/arduino/comments/1bhwt6f/access_is_denied_error_on_nano/
- https://forum.arduino.cc/t/brand-new-nano-wont-connect-to-latestide-software/1129473/10
- https://forum.arduino.cc/t/arduino-nano-not-able-to-upload-comx-port-access-denied/1081669/15
- https://forum.arduino.cc/t/elusive-uno-upload-error-access-is-denied/1067785/5
- https://forum.arduino.cc/t/fdti-breakout-2-types-cause-usb-acess-denial/1088005
- https://forum.arduino.cc/t/port-access-is-denied/1089761
- https://forum.arduino.cc/t/cant-open-device-when-uploading-but-serial-monitor-works/1127731
- https://forum.arduino.cc/t/2-1-0-no-longer-disables-monitor-during-upload-update/1139065
- https://forum.arduino.cc/t/access-denied-when-uploading-to-arduino-nano/1139330/1
- https://forum.arduino.cc/t/access-denied-when-uploading-to-arduino-nano/1139330/11
- https://forum.arduino.cc/t/2-11-com3-access-is-denied/1143750
- https://forum.arduino.cc/t/cannot-upload-to-arduino-nano/1145391
- https://forum.arduino.cc/t/cant-upload-to-pro-mini-port-access-is-denied/1152460
- https://forum.arduino.cc/t/cannot-upload-to-ftdi-megas-only/1170683
- https://forum.arduino.cc/t/arduinon-nano-access-denied/1181808/6
- https://forum.arduino.cc/t/avrdude-ser-open-cant-open-device/1228096
- https://forum.arduino.cc/t/avrdude-ser-open-cant-open-device-com9-access-is-denied/1205151
- https://forum.arduino.cc/t/exit-status-1-only-sometimes/1180375
- https://forum.arduino.cc/t/have-to-kill-serial-monitor-exe-to-upload-to-the-board/1173764
- https://forum.arduino.cc/t/arduino-nano-not-recognised-correctly/1133051
- https://forum.arduino.cc/t/brand-new-nano-wont-connect-to-latestide-software/1129473
- https://forum.arduino.cc/t/arduino-nano-avrdude-ser-open-cant-open-device-com5-access-is-denied/1124189
- https://forum.arduino.cc/t/i-have-a-problem-while-uploading-to-arduino-pro-mini/1255072
- https://forum.arduino.cc/t/problem-uploading-to-nano/1267124
- https://forum.arduino.cc/t/nano-appears-as-com6-and-doesnt-work/1273314
- https://forum.arduino.cc/t/com-port-disconnects-when-open-arduino-ide/1299780
- https://forum.arduino.cc/t/com-port-issues/1304755
- https://forum.arduino.cc/t/upload-to-pro-mini-fails-avrdude-ser-open-cant-open-device-com8-access-is-denied/1315064
- https://forum.arduino.cc/t/avrdude-ser-open-cant-open-device-com6-access-is-denied/1319310
- https://forum.arduino.cc/t/programming-issue-on-ide-2-3-4/1342261
- https://forum.arduino.cc/t/arduino-2-plus-ftdi/1345595
- https://forum.arduino.cc/t/unable-to-rewrite-sketch-on-a-non-genuine-uno/1345988
- https://forum.arduino.cc/t/most-attempts-to-upload-fails-arduino-nano/1362201
- https://forum.arduino.cc/t/nano-access-denied/1368729
- https://forum.arduino.cc/t/access-denied-error-while-uploading/1376244
- https://forum.arduino.cc/t/permission-denied-on-second-upload/1383025
- https://forum.arduino.cc/t/cant-upload-to-my-board-while-serial-monitor-is-open/1405061
- This seems to indicate that the bug also affects boards with the [FTDI FT231X](https://ftdichip.com/products/ft231xs/) chip, which is used on the current models of the [**SparkFun RedBoard**](https://www.sparkfun.com/sparkfun-redboard-programmed-with-arduino.html).
- https://forum.arduino.cc/t/arduino-ide-not-uploading-code-to-nano-when-serial-monitor-is-open/1405443
- https://forum.arduino.cc/t/same-file-positions-for-1-8-and-2-3/1405967
- https://forum.arduino.cc/t/arduino-ide-first-upload-after-reboot-ok-but-com-access-refused-afterwards-while-manually-uploading-using-avrdude-still-succeeds-at-the-same-time/1407273
- https://forum.arduino.cc/t/cant-upload-code-to-arduino-boards-after-changing-settings/1429736
#### Related
- https://forum.arduino.cc/t/issue-with-flashing-esp32-dev-kit-with-arduino-ide/1117755
- https://forum.arduino.cc/t/port-issues-with-ide-2-0-3/1069090
- https://forum.arduino.cc/t/arduino-2-plus-ftdi/1345595
### Issue checklist
- [X] I searched for previous reports in [the issue tracker](https://github.com/arduino/arduino-ide/issues?q=)
- [X] I verified the problem still occurs when using the latest [nightly build](https://www.arduino.cc/en/software#nightly-builds)
- [X] My report contains all necessary details
The Tools > Programmer menu selection is only used when you are doing Tools > Burn Bootloader or "Upload Using Programmer ". When you're doing a standard "Upload ", the Tools > Programmer menu selection is completely ignored. So it makes no difference at all what you have selected from the Tools > Programmer menu.