ESP32 Development; New And Final Directions
Because I need a life too, I'm preparing a hard stop to finalize my ESP32 development after my last final changes. I only have time to work on it in my off-time and it's been consuming every spare moment for weeks.
V13 is what i just finished tonight... lucky 13. This is the first step toward the final ESP32 firmware I'm working on, which you can extend with robot skills.
Check out the release notes because that's the direction I'm heading. I'm removing all support for pwm/servos on the ESP32 GPIO. All ESP32s will require an additional servo controller, such as a PCA9685, SCC32, or a simple Arduino. The ESP32 does not have enough resources to handle the servo and all the other jazz.
- The core synchronization is out to lunch.
- The task management is at the mercy of hardware peripheral activities.
- The DMA or whatever happens internally doesn't share resources and blocks tasks.
- It's just not a great microcontroller for multitasking.
I think what makes the ESP32 great is its affordability. And because it's low-cost, you can buy 3 of them. And you essentially need 3 or maybe 4 to emulate an ezbv4 properly. It's like comparing a phone CPU to a desktop pc CPU. They're just different tools for different jobs. And the ESP32 is just not made for what we're trying to do. It's made for doing a single task, even though you can argue there are multiple cores, there is a reason...
- TASK #0 for WiFi/TCP/Network services
- TASK #1 for your program
- That's it. That's all you get
So, trying to split all these tasks and services into a micro that is low power and low cost for a reason requires either
- more esp32's chained together
- a different micro that costs more and has more power
- fewer features
So the plan moving forward is...
- Remove all servo/pwm from both ESP32 and ESP32Cam firmwares. For servo/pwm, use an external servo controller such as PCA9685, SCC32, or an Arduino, etc.
- dumbing-down the firmware based on what i wrote tonight. It's fully optimized, and I can't squeeze anything more out of it.
- i'm going to try adding audio to both ESP32Cam and ESP32 and see if i can make that work. It "sort of works" with the ESP32Plus, but it hasn't been fully tested yet.
- If I can make audio work on ESP32 and ESP32Cam firmware, I'll remove ESP32Plus, and we'll just focus on those two
*Remember: ESP32Cam and ESP32 are completely different microcontroller boards. The chips may be similar, but one with a camera and one without means a whole world of difference. And that is why there are multiple firmwares.

Yeah definitely the plan. Calling it the IO Medium since we have access to 16 pins with camera.
Seriously from Alibaba around $3 per assembled module. $1 each component.
Amazing. And you should be able to run several of them at once - it’ll be easy once the robot skill is published not sure where it’s at but I suspect soon. That’ll remove the need for support directly in firmware.
Oh wow I can’t wait for that!! Awesome.
Working on it in my spare time - you betcha