
Esp32 DevKit v1 by Espressif
Firmware
- DJs ESP32 DOIT DevKit v1 Version 4 (updated 2024-12-18)
- EZ-ESP32 with Adafruit PCA9685 Version 1 (updated 2021-04-30)
The DOIT Esp32 DevKit v1 is a very affordable WiFi module with plenty of IO, including three hardware UARTs. Adding the firmware below makes the WiFi module an EZB that ARC can connect to. This firmware works with ARC versions greater than or equal to 2019.06.25.00.
*Note: For servo use with EZ-Cam, only pins 2,4,12-19,21-23,25-27,32-33 are recommended.

Video Tutorial
WiFi Modes
The code supports two WiFi modes: AP Mode, which turns the ESP32 into a WiFi server your computer connects directly to, and Client Mode, in which the ESP32 connects to your network router. You can view the IP Address and connection status information by viewing the Serial Monitor set to 115,200 in Arduino IDE.
Port Configuration
The pins in ARC are labeled D0 - D23. The ESP32 has GPIO-labeled pins, which are not in any ordered sequence. This translation chart below shows the mapping of the ESP GPIO to ARC Dx pins. The ports labeled TX/RX are the hardware UART ports, which correspond to hardware UART #0 in ARC.

Wiring was getting too messy (even for me) so I created a little ESP32 servo shield. In hindsight I really don’t need the FTDI as I won’t reprogram it unless a new firmware comes out so I think I will order just the ESP chips from China and make some smaller shields just for servo control.
That's a great idea! Looks good with the sticker labels!
Very cool work.
Small problem with ESP servo calibration and degrees of movement. Take a HDD servo connect to an ESP and press center and it is about 10 degrees off. Now plug it into a EZB press center Perfect.
OK recalibrate for ESP. Now add servo control and move it to 1 degree it should be at 90 degrees to servo motor but it is about 45 degrees. Now move it to 180 degrees and it is only at about 135 degrees.
now move back to 0 and press release and it will move back to 135 degrees now move servo by hand to 0 and press release again this time it moves back to 135 but doesnt release
using latest ESP firmware and port D5
That’s the esp32 servo firmware for ya. All of the arduino servo libraries are off a little. They weren’t written that well. Might want to take a look at other servo libraries to try instead of the one I choose. I think it choose that one because it was the highest recommended.
Take a look at this, I’m not sure what it means different channels vs same channel. I often wonder if the esp32 has enough clock left over after the tcp stack to run timers in real-time: https://www.arduino.cc/reference/en/libraries/esp32servo/
Wanna try a new firmware for me? I updated the servo library to the latest - see if this helps. Let me know if it works before I update it on the website firmware list: EZ-ESP32.zip
went to bed with a broken servo, woke up to a working servo. Nice thank for the quick turn around. you still have to recalibrate (although i guess I could use an offset with my bots that use them) and release doesn't work but I get 180 degrees and it is a lot snappier, the old driver was a bit grindy.
I think the ESP has a lot of promise as a controller. There are a lot of things that work with arduino like LIDAR etc and having a single $5 controller that does a lot of things with ARC would be great.
I am sure the new ESP32-S3 will solve all the performance issues as well
https://www.espressif.com/en/news/ESP32_S3