
ESP32 Cam EZB
Hardware:
ESP32 Cam
Author: DJ Sures
This firmware converts a ESP32 Cam into an EZB for ARC to connect to it.
This firmware transforms the ESP32 Cam module into a fully functional EZ-B with an integrated Synthiam ARC camera, providing a powerful all-in-one solution for robotics and IoT applications. The firmware allows the ESP32 Cam to simultaneously operate as a video streaming device and a controller for peripherals like servos and sensors, making it an ideal choice for compact, feature-rich projects.
Key Features:
- EZ-B Compatibility: The firmware enables the ESP32 Cam to emulate an EZ-B, making it compatible with Synthiam ARC for controlling robotics systems and IoT devices.
- Integrated Camera: The ESP32 Cam’s built-in camera streams video directly to Synthiam ARC, offering real-time visual feedback alongside EZ-B functionality.
- Dual Functionality: Supports servo control and camera streaming simultaneously, making it versatile for applications requiring both visual monitoring and peripheral actuation.
Recommended GPIO Pins for Servos:
To ensure smooth operation of both the camera and peripheral controls, the following pins are recommended for use in servo control while the camera is active:
- D2
- D12
- D13
- D14
- D15
These pins are optimized to avoid conflicts with the camera's operation and other internal processes, ensuring reliable performance in EZ-B mode.
How It Works:
- EZ-B Functionality: The ESP32 Cam handles peripheral controls, such as servo motors, sensors, and other devices, through Synthiam ARC commands.
- Video Streaming: The built-in camera streams video directly to Synthiam ARC, enabling real-time monitoring and control.
- Resource Allocation: The firmware ensures efficient management of the ESP32 Cam's resources, prioritizing critical functions like video streaming and servo control.
Benefits:
- Compact All-in-One Solution: Combines the functionality of an EZ-B and a camera into a single, compact device, saving space and reducing complexity in your projects.
- Cost-Effective: Offers a budget-friendly alternative to traditional EZ-B and camera setups while retaining full compatibility with Synthiam ARC.
- Versatile Applications: Suitable for robotics, home automation, surveillance, and other IoT projects requiring simultaneous video streaming and peripheral control.
Use Case Example:
This setup is perfect for robotic systems that require both camera feedback and precise control of servos or other peripherals. For instance:
- A robotic arm with a camera for object recognition and manipulation.
- A mobile robot with live video streaming and servo-driven navigation or gripper control.
By converting the ESP32 Cam into an EZ-B with an integrated camera, this firmware unlocks a versatile and efficient solution for advanced robotics and IoT applications.
I think what would help is a better way to I’d identify the mapping of ports. I wanted d0 to be gpio0, for example.
a breakout with an led on each gpio. And without the camera running, turn on each io to find the mapping correlation.
I can’t seem to find a mapping document online though. Seems like someone must have thought of this you’d think?
Updated with new version that has dynamic camera quality and mapped gpio correctly
Digital ports work fine (on/off), Read
Also, D4 == FLASH LED
Servo still doesn't work - seems the servo library uses resources of the camera. Needs more look'n at
Updated to work with servos and camera at the same time
Hi Thanks for this, Ports D2, D12, D13, D14, D15 all work now with a servo. D4 also works but only with flash :-) D0, D1, D3, D16 don't work but thats fine. 5 is great and we still have TX RX
Questions I have some servo's that work on the ESP32 but don't work on ESP32-CAM? I copied the ESP32 servo and pwm files over to ESP32-CAM but still same problem. I officially hate this module.
The Camera distortion takes a while to recover would it be a better option to put in ranges Example If image size is > 5000 and < 5999 compression =10 If image size is > 6000 and < 6999 compression = 12 etc this way it recovers straight away and doesn't increment 1 at a time. When my camera looks at a solid image and moves to a complex image it takes a while to recover and when it goes the other way it takes a while to get the best quality again.
Thanks again I really appreciate you making this. Nink
Ez Esp32 cam v4 works good also with Arc
@Nink great to hear it works. Probably a better idea to increase the step from 1 to 5 or something. It's impossible to relate a compression value to image sizes.
Also, feel free to modify the code in the firmware. You can upload your own firmware for the esp32 as well. Just go to your account and click My Content -> Firmwares -> Create a Firmware
If it's based on my firmware, check the capabilities that are the same in my firmware. Just add the same ones and you'll be golden.