ESPHome on the Firebeetle 2 ESP32-E

Is this board incompatible with ESPHome?
I am trying to connect 6 push buttons to GPIO pins. Its seems like this board is wired differently.
Has anyone got this board working. I am about to give up on this but where I live my options for
battery powered boards are limited.

What are you using as your board: definition?

It does not look like platformio has been updated to include the Firebeetle 2 ESP32-E and there are pin mapping differences compared to the ESP32.

Whatever the board definition, a GPIO is a GPIO.
I don’t think GPIO’s get renumbered across boards, do they?

So I don’t get what the OP means by “wired differently”…
Code and wiring welcome, ofc

Contrast and compare:

FB 2 ESP32E (GPIO # in orange).

FB ESP32 (GPIO # in teal).

e.g check which GPIO corresponds to Analog channel A1. bad example. I can’t see any differences yet. Still looking.

Oh, Ofc :slight_smile:
I personally never use the “symbolic” name, that I cannot memorize :smiley:

But this will work whatever the “flavour” of the ESP,

i2c:
  sda: GPIO021  # SDA
  scl: GPIO022  # SCL
  scan: True

Right. Thinking it twice myself, SDA will be 21 and SCL 22 on all ESP32 boards.
The likely difference will be where those pins are physically located on the board.

You will have differences between an ESP8266 and ESP32, otoh…

esp32:

board: firebeetle32

framework:

type: arduino

Ok I have tested GPIO12 with Touch Component and that worked. I cannot get any push buttons to work. I need to select 6 x GPIO to work with a push button. Which of the pin will be save to use?

Yeah. The the fireball 32 2 ESP32E does not have the same pin mapping. See above.

That example will. Now try to find GPIO5 to GPIO11 on both boards :slight_smile:

Yeah, but that’s the board topology, so to speak.
I have ESP32 boards with 30 and 38 pins, and that one is 32 :wink:
First time I see one with 2 3.3V, that one has no boot button, so GPI0 is exposed, and so on and so forth…

The more builtin functionalities, the less exposed GPIOs, because they are already used by the board.

Yeah I guess as long as you are looking at the pinout for your actual board it maps 1:1 for GPIO# for the other board definition.

1 Like

The esp32-wroom-32e is documented here https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf

That’s the C3 series. The E series datasheet is here https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

Either way it doesn’t help that pin schema has not been added to platformio yet.

Sorry I got lost in their website.

1 Like

I’ve had varying success with Firebeetle 32-E

It is really good for low power ie. battery applications.
I tested it once in an ESPHome setup, just for a simple switch and it did work.

Issues I’ve had:-
(These were not in the ESPHome environment).
One project was moved from a ‘cheap’ ESP module, that was tested and working, but needed battery operation.
The Firebeetle just kept re-booting after the project download.
It was using 10 x DS18B20 sensors and modbus over bluetooth for an ‘HMI’ screen.
I decided to simplify the program (reduce its size) by removing most of the floating point stuff and replacing it with ints.
That then worked ok.

Don’t use GPIO12. According to some Expressif docs, that is a bootstrap pin.
I kept getting “boot:0xb (HSPI_FLASH_BOOT) flash read err, 1000” when downloading one program.
I changed the defined GPIO pin to something other than 12 and it worked ok.

Stick to GPIO numbering, not D1,D2 etc.
I’ve had numerous issues trying to us D idents.

For your project, maybe add the pins one at a time and check it works each time.
Bit of a pain, but it may provide a solution.

If you need very low quiescent current, don’t forget to snip the track for the RGB led.
That can get the standby current down from ~0.5mA to ~10uA in sleep mode.

1 Like

I think this is good advice for any esphome project!

1 Like

Thanks everyone! Got it working.

I stuck to the GPIO numbering. D numbering is not supported on this one with ESPHome

I followed this doc: FireBeetle_Board_ESP32_E_SKU_DFR0654-DFRobot

and this doc ESP32 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials

I added one by one. A pain but works.

I ended up with 8 push buttons and maybe 10 is possible

If I need more buttons I am going to add an I2C I/O expander

Conclusion is the FireBeetle 2 ESP32-E - DFR0654 works fine with esp32dev platform, but for future projects I am going to be using the Wemos Lolin D32 for battery operated devices.

The next thing is to get it to go in deep sleep and then wake up by button press

1 Like

Feel free to add your reviews of your favourite esp32 low power boards to this thread.

I’m trying to build up more consolidated info for the community.

It’s a bit confusing and overwhelming when you do your first low power projects.

Cheers.

Can you share your ESPHome yaml setup file?

I would also be very interested to see your YAML file, trying to get this board working myself.

What’s the current situation for this? I ended up with a Firebeetle 2 ESP32-E 1.0 (DFR0654-F), which I’d like to use for ESPHome.

I’ve had problems even connecting it to USB on my MacBook Pro M1. I was only able to see it with esptool.py and Arduino IDE after I installed the CH341 Mac drivers. (That download and installation did not make me feel completely comfortable and inspire confidence.) My earlier ESP32 Firebeetles (DFR0478 and DFR0868) worked out of the box on my Macs with no serial/USB drivers required.

I’m not sure what settings to use in the YAML for this DFR0654-F board. Anyone have a working example?

I’ve used the Firebeetle (DFR0478) almost exclusively in my other ESPHome devices, and it has worked very well for me.

Thanks!

Maybe it will be helpful, built in LED works (haven’t tested all :slight_smile: ).
GPIO0 - D3
GPIO2 - D9
GPIO4 - D2
GPIO5 - D1
GPIO12 - D6
GPIO13 - D7
GPIO14 - D5
GPIO15 - D8
GPIO16 - D4
GPIO17 - D10
GPIO18 - D11
GPIO19 - D12
GPIO21 - D13
GPIO22 - D14
GPIO23 - D15
GPIO25 - A0
GPIO26 - A1
GPIO27 - A2
GPIO32 - A3
GPIO33 - A4
GPIO34 - A5
GPIO35 - A6
GPIO36 - A7