My course has primarily focused on robotics projects using the EZ-B controller and a camera for real-time interfacing. With recent developments, I am planning to create an additional video that incorporates Synthiam's support for other types of controllers. Although I've successfully flashed an alternative controller, it lacked compatibility with camera integration and Wi-Fi capabilities. The absence of an onboard computer limits the use of a USB camera, posing a significant challenge.
This dependency on specific components like the EZ-B, IO Tiny, and cameras can be problematic. For my course project, Mecha Morphix, which involves controlling five servos, the Arduino Mega seems excessive. I am in search of a suitable controller, compatible with Synthiam ARC, that includes both Wi-Fi and camera support to effectively replace the EZ-B.
I noticed that the ESP32 with a camera is listed among the supported controllers for ARC. Has anyone experimented with using the ESP32 in conjunction with a camera for such applications? Any insights or experiences would be appreciated.

I've been watching and haven't needed to step in. Athena has been doing a good job of guiding you in figuring out how to get the board to work. These boards all have wonky, different pin gpio mapping. One thing to note is that, as Athena said, D15 in ARC or firmware code doesn't necessarily correspond to pin 15 on the PCB.
You're calling a PCB 'freenode', and unfortunately, that doesn't mean anything to anyone who doesn't have one, because they're all different. No rules or standards in the hippy world. So I wish there were more input I could offer beyond just direction.
That said, apart from the confusing, lawless hippy PCB designs, there is a process everyone has to go through to learn a new PCB. I'll summarize it here...
The first step is to compile an LED BLINK test. If you can get that working, you know the IDE is configured correctly to flash the micro.
The second test is to map out the IO so you know what the pins are relative to the gpio index. Scripts like Athena pointed out for EACH pin (I know it's annoying)...
That should show you the output text in the serial monitor. And if you probe each pin, you should only see the one pin flashing on and off. Change the pinToTest and write down what the pin # in code corresponds to on the PCB. I usually create a graphic and write the pin number on it.
Now that you have pins mapped, the next step isn't too tricky. You take the ESP32 firmware and change the pin mapping. Now you can turn the pins on and off using the Digital robot skill from ARC. You can test which pins can turn on and off without affecting the camera. That'll tell you what pins are shared.
Finally, you'll need to get servos working. Not all the pins will work with servos. That has to do with how they share peripherals, such as timers and other hardware. Once you figure that out, then you know an exact mapping.
When you get to the "writing firmware" stage, either use Chat GPT (paid version) 5.2 or Athena in a new thread for assistance. The prompt is important because the more information you can provide about the outcome, the more helpful it is. As they say: garbage in, garbage out. Generally, the first question I'd ask GPT (paid) 5.2 is step-by-step instructions to build and compile a blink to the PCB. OR check the board's website if there is one. Then, use GPT (paid) 5.2 to paste in the EZB firmware and have it make the changes based on your IO mapping results.
Oh, and I have one question: Do you want to use two PCB microcontrollers for this project? Are you putting one in the head and one somewhere else? Or would you prefer to use a single PCB microcontroller for both servos and the camera?
I just clicked 'order' on a Freenove ESP32-CAM Wrover PCB microcontroller. Maybe I can squeeze some time to test it out.
Okay last message to spam you lol. I talked to GPT (paid) 5.2 and got this...
It also looks like the ESP32 EZB firmware will work with that board. Just need to specify the camera model by uncommenting it. The pins you can use for ARC are 2, 12, 13, 14, and 15 for servos. If you need more, the firmware can be modified to map PCB pins to ARC Dx pins just like the Arduino MEGA does.
On the Freenove ESP32-WROVER CAM, while the camera is active you should put your servos on these GPIOs:
Those are the "safe" PWM-capable GPIOs that aren’t used by the OV2640 camera or reserved for other critical stuff.
Why those pins?
The Freenove board wires the OV2640 to these GPIOs: (Random Nerd Tutorials)
Camera signals (do not use for servos while camera is running):
So, with the camera enabled, avoid those pins completely or you’ll get flaky video and/or unstable servos.
On the ESP32 in general:
All "normal" GPIOs can do hardware PWM via LEDC, except:
That leaves, on this board, the useful general-purpose PWM pins:
I’d personally prioritize for servos in this order:
How this maps to your firmware
Right now your firmware treats "ports" 0-15 as potential servo pins:
On ESP32,
Servo.attach(port)uses the GPIO number directly. So for Freenove with the camera running:portvalues: 0, 2, 12, 13, 14, 15, 32, 33So as long as you configure ARC to only use those "good" GPIO numbers for servo ports, your ESP32Servo code will keep working alongside the camera.
All of this searching is just to offer students a cheaper version of a controller and or controller cam option. The EZB products are the most expensive items in my BOM for Mecha Morphix.
Through out my filming of the build process I’ve given students various A or B options of parts to buy based on personal budgets. This ESP32 option was a side quest and as my deadline approaches for my launch, I’ve realized it was bad timing.
Time is money and I have to move on and revisit this later.
Athena has been a great help l. I’m fairly confident we can get all this working soon.
Just saw post #67 above.. Thanks for that. I’ll look closer tomorrow!
if you use the esp32 as an alternative, are you having the students use two? (one for camera and one for servos) or (one esp32 that does both)
They are so cheap either way would work.
Maybe time to upgrade the ARC firmware to work with a faster ESP and camera. If I were to do this today. I would probably use ESP32-S3-CAM, OV5640 camera and PCA9685 servo controller.