First I tried to load the ESPHome integration, but this requires an ESPHome device. I don’t have one yet, so I x out of that and the integration is not installed.
After a bit of thrashing around I find ESPHome Device builder and install that. I start the Quickstart tour and get to step 10 of 11. I change the esp32: section to:
# Example configuration entry
esp8266:
board: esp12e
framework:
version: recommended
esp12e (which is functionally identical to the esp12f) is chosen from this list (phrase from Configuration variables of the ESP8266 Platform page
I change the WiFi section using the GUI, doing a cut an paste of the SSID and Password from my router
I click on [^ Install] and choose Plug into this computer. Eventually, I get the message No flashable binary available for this device. web.esphome.io supports ESP32 and ESP8266 only.
Moving on to the web.esphome.io Connect–>Prepare for first use–>Install Configuration installed! -->CLOSE–>CONNECT TO WIFI–>(enter credentials) …sometime later, the message "Timeout* unable to connect. I try this several times to no avail.
Perhaps the device just can’t connect? When I Tasmotize the device, (Connect)–>[select COM port]–>Connect–>Install Tasmota (english)–>check Erase device–>Next–>Install–>Change Wi-Fi–>(enter credentials)–>OK–> (message Device connected to network!) Continue–>Visit Device The device is connected to WiFi and is Tasmotized.
configure the now turned off VirtualBox to pass through the com port to which the ESP-12F is connected
Start the VirtualBox
This is not practical. But I did get the device programmed using the USB port and installed into the ESPHome.
Back at my desk computer, I was successful in bringing a second device (ESP32) into ESPHome. Further, I deleted the first device (ESP8266) from the Builder, created a new device which downloaded successfully, went back to Settings–>Devices&Services and had to delete the first instance, then the second instance appeared and installed it.
My next step is to understand the style of programming in ESPHome. It seems there is a section which gives a physical IO a name and another section that connects a function to that name. There’s more to learn.
I am using disparate technologies: Insteon, Z-Wave, Tasmota, and MySensors.
I see that ESPHome and Tasmota use the same hardware. In setting up the software, Tasmota is more simple, though it does require and MQTT broker as a go-between (a very easy to install integration and negligibly longer response time).
I find Tasmota relatively easy to configure. I don’t know about ESPHome; that’s why I’m experimenting with it.
Once installed and configured, using them in HA appears to be the same.
Because it makes dealing with USB easier and depending on what you are using for running HA, might be faster.
Tasmota and esphome have different models. Tasmota depends on runtime configuration and often includes code to do way more than you need. This can make updating harder.
esphome includes only what you need based on the configuration you set at compile/build time. This makes updates easier (but you might need them more frequently, if you are making changes).
There are many other differences that might or might not matter to you.
I am long time Tasmota user and loved it for the esp8266. When I started using it for the esp32, I liked it less well because it needs different binaries for the different chip sets (not really surprising) and it took a long time to compile (10-15 min for a simple change).
Adding custom functionality is difficult in both platforms, but somewhat easier to figure out in esphome.
There is a large overlap for most things, so there isn’t really a wrong answer. Depending on what you are doing and your familiarity with each platform one might be easier/better in some dimension than the other.
My old Tasmota devices are still working fine so I haven’t felt the need to change them. For new custom things with esp32 I am using esphome.
My personal preference is the ESP8266 on a Wemos D1 Mini. They are cheap, the module has a UART and USB connector, a 3.3V power chip and they are cheap. I buy them ten at a time from Ali Express.
ESPHome Builder is an add-on. It is not an integral part of Core. You don’t have to use the flash tool in ESPHome Builder. You can compile to the binary file and use any ESP flasher to put it on the ESP device. They are mostly GUI front-ends for esptool.py
We’ve all done it in the past. A one-off exercise you don’t want to repeat if necessary.
Wait till you discover OTA!
Related hint: The latest version of release notes for ESPHome talks about support for the newest ESP-S31 series, which has the ability to hard lock your firmware for good for security reasons, aka no more updates accepted. Be sure to leave that off if considering updating any devices in the future for any reason. You may find vendors shortsigtedly invoking this on their 1.1 releases. Giggles: No 1.2 releases.
Mistakes: First time you don’t know why - the second time you do!
That is a non-sequitur answer. The debugger gives you a USB-to-serial chip, usually CH340 or CP2102 UART to connect to your PC, and a button for GPIO0 to put the ESP into the flash mode. Which is exactly what you get with the Wemos D1 Mini or NodeMCU development boards. At their heart, they all have an ESP8266 processor. In fact the NodeMCU board has an ESP12E and is functionally identical to the “Burn Debugger” except that the ESP is soldered to the development board.
In other words, it’s a non-sequitur in that the “Burn Debugger” is a handy carrier for the ESP12 family of chips. But is has the same functionality as the Wemos D1 Mini and the NodeMCU. All that is “undocumented” is the “Burn Debugger” board itself.
So, do you have a reason for selecting the ESP12 plus the “Burn Debigger” instead of a Wemos D1 Mini or NodeMCU? If just to learn ESPHome or ESPNow programming, any of the three combinations mentioned here will work just fine for learning.
Can be, my wild guess.
Generally you use esp module instead of devboard because you want to build your PCB. Not to make first steps with esphome, as devboard alternative. Undocumented “burner” likely doesn’t help there.
At the end result should be same though.
I believe that designing a product PCB that will host the ESP12 is a bit beyond the OP’s scope. He just wants to learn ESPHome programming.
I APOLOGIZE for taking this thread so far off the original question.
ESPHome Builder uses esptool.py, which normally toggles a board’s DTR and RTS lines to pull GPIO0 low and pulse reset — putting the chip into flash mode, then back into run mode after flashing. That only works on boards wired with the auto-reset circuit connecting those lines to GPIO0/RST (most dev boards with onboard USB-serial, like the D1 Mini). Bare ESP modules like the ESP-12 don’t have that circuit, so esptool’s automatic toggling has no effect either direction — GPIO0 has to be grounded manually to enter flash mode, and the chip needs a manual reset (or power cycle) afterward to boot back into the sketch. That’s why it needed a manual RST press here.
So, again, my apologies that I hadn’t picked up on the bare ESP chip flash sequence. It’s just that using bare ESP chips is not common here.
I think the OP got their question answered. To others who find this thread. The 12F is not the best card to learn with, but it depends on what you want to learn.
There are dev boards that are well designed and reliable. There are dev boards that are cheap.
I have had decent results with cheap boards, but many people starting out have nearly (probably many have) given up because they require more knowledge than most people starting out have and can be very frustrating.
I like the boards that have a USB connector and just work. It used to be having an FTDI converter was a good sign, but years ago to deal with all the fakes they made the driver fail. I used to look for the CH430 since that always worked. But the newer driver fails on many of my boards. Luckily the older driver still works fine.
These are little bits of friction that are incredibly frustrating if you don’t already know the solution. Sometimes AI will lead you to a solution, other times it will lead you even more astray.
Not so much as a bit beyond the scope, it’s that I have a bunch of ESP-12F boards because I am developing what I call the Universal Light Switch. (I have since designed a PCB. and it works well.)
My “thing” is making gizmos that work for the lowest possible price. ESP-12F fits into my “thing”. Once I have it programmed the first time, all updates are OTA. I use a very cheap buck converter, (which does not meet any electrical regulatory standards) to power it. (You’ll also need a 10K resister between GPIO15-GND and EN connected to VCC.)
What I do is not for the faint-at-heart. @neel-m is right, if you’re just here to learn, get a reliable dev board. … and, unless you’re ready to go down a rabbit hole, don’t use AI.