In this project, I will review the DFRobot FireBeetle ESP8266 IoT Module and see how to set it up in order to use it in our IoT Projects. In the process, I will demonstrate a simple hook-up guide using the Arduino IDE.
Unboxing DFRduino and DFRobot FireBeetle ESP8266
I have received two modules from DFRobot: one is the DFRduino UNO R3 and the other is the DFRobot FireBeetle ESP8266 IoT Module. The package is neatly packed with two boxes and also stuffed with packing foam.
First, let me unpack and give a brief overview on the DFRduino UNO board and later, I will unpack the DFRobot FireBeetle ESP8266 IoT Board and review it thoroughly.
The first box consists of the DFRduino UNO Rev 3, which is an Arduino UNO Compatible board from DFRobot. It is packed in an anti-static bag and once you cut open the bag, you can see the DFRduino UNO in its black PCB.
The DFRduino UNO has all the features of a regular Arduino UNO i.e. a DIP ATmega329p, headers for Digital I/O, Power, Analog IN, USB-to-Serial, 16MHz Crystal etc.
If you notice the DFRduino UNO board, the female headers are color coded, which is kind of a cool and unique feature.
- Green: Digital I/O Headers
- Blue: Analog IN Headers
- Red: Power Headers
DFRobot FireBeetle ESP8266
Let me now proceed with unpacking the item of interest, the DFRobot FireBeetle ESP8266 IoT Module. Like DFRduino UNO, it is also packed in an anti-static bag but you get a second bag with a bunch of male and female headers.
Opening the package, you get the DFRobot FireBeetle ESP8266, which is a Arduino Nano sized black PCB with gold colored antenna trace and header mounting holes. Also, in the other pack, you get 18 pin Female and Male Headers (couple of each).
As the pins of the board are not soldered with any headers, you can solder yourself either male or female header as per your needs. Unless you are using the GPIO’s or the other peripherals, there is no need for any soldering tasks as you can plug-in the MicroUSB cable and start using it.
Apart from the regular ESP8266 related stuff, you get an additional hardware for charging Li-Ion Batteries. I will show all the components on the DFRobot FireBeetle ESP8266 board a little later.
Overview of DFRobot FireBeetle ESP8266 IoT Board
The DFRobot’s FireBeetle is a series of low-power development board aimed for Internet of Things (IoT) implementation. DFRobot FireBeetle series has mainly two boards: one is based on the ESP8266 and the other is based on ESP32.
DFRobot FireBeetle ESP8266, as the name suggests, is an ESP8266 based IoT development board based on the ESP8266EX SoC from Espressif Semiconductors.
If you are following ElectronicsHub for some time, you might have come across my implementation of IoT projects using ESP866 ESP-01 Module. Even though the ESP-01 Module is also based on the same ESP8266EX SoC, the main disadvantage is its lack of sufficient I/O and various protocols.
The DFRobot FireBeetle ESP8266 Module succeeds in this aspect by including the regular WiFi Connectivity, TCP/IP Stack, UART along with numerous GPIO Pins, ADC, SPI, PWM, I2C and even I2S.
NOTE: The above picture says 16MB of Flash but it is actually 16Mb.
Another important feature is it has 16Mb of External Flash interfaced through SPI. This is in contrast to 8Mb Flash on my ESP-01 Module.
The USB-to-Serial Conversion is taken care by the CH340 IC, which can also be found in various Arduino clones as well. Also, the FireBeetle ESP8266 features auto reset. This means that you don’t have to around the Reset and the GPIO0 pins (as those two pins are responsible for enabling flash mode or normal mode).
All this stuff i.e. GPIO Pins, Flash, Interfaces etc. is directly associated with ESP8266. But there is one other important feature that is included in the DFRobot FireBeetle ESP8266 Module. The feature is a dedicated IC for charging Li-Ion Batteries.
The famous Li-Ion Battery Charger IC TP4056 is integrated on the board with dedicated connector for the Battery. The maximum charging current that is supported by this board is 500mA (although the TP4056 is capable of handling charging current up to 1A).
A dedicated charging LED is provided on the board. If the battery connector terminals are open i.e. when no battery is connected, the LED blinks. It becomes stable when the board is charging a battery and turns off when the battery is fully charged.
Coming to the software part of the module, it is compatible with Arduino Programming environment (Arduino IDE) and hence, programming the DFRobot FireBeetle ESP8266 Module will not be an issue.
Additionally, the DFRobot FireBeetle ESP8266 Module also supports MicroPython, and RTOS SDK as well (if you are interested).
Features and Pin Description of DFRobot FireBeetle ESP8266
I have already discussed some of the features of the DFRobot FireBeetle ESP8266 Module but here is a list of all the features as specified by the manufacturer (DFRobot).
- Based on ESP8266EX (which is based on Tensilica L106 MCU)
- Supports Arduino IDE, MicroPython and RTOS SDK in Linux
- Has integrated WiFi (IEEE802.11b/g/n @2.4GHz) and TCP/IP Stack
- Hardware support for charging Li-Ion Battery (with max current of 500mA)
- Includes 11 Digital IO, 1 Analog IN, SPI, I2C and I2S
Pin Description of DFRobot FireBeetle ESP8266 Module
The following image gives a general idea on the pin description of the DFRobot FireBeetle ESP8266 Module. The module has 36 Pins (18 on the either side) out of which most of the pins are NC.
Now that we have seen the features and pin description, let me proceed with hooking up the board with the computer and programming it. In the process, I will also show you how to setup the Arduino IDE for the DFRobot FireBeetle ESP8266 Module. So, lets get started with that.
Setting Up the Arduino IDE
Before setting up the Arduino IDE, first, connect the FireBeetle ESP8266 to the computer with the help of a USB to MicroUSB Cable. Assuming you are using a Windows Computer, it should automatically detect the device and download the necessary CH340 Drivers from the internet, which happened in my case.
If your computer, for any reason, doesn’t detect the device and automatically install the drivers, then you can manually install by downloading the driver from this link.
Let us now proceed with setting up the Arduino IDE. In that, the first step is to install the FireBeetle Board through the board manager. So, first, copy the following link and place it in the “Additional Boards Manager URLs” in preferences (File -> Preferences).
NOTE: If you already have an URL in that field, you can add extra URLs by separating them with comma. In my case, I already have ESP8266 related Link.
Now go to Tools -> Board -> Boards Manager.. and search for “FireBeetle”. You can see the “FireBeetle-ESP8266 by DFRobot” option. Click on install.
After the Boards Manager installs the FireBeetle, you need to select it by once again going to Tools -> Board -> FireBeetle-ESP8266 (from the bottom of the list).
You can also select the appropriate COM Port number below the Board option and leave the rest of the settings as it is.
Uploading Code to DFRobot FireBeetle ESP8266 Module
Now that you have set the Arduino IDE for programming DFRobot FireBeetle ESP8266 Module, let us upload two sample codes for testing out whether the board is functional or not.
The first code is a simple Blink Sketch, where the LED connected to GPIO Pin 2 of the FireBeetle ESP8266 Module will start to blink.
WiFi Scan Code
The second code is for scanning the available WiFi Networks in range and displaying a list in the serial monitor of the Arduino IDE.
In this project, I have started working on the DFRobot FireBeetle ESP8266 Module after unboxing, setting up the programming environment and uploading some sample codes.
Few points to note about the DFRobot FireBeetle ESP8266 Module:
- The module has on-board USB-to-Serial Converter, MicroUSB Port and voltage regulator. This is important for me because of my experience with ESP8266 ESP-01 module, where I had to design a perf board to insert the module and add level converter for RX and TX (UART) pins.
- Also, the module comes with 16Mb of flash, which means you can program it with RTOS SDK.
- The on-board Li-Ion Battery Charger is an additional feature (which I may end up not using it).
- As of now, I’m not sure about the firmware aspects of the Module i.e. the version, how to update (although the DFRobot page says the module supports OTA Updates) and how to communicate through AT Commands.
- I will try to update on the AT Commands aspect as they are important (at least for me).