Once you have the Bluefruit nRF52 BSP setup on your system, you need to select the appropriate board, which will determine the compiler and expose some new menus options:
1. Select the Board Target
- Go to the Tools menu
- Select Tools > Board > Adafruit Bluefruit nRF52 Feather for nRF52832-based boards
- Select Tools > Board > Adafruit Bluefruit nRF52840 Feather Express for nRF52840-based boards
- Select Tools > Board > Adafruit CLUE for the Adafruit CLUE
2. Select the USB CDC Serial Port
Finally, you need to set the serial port used by Serial Monitor and the serial bootloader:
- Go to Tools > Port and select the appropriate device
2.1 Download & Install CP2104 Driver (nRF52832)
For Feather nRF52832 If you don't see the serial ports device listed, you may need to install the SiLabs CP2104 driver on your system.
On MacOS If you see this dialog message while installing driver
On MacOS If you see this dialog message while installing driver, System Extension Blocked
And cannot find the serial port of CP2104, it is highly possible that driver is blocked.
To enable it go to System Preferences -> Security & Privacy and click allow if you see Silab in the developer name.
2.2 Download & Install Adafruit Driver (nRF52840 Windows)
For Feather nRF52840, If you are using Windows, you will need to follows Windows Driver Installation to download and install driver.
3. Update the bootloader (nRF52832 Feather Only)
To keep up with Nordic's SoftDevice advances, you will likely need to update your bootloader
Follow this link for instructions on how to do that
4. Run a Test Sketch
At this point, you should be able to run a test sketch from the Examples folder, or just flash the following blinky code from the Arduino IDE:
#if defined(USE_TINYUSB) #include <Adafruit_TinyUSB.h> // for Serial #endif void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
This will blink the red LED beside the USB port on the Feather, or the red LED labeled "LED" by the corner of the USB connector on the CLUE.
If the sketch fails to compile and reports an error message like this:
collect2.exe: error: ld returned 1 exit status
exit status 1
Compilation error: exit status 1
Look in the rest of the compile message output (turn on verbose output if needed) and check if the actual error(s) look something like:
undefined reference to `Adafruit_USBD_CDC::begin(unsigned long)
undefined reference to `Adafruit_USBD_CDC::write(unsigned char const*, unsigned int)
If so, the required #include
is missing. See the example code above and add the required lines to your sketch.
If you get this error:
Timed out waiting for acknowledgement from device.
Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 294, in serial
File "nordicsemi\dfu\dfu.py", line 235, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 203, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 155, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 243, in send_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 282, in get_ack_nr
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.
This is probably caused by the bootloader version mismatched on your Feather and installed BSP. Due to the difference in flash layout (more details) and Softdevice API (which is bundled with bootloader), sketch built with selected bootloader can only upload to board having the same version. In short, you need to upgrade/burn bootloader to match on your Feather, follow above Update The Bootloader guide
It only has to be done once to update your Feather
This is probably caused by a conflict between 32-bit and 64-bit versions of the compiler, libc and the IDE. The compiler uses 32-bit binaries, so you also need to have a 32-bit version of libc installed on your system (details). Try running the following commands from the command line to resolve this:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
Text editor powered by tinymce.