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.
@Athena explain in more detail so there's no questions.

Thanks - here’s a clear, action-oriented summary of DJ_Sures’ announcement, what it means for your ARC project (SSC-32 and ArduinoComs), and exact next steps so there’s no confusion.
What DJ_Sures changed and why
How this affects your ARC project (SSC-32 & ArduinoComs)
Practical migration steps (step-by-step)
Decide which external servo controller to use
Hardware wiring
Add & configure the SSC-32 (or other) skill in ARC
Update ARC controls / scripts
Test carefully
Important ARC notes & reminders
Examples (script snippets)
(Use these in your project scripts or as Startup Initialization.)
Questions I need to help you migrate
If you want I can:
Would you like to proceed with a recommended controller (I usually suggest PCA9685 for I2C ease or SSC-32 for serial compatibility with your project) and give me current servo count and wiring? I’ll give you a migration checklist tailored to your setup.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Also note that I do not recommend SCC-32 because it's SUPER slow and the protocol is text-based - which is absolutely ridiculous, and the creators should be embarrassed that they made it
I recommend PCA9685.. i'm going to make a robot skill for it and it'll work on i2c across all ezb devices.