I was trying out Tim’s ESP32-CAM streaming demo guide, and ran into several hiccups, all of which I was able to resolve, except for one.
My setup is
- Latest Arduino IDE running on Ubuntu 20
- Sparkfun FTDI programmer, as recommended in the guide
- ESP32-CAM board, configured as ESP32 Wrover Module in the IDE
I’m successfully able to flash the sketch onto the board, but whenever I try to run it, I get a reboot loop. So far I’ve tried
- A 5V/2.1A power supply
- Disabling the brownout check
- A minimal webserver sketch that just responds 200 / “Hello”, so not even using the camera, to see if power draw really is the problem
Nothing so far has worked. All I get is
rst: 0xc (SW_CPU_RESET), boot 0x13 (SPI_FAST_FLASH_REBOOT)
configsip: 0, SPIWP: 0xee
clk_drv: 0x00, q_drv:0x00, d_drv: 0x00, cs0: 0x00, hd_drv: 0x00, wp_drv: 0x00
mode: DIO, clock div: 1
Does anybody have any insights please? I don’t see any of the Serial.println’s from the sketch at all, so I have nothing else to go by, other than the above.
Is the BOOT wire connected when flashing? Boot 0x13 means that the ESP32 wants to run the code already on the device.
Hi Liam, thanks for responding.
Do you mean when bridging IO0 and GND? I have that in place while I’m uploading the sketch, and then remove it before pressing RST.
I noticed another setting in the IDE - “Erase All Flash Before Sketch Upload” - this is set to Disabled. Is this something I should enable?
If these sound like newbie questions, they are I’m experienced with software, but really just starting out with MCUs and electronics, so I appreciate any help.
No worries about newbie questions! ESP’s are annoying at the best of times
Yeah, to be sure it remains in download mode while flashing its best to keep it shorted until you get a success message after flashing.
Yeah, it takes a couple of extra seconds but makes sure that all memory is cleared between programming.
Tried those things but no dice, I’m afraid.
I also eliminated the breadboard in the mix, and have now connected my jumper leads directly between the programmer and board (I noticed that many people commented about how longer power paths can cause issues).
Only other thing I’ve seen is people have tried adding a capacitor between VCC and GND, but they were powering some other stuff from the same USB supply, whereas I’m not, so it shouldn’t be necessary.
Sorry to hear your ESP32 is giving you trouble! Are you able to share a photo of how you’ve got everything hooked up?
Keen to get to the bottom of this one!
Hi James, me too!
Please find attached some photos of my FTDI and ESP32. When I program it, I bridge the GND and IO0 adjacent, and then remove that jumper before I reboot. The programming stage reports as fine, as far as I can tell, it’s the running mode that’s not happy.
I think I found your problem!
See the following on the product page:
Try powering the ESP from a strong 5V supply and a common ground with the serial adapter, or better yet just a USB port on your PC broken out.
@James I believe you’ve solved it, thankyou! I was able to see the response from the minimal webserver, so I’ll try Tim’s streaming code and see how we go. Much appreciated
Just out of curiosity, does that mean I can use this programmer to program boards with 3V3 logic, but just not power them if they have a VCC of 5V?
Paul’s last couple of replies reinforce what I have been rabbiting on about for the last few years on this forum.
If you are having problems start by making sure the power supply is OK and up to the task.
Better still. Start with a decent power supply (not power banks) in the first place. Saves a lot of heartache and hair pulling down stream.