Problem
Having recently purchased a DFRobot FireBeetle 2 ESP32-E (ESP32-WROOM-32E) with part number DFR0654, I encountered a few issues after following the installation instructions on DFRobot's Wiki.
Product page: FireBeetle 2 ESP32-E IoT Microcontroller - DFR0654 | DFRobot Electronics
DFRobot's installation instructions: FireBeetle_Board_ESP32_E_SKU_DFR0654-DFRobot
The two main problems I encountered were being unable to join a WiFi network which had a % symbol in the password and I was unable to use the WiFiManager library GitHub - tzapu/WiFiManager: ESP8266/ESP32 WiFi Connection manager with web captive portal as the esp_wifi_set_country_code
method was not declared.
DFRobot's instructions tell you to add the following board manager URL in the Arduino IDE preferences: http://download.dfrobot.top/FireBeetle/package_DFRobot_index.json, then install "FireBeetle-ESP32 Mainboard" in the Boards Manager and select the "FireBeetle ESP32-E" board:
But I found that the ESP library used by this is out of date (at least at the time of writing this).
Solution
Instead I added Espressif's URL to File > Preferences > Settings > Additional boards manager URLs
: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json Then using Tools > Board > Boards Manager
I installed "esp32 by Espressif Systems" and finally selected Tools > Board > esp32 > FireBeetle 2 ESP32-E
as my board:
However, at the time of writing this, there is small problem with this library too (v2.0.7) but it can be easily fixed. When I tried to upload a sketch to my board for the first time I got the following error:
Property 'upload.tool.serial' is undefined
The solution is to open the following file (on Windows, sorry I don't know the location on other OSes):
C:\Users\**YOUR_USERNAME**\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\boards.txt
Then search for the following line:
dfrobot_firebeetle2_esp32e.upload.tool=esptool_py
and replace it with:
dfrobot_firebeetle2_esp32e.upload.tool.serial=esptool_py
(Credit and thanks to ptillisch for this fix: Xiao boards: "Property 'upload.tool.serial' is undefined" - #6 by ptillisch)
Additional Note
The FireBeetle 2 doesn't have a boot button like some ESP32 boards. At first I found myself unable to upload a sketch to the board without connecting A0 to GND. I also found that I had to press the reset button at precisely the right moment for the sketch to upload, which took a bit of practice. Strangely though, after soldering headers to my board it randomly started uploading without needing to ground A0 or having to press reset. I now just press upload and I'm done. It doesn't make sense to me that soldering headers would make any difference so I can only assume I did something else without realising to fix this, but if you're unable to upload to your board connecting A0 to GND and pressing reset just as the upload is about to begin may help.