third-party development boards in Arduino IDE

Getting started with Arduino IDE as a newbie is relatively straightforward, but it can be difficult when you’re dealing with third-party boards that don’t work out of the box. While I managed to get most of my devices working, an Adafruit Bluefruit kept throwing this error at me:

A fatal error occurred: Failed to connect to ESP32: No serial data received.

Since it was challenging to find useful resources, I decided to write this blog post about the topic. I’m going to explain how to set up some common thiry-party boards in Arduino IDE using Linux, but the same process should apply for similar boards and different operating systems.


Board Package URL
Keyestudio ESP32 PLUS Development Board esp32 by Espressif Systems https://dl.espressif.com/dl/package_esp32_index.json
Seeed Studio XIAO ESP32C3 esp32 by Espressif Systems https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Adafruit Feather HUZZAH with ESP8266 esp8266 by ESP8266 Community http://arduino.esp8266.com/stable/package_esp8266com_index.json
Adafruit Feather nRF52 Bluefruit LE Adafruit nRF52 by Adafruit https://adafruit.github.io/arduino-board-index/package_adafruit_index.json


In the Board column you will find the name of each board hyperlinked to the manufacturer’s site. (Note that this is not the same URL that is included in the URL column.) Once you have identified your board, you will need to open Arduino IDE and navigate to the Boards Manager (Tools > Board > Boards Manager). Then you can search for the appropriate package (listed in the Package column) for your board. Click Install and wait until the installation is complete. Finally, copy the corresponding URL from the URL column and open the Preferences menu (File > Preferences), where you can paste the URL under Additional boards manager URLs. (This is a platform index URL that allows users to install and update platforms that are not included in the official package list.) Now you should be all set to select your device and begin programming, which I describe below.

If you’re working with an original nRF52832 device like the Adafruit Feather nRF52 Bluefruit LE, you will likely need to update the bootloader. If you’re using Linux, you will first need to install the adafruit-nrfutil package. The python-adafruit-nrfutil package on the AUR worked for me, but there are also instructions on Adafruit for other distributions. I was then able to select Tools > Burn Bootloader, which flashed my Adafruit nRF52 and got everything running smoothly. If you experience any issues, you can refer to Adafruit.


Group Entry Port
esp32 ESP32-WROOM-DA Module /dev/ttyUSB0
esp32 XIAO_ESP32C3 /dev/ttyACM0
esp8266 Adafruit Feather HUZZAH ESP8266 /dev/ttyUSB0
Adafruit nRF52 Adafruit Feather nRF52832 /dev/ttyUSB0


This table lists the information that you will need to select your board in Arduino IDE, and I’ve also included the port that I used (although yours might be different). Open Tools and hover over the Board option, where you will see the different packages that you have installed. Then refer to the Group and Entry columns to select your board. If your device is plugged in, the port should have been selected automatically, but you can also select it manually under Tools > Port.

At this point, you should be all set to get your board blinking ;) If you have any questions, feel free to leave a comment below.