Can't select port on Nano 33 ble sense board

Followed the instructions under getting started for the Nano 33 ble sense board. First tried on my windows 10 laptop but it did not appear to be connecting properly, as it would not let me select the port under the Tools menu when using Arduino IDE. Tried using the reset button on the board, and tinkering in the Device Manager but could not get anything going.

Switched to my laptop with Ubuntu 18.04 LTS, downloaded Arduino IDE, and the same issue, I download nRF528x (Mbed OS) and then select the Nano 33 ble board and am unable to select the port.

Do I have a defective board? Is there something else that I can try?

Pretty much a noob, so any help getting me started, or headed in the right direction would be much appreciated.

Edit: Tried uploading an example sketch and the following error was returned:

Arduino: 1.8.10 (Linux), Board: "Arduino Nano 33 BLE"

Sketch uses 72532 bytes (7%) of program storage space. Maximum is 983040 bytes.
Global variables use 1408 bytes (0%) of dynamic memory, leaving 260736 bytes for local variables. Maximum is 262144 bytes.
Couldn't find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Make sure you have fully inserted the USB cable into the jack on the board and your computer.

Some Arduino boards come with their pins pressed into a black foam. This foam is conductive so you need to remove it before using your board.

Try a different USB cable. Yours might be damaged, defective, or charge-only.

I have just received a Nano 33 BLE (not the sense version) and have the same problem. I've found a few suggestions but the usb driver still does not work, just comes up with CDC device in device manager, runing Windows 7. Other Nano and Uno boards work fine. I've also tried re-installing the board with the boards manager and it still doesn't work.

I just received 2 of the NANO BLE SENSE boards and can't get them to display on my mac at all. I've never done anything on Arduino but I've been developing software for applications and mobile for the last 10 years yet I can't figure out how to get this thing to work.

In the right button corner, it's showing the usb connection

This is what it's showing there:

Adruino Nano 33 BLE on /dev/cu.usbmomem1421

But when I compile some sample application and try to export it on the device I get nowhere. Also in the Tools > Ports, I can only see Bluetooth connections. One to my airpods, another is Bluetooth-Incoming-Port.

I do get lucky and sometimes I can push my code on the device, but then that connection does disappear and I then get an error trying to open plotter or monitor

Board at dev/cu.usbmomem1421 is not available

What is the solution here?
I'm using macOS High Siera and am using Arduino 1.8.10

Thank you!

PS. I tried on Arduino 1.9.0 Beta and had no luck either. Connecting both Arduino to the usb ports at the same time didn't make a difference either))

Exact same issue. Nano 33 BLE Sense.

I was able to upload some sketches a couple days ago.

Today I can’t get the IDE to connect to the board. The Port option is grayed out. I’m using Win 10.

Okay, nevermind, at least in my case it was a bad cable. I've replaced the USB cable and now it works.

1 Like

something similar happen to me, the BLE nano 33 worked fine.
someday I couldn't find the port.
in my case uninstall and reinstall fixed it.

I have a similar problem but it is not due to bad cables. I think it might have something to do with the boot loader. If I plug it it, it shows no port. If I double-tap the reset, the port shows up (com29) and it uploads the program then the port disappears. If I then double-tap the reset, the port comes back and I can open the serial monitor but I get no output.

The other day it behaved differently. It would show up as com28 without any issues but after uploading, it switched to com29. I had to then select com28 to use the serial monitor which worked.

I expanded the code as I worked on it and later it gave me these errors after compiling:

Among others ...
\HCICordioTransport.cpp:152:15: error: 'wait_us' was not declared in this scope
C:\Users...\Documents\Arduino\libraries\ArduinoBLE\src\utility\HCICordioTransport.cpp:152:15: note: suggested alternative: 'init_wsf'

I read somewhere that I should use the the development board so I switched the board I was using
from: a) Mbed OS boards (nRf52840/STM32H747)
to: b) nRF528x Boards (MbedOS)

After uploading, the problem started where it wouldn't recognize the port without double-tapping the reset.
Is there something wrong with the boot loader. Could it be that the original was erased?

Try this:

  • File > New
  • Double tap to put the board in reset mode.
  • Tools > Port > select the port of the Nano 33 BLE
  • Sketch > Upload

Does the issues still occur after you have uploaded the bare minimum sketch? If not, you know that the code of your previous sketch is the cause.

The tricky thing about the boards with native USB functionality like your board is that the USB code that creates the CDC serial port is running on the same microcontroller as your sketch. This means your sketch code can break the USB code, or stop it from running.


So your suggestion to compile a nul code restored it so it comes up as com28. Thanks.

Now I’m trying to figure out how to avoid it. I put some of my code back and crept up to the problem. It compiles OK then switches to com29 and uploads it. After, it lists com28 but it no longer is selected. If I don’t select it, Serial monitor says it can’t find com29. If I select it, it works normal.

I then add some more code and this is where it stops working. It compiles OK, internally switches to com29 to upload it, but now com28 is no longer listed so I can’t bring up the Serial monitor.

What I added is calls to set a timer interrupt. Can you tell my why it erases the serial port? Does it not like the interrupt?

This is what’s added:

volatile long fcnt = 0;
const int CLK = 4;
const int freqconst = 40;

void timer_setup()
NRF_TIMER4->CC[0] = freqconst;


void TIMER4_IRQHandler_v()
// keep track of where we are
// toggle clock line
digitalWrite( CLK, digitalRead( CLK ) ^ 1 );

I’ve isolated it to only one line:


It was not what the interrupt was asked to do since I emptied that. It was enabling the interrupt itself.

It was USB Cable also…

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.