Suitability of Esp32 for rapid deployment projects
Posted: Sat Feb 28, 2026 2:27 pm
I write this with a heavy heart and disappointment. Having worked with Arduino for decades, a transition to Espressif seemed natural. My first ESP project was a weather station using the Esp32 devkit and some specialized sensors using an odd collection of communication protocols. I needed a serial port, ISP, i2c, modbus and Bluetooth classic. Wifi was required to enable a time server. A second Bluetooth channel communicates with Android that runs the high level app. The ESP has most of the hardware on a single chip so that was the intuitive choice.
My immediate problem was that running wifi as well as Bluetooth simmultaniously is virtually impossible. So I had to choose between BT and wifi. I dropped wifi from the equipment. Disappointment no. 1. Then, while BT is running, a significant number of IO pins are not available, including primary i2c. Some of the functions can be rerouted to other pins but this creates enormous complexity with my hardware setup. So I dropped i2c required for SD card access: Disappointment no 2. When I started to use BT to communicate with slave equipment that gathers some of the climatic data, the range was impossibly short, less than 5 meters. This necessitates an external HC05 on a serial port. Signal strength much better now: disappointment no. 3. So, I cannot use either wifi functionality of native BT on the ESP. With the native BT, it has a mind of its own. Having connected to Android, it breaks the BT connection whenever it wants. Remote equipment like a weather station cannot function with BT equipment that randomly drops the connection: disappointment no 4. Using the analog to digital converter, the erratic behavior is so bad that, with extensive filtering, I get slightly less than 20 bit resolution, quite a bit less than the advertised 12 bits and not useful for a weather station due to loss of resolution and instability. Disappointment no 5. I am now so far down the road with this design that I cannot restart from fresh. None of these issues are new. They are all well documented on Espressif and Arduino discussion groups. I am now using an ESP of which I can use a small subset of its advertised features, surrounded by two external BT boards, hardware RTC, and hardware Adc with Arduino controller. If I could have restarted this project I would probably move over to STM32 which much more well defined. I would have liked to see a fully functional ESP controller. Maybe this is under development with Espressif? But, as it is at the moment, it is not suitable for my needs. I would have liked to move over to RTOS and Espressif's own IDE. But if I cannot get the ESP to work with the obvious Arduino starting environment, I am not going to spend time learning a new IDE for the ESP.
My immediate problem was that running wifi as well as Bluetooth simmultaniously is virtually impossible. So I had to choose between BT and wifi. I dropped wifi from the equipment. Disappointment no. 1. Then, while BT is running, a significant number of IO pins are not available, including primary i2c. Some of the functions can be rerouted to other pins but this creates enormous complexity with my hardware setup. So I dropped i2c required for SD card access: Disappointment no 2. When I started to use BT to communicate with slave equipment that gathers some of the climatic data, the range was impossibly short, less than 5 meters. This necessitates an external HC05 on a serial port. Signal strength much better now: disappointment no. 3. So, I cannot use either wifi functionality of native BT on the ESP. With the native BT, it has a mind of its own. Having connected to Android, it breaks the BT connection whenever it wants. Remote equipment like a weather station cannot function with BT equipment that randomly drops the connection: disappointment no 4. Using the analog to digital converter, the erratic behavior is so bad that, with extensive filtering, I get slightly less than 20 bit resolution, quite a bit less than the advertised 12 bits and not useful for a weather station due to loss of resolution and instability. Disappointment no 5. I am now so far down the road with this design that I cannot restart from fresh. None of these issues are new. They are all well documented on Espressif and Arduino discussion groups. I am now using an ESP of which I can use a small subset of its advertised features, surrounded by two external BT boards, hardware RTC, and hardware Adc with Arduino controller. If I could have restarted this project I would probably move over to STM32 which much more well defined. I would have liked to see a fully functional ESP controller. Maybe this is under development with Espressif? But, as it is at the moment, it is not suitable for my needs. I would have liked to move over to RTOS and Espressif's own IDE. But if I cannot get the ESP to work with the obvious Arduino starting environment, I am not going to spend time learning a new IDE for the ESP.