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.