Bought one of these ESP32-CAM boards a couple of months ago. Planning to investigate its capabilities ‘one day’. Today was that day. Experienced exactly what @Stephen25652 described.
Using a Pololu USB AVR Programmer v2.1. The Pololu has two comm ports, COM5 & COM6. It did not work on COM6, the port I would normally use, so eventually switched to COM5.
Initially it did not load quoting a header byte error. At least it was getting past the connecting stage. As per a number of forums, I was pressing the reset button when the connecting dots appeared. The Arduino COM window was open and GPIO0 connected to ground. When the reset button was pressed, a message appeared stating waiting for download. See pic below.
The next try I did not press the button and let it do its stuff, the code loaded ok. I have successfully duplicated this a number of times now.
I don’t know if this will be the solution for @Stephen25652 , but it was getting extremely frustrating trying to get it to work today. When all I had wrong was the COM port and misinformation as to how to use the RST button. Finding a schematic for the board was a bonus, it was easy to see how the bits connected together. See pic below.
The bright LED on the front lights dimly when the RST button is pressed. Normal operation in my opinion. When the code was loaded it was extremely bright. The red LED on the back can also be used to indicate things. GPIO 33 & GPIO 4. See code below.
Hope some of this is of use …
Cheers
Jim
EDIT: ESP32 is powered by separate 5V supply, the programmer kept resetting when using it 5V.
//LED BUILT_IN is GPIO 33
//Bright LED is GPIO 4
void setup() {
pinMode(33, OUTPUT); // Set the pin as output
pinMode(4, OUTPUT); // Set the pin as output
}
// Remember that the pin work with inverted logic
// LOW to Turn on and HIGH to turn off
void loop() {
digitalWrite(33, LOW); //Turn on
digitalWrite(4, LOW); //Turn on
delay (1000); //Wait 1 sec
digitalWrite(33, HIGH); //Turn off
digitalWrite(4, HIGH); //Turn off
delay (1000); //Wait 1 sec
}