artemis blackboard nano com port busy

I’m having a problem with my brand new BlackBoard Artemis Nano. I’m on Windows 10 with Arduino IDE 1.8.9.

Every time I try to upload I get the error message:

“COMx is currently open. Please close any other terminal programs that may be using COMx and try again.”

I have no other program running that would be using the com ports. I’ve restarted the computer several times, made sure drivers were up to date. With device manager open I disconnect and reconnect the artemis to make sure I’ve got the right com port selected.

When I open the serial monitor with the module connected I get the following

Test Artemis Nano

Failed pin 15

Failed pin 13

Failed pin 11

Failed pin 9

Failed pin 7

Failed pin 5

Failed pin 3

Failed pin 1

I’m thinking the module failed some sort of self test and is holding the serial port open so the code can’t upload. Any clues?

Not sure if this is your issue, but if the board starts outputting serial data while the USB enumerates, Microsoft, in their infinite wisdom, decides that it is a mouse, and loads a mouse driver, which steals the port. I get around this by holding reset before plugging in the arduino, and keep holding it until the USB enumerates.

/mike

n1ist – woah, that is good to know about. Thanks for sharing.

fugalster – what version of the Arduino core are you using? That message usually comes as part of a COM port identification helper function that is called when the desired COM port can’t be opened (which would support what n1ist said). Does the suggestion to hold reset help you?

Hi all,

I’m experiencing the exact same conditions as “fugalster”. I also have the same setup, new BlackBoard Artemis Nano. I’m on Windows 10 with Arduino IDE 1.8.9.

Tried “n1ist” suggestion w.r.t. to holding reset before plugging in the Arduino, that didn’t help either .

Any help would be greatly appreciated.

Having the same difficulty here. The holding of reset button does not work.

Windows 10 | Arduino IDE 1.8.9 | Apollo3\1.0.4

I double-checked the driver on COM5, and I believe it is the correct driver: USB-SERIAL CH340 – I also reinstalled using the ch340c hookup guide.

Still, can’t get any program to upload if I connect the Serial Monitor the output is exactly the same as noted by @fugalster

Additionally, I’ve tried the same board with a MacBook Pro and it also didn’t work.


After an hour of troubleshooting, and starting to write this message and verify on the mac to get my story straight… it worked. :\

I wish I had better insight into what changed.

I am also getting the same set of issues. Just trying out different things I get a different error if I slow the connection rate down to 57600.

ALSO this may work for some others… Just to try, I changed the bootloader to the Ambiq Secure from the Sparkfun Variable loader, as soon as I did that the upload proceeded immediately.

Tried the Sparkfun bootloader again, still won’t work.

Thanks for the suggestions. I’ve tried both holding down the reset button until device manager shows the device and changing the bootloader to ambiq. Neither solves the problem, but the ambiq bootloader gives a different error filled with java mumbo jumbo. I’ve also tried running Arduino IDE as an admin and slowing down the baud rate to no avail.

I verified that windows is using the CH340 driver. IDE version is 1.8.9 (Windows Store 1.8.21.0) and SparkFun Apollo3 version 1.0.4 in Boards Manager.

In case the ambiq "java mumbo jumb"o is important to anybody, here it is. Looks like it’s missing a file.

java.io.IOException: Cannot run program “C:\Users\fugaln1\Documents\ArduinoData\packages\SparkFun\hardware\apollo3\1.0.4/tools/ambiq/windows/ambiq_bin2board.exe”: CreateProcess error=2, The system cannot find the file specified

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)

at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)

at cc.arduino.packages.uploaders.SerialUploader.runCommand(SerialUploader.java:383)

at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:197)

at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)

at processing.app.SketchController.upload(SketchController.java:732)

at processing.app.SketchController.exportApplet(SketchController.java:703)

at processing.app.Editor$UploadHandler.run(Editor.java:2070)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified

at java.lang.ProcessImpl.create(Native Method)

at java.lang.ProcessImpl.(ProcessImpl.java:386)

at java.lang.ProcessImpl.start(ProcessImpl.java:137)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

… 9 more

An error occurred while uploading the sketch

I tried another Hail Mary (hint: it didn’t work). Thinking it might be the Windows Store version of the IDE I uninstalled everything and reinstalled from the executable. Same errors as before.

I did try re-burning the SVL bootloader as suggested in the Artemis troubleshooting guide, but when attempting to do so I get the same error as when trying to use the ambiq bootloader. It seems that the file “amiq_bin2board.exe” is missing, perhaps others as well. Seems like this would be a bug in the SparkFun Apollo3 package that board manager installs.

My best guess right now is that the SVL is the culprit of the upload problems, but it can’t be re-burned without the files to support the ambiq bootloader.

Hi everyone,

TLDR: Update to the v1.0.5 release for additional improvements to both the SVL and Ambiq Secure Bootloader programs.

There is a lot going on here but I’ll try my best to address what I can (in chronological order from start of this thread):

  1. “COMx is currently open. Please close any other terminal programs that may be using COMx and try again.”

This should only occur when the serial port you’ve chosen could not be opened. Was the right port selected from the tools menu? Can you connect to that same port with a program such as [CoolTerm? The “Test Artemis Nano” output is unrelated to bootloading.

Also repeating this potentially enlightening tip from ‘/mike’:

“Not sure if this is your issue, but if the board starts outputting serial data while the USB enumerates, Microsoft, in their infinite wisdom, decides that it is a mouse, and loads a mouse driver, which steals the port. I get around this by holding reset before plugging in the arduino, and keep holding it until the USB enumerates.”

  1. Changing Bootloader to ‘Ambiq Secure Bootloader’ Works, but SparkFun Variable Loader still Doesn’t

The SparkFun Variable Loader recently got a big upgrade in the Arduino IDE, but we can’t push the necessary changes to the bootloader on your development board. If SVL is not working the first step is to use “Burn Bootloader” (select 'Ambiq Secure Bootloader from the ‘tools->Programmer’ menu first). If the burn is successful try the SVL again.

  1. “Cannot run program ‘…/ambiq_bin2board.exe’ The system cannot find the file specified.”

AFAIK there have been no IDE releases that should be expected to have this problem. Perhaps the file was accidentally moved, deleted, or renamed? Try making sure that the executable is indeed at the expected filepath.

  1. “Ambiq Secure Bootloader fails when board is hammering out UART data”

Known problem of old ASB scripts. Should be fixed in v1.0.5 of the Arduino core.

Please update to the core version v1.0.5 and re-burn the SparkFun Variable Loader using the Ambiq Secure Bootloader. If you are still having trouble after that please let us know.

Thanks for being involved in this effort!](https://freeware.the-meiers.org/)

Thank you very much “liquid.soulder”, glad you had some time to get this working. After doing the “Board Manager” update to version 1.0.5, I followed step 2 and all is working perfectly for me now.

Awesome!

I am not sure how related this is but I just got my Artemis Nano and I can see the board show up on any serial port. I am using a mac (Macbook Pro Touch ID, macOS Mojave) and in Arduino → Tools → Port, no available port shows.

I have tried holding down reset before plugging in but no luck. Serial ports don’t show up even in CoolTerm or when I list available serial ports in terminal via: ls /dev/cu.*. Please advice. Thanks.

tgclaxt0n - glad to hear some good news! (Usually I only hear about problems haha)

jareality - will you please open a new topic about your problem? I might be able to help but it would be more visible to others in the future if you made a new topic with a title like ‘Nano COM Port Not Found’ or something like that

Ok, after updating to 1.0.5 all the problems are gone. Thanks for the fix!

Hi,

This problem is now plaguing me with Ubuntu 18.04 and a brand new Artemis Nano. I managed to install the Sparkfun Apollo stuff in the Arduino IDE 1.8.9, once the server came back up this afternoon, but now simply trying to upload a compiled blink sketch i get this:

/dev/ttyUSB0 is currently open. Please close any other terminal programs that may be using /dev/ttyUSB0 and try again.

There are definitely no other USB devices plugged in and the tty becomes available in the ide only when the Artemis is plugged in. I am a member of the dialout group on this computer and the port has rw access as below

$ groups

adm dialout cdrom sudo dip plugdev lpadmin sambashare docker

$ ls -la /dev/ttyUSB0

crw-rw---- 1 root dialout 188, 0 Aug 1 21:10 /dev/ttyUSB0

By the way, trying to install the Apollo stuff in the Arduino ide on a windows 10 virtual machine gives a CRC file corruption error, so no joy there either.

Any help on this one?

Thanks,

Steve

Sorry about the CRC error - I’ll have a fix shortly once we find a good place to host the modified Windows distribution of the ARM tools. This is needed b/c Arduino discards the top level directory from the Windows .zip (https://developer.arm.com/-/media/Files … 8-q4-major). We need to add a top level directory then re-zip and host it.

This “port already open” error is perplexing me. If you have python installed on your computer you can redirect the upload tool to run the upload source code (‘tools\artemis\artemis_svl.py’). Do that by modifying ‘platform.txt’

Change

tools.artemis_svl.pgm={runtime.platform.path}/tools/artemis/linux/artemis_svl

to

tools.artemis_svl.pgm=python3 {runtime.platform.path}/tools/artemis/artemis_svl.py

That way you can see how the code works and maybe help figure out why this is happening. (For reference it does not occur on Mac)

Hi everyone - if you are having the “COM Port Busy” error with the SVL it is most likely an indication that you need to upgrade the SVL bootloader firmware on your board.

The instructions are at the top of this post: viewtopic.php?f=163&t=50480&p=206258#p206258