ESP32 Cam by Espressif
Firmware
The ESP32-CAM is a small, affordable WiFi microcontroller board that includes an onboard camera and enough GPIO to control simple robotics hardware. When you flash the Synthiam ESP32-CAM firmware, the board behaves like an EZ-B compatible controller: ARC can connect to it over WiFi, stream the camera, and use the GPIO that doesn’t conflict with the camera wiring.
What this firmware provides
- WiFi camera streaming to ARC (via the Camera Device robot skill)
- EZ-B style connectivity so ARC can control supported GPIO
- Configurable WiFi mode (AP or Client)
- Pin mapping to translate ARC ports (D0-D23) to ESP32 GPIO pins
Setup guidance
Each firmware build includes configuration details and model-specific notes to help you: select the correct camera model define, choose WiFi mode, confirm the IP address, and avoid pin conflicts. Always follow the firmware’s comments and documentation for your specific board.
Supported Camera Models
The firmware supports multiple ESP32 camera boards. Select the matching model in the firmware by enabling the correct
#define CAMERA_MODEL_... entry before compiling.
- CAMERA_MODEL_AI_THINKER Common
- CAMERA_MODEL_WROVER_KIT
- CAMERA_MODEL_ESP_EYE
- CAMERA_MODEL_M5STACK_PSRAM
- CAMERA_MODEL_M5STACK_V2_PSRAM
- CAMERA_MODEL_M5STACK_WIDE
- CAMERA_MODEL_M5STACK_ESP32CAM
- CAMERA_MODEL_M5STACK_UNITCAM
- CAMERA_MODEL_M5STACK_CAMS3_UNIT
- CAMERA_MODEL_TTGO_T_JOURNAL
- CAMERA_MODEL_XIAO_ESP32S3
- CAMERA_MODEL_ESP32_CAM_BOARD
- CAMERA_MODEL_ESP32S3_CAM_LCD
- CAMERA_MODEL_ESP32S2_CAM_BOARD
- CAMERA_MODEL_ESP32S3_EYE
- CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3
- CAMERA_MODEL_DFRobot_Romeo_ESP32S3
WiFi Modes
The firmware supports two WiFi modes. Choose the one that best matches how you run ARC.
AP Mode (Direct Connect)
The ESP32-CAM creates its own WiFi network and your PC connects directly to it. This is simple for quick testing and field use when you don’t want a router involved.
Client Mode (Join Your Network)
The ESP32-CAM connects to your existing WiFi router. ARC then connects using the IP address assigned by your network. Use the Arduino Serial Monitor at 115200 baud to view connection status and the IP address.
Port Configuration and Pin Mapping
ARC labels controller ports as D0 - D23, while ESP32 boards label pins as GPIO numbers that vary by board and camera wiring. The firmware includes a mapping layer so ARC can consistently talk in D-ports, while the firmware translates those ports to the correct GPIO pins for your camera model.
Notes About Servos and Pin Conflicts
Some boards (especially common AI Thinker style modules) have a handful of pins that often work well for servos, but the exact safe pins can differ by board revision, camera model, and whether the flash LED or SD card is enabled.

Would like to see a video of this working with Arc
I did get the camera working with a FTDI adapter and Arduino code I found
works great
thanks
@EZAng, you've asked this question a number of times in various threads. Please do not repeat across threads
Your question was answered here: https://synthiam.com/Firmware/ESP32-Cam-EZB-5KUNP4UTSW0
Thank DJ
followed your instruction above
I got the ESP32 cam working on ARC also now
Used the FTDI adapter to upload, same setting as when I used the Arduino code instructions..
EzAng
On this chart, where are the DX pins?
D1 = gpio1 d2 = gpio2 d3 = gpio3 etc
*Note: For servo use with EZ-Cam, only pins D2, D12, D13, D14, D15 are recommended.
Tried D12 with GPIO 12 - just got the servo to work -
Camera works good
Find ports that work with your version. They're all different. All versions of the ESP 32 cam are different.
In the esp32 Cam:
Tried D12 with GPIO 12 - D13, and D15 work also
Camera and servos work