@dronebot-workshop, It took me weeks to solder and troubleshoot and get it working. I used the FTDi and a breadboard to program it, setting the FTDI output to 5V and feeding it to 5V input on the ESP32-CAM.
The camera re-orientation was sorted by deleting the reference to .rotate90 at the end of line 354 in app.httpd.cpp. (Deleting back from the final curly bracket to the previous one). This rights the video but reduces its height. Might be able to delete (or modify) "-40px" from the max height definition elsewhere in that line if it refers to the video element size. I had to "modify" the design to make it work because there was so little electricity coming out of the pwm line from IO12 when the webpage slider was at 90% speed. I just connected both enable pins to 5v so it has one speed- "fast". I wrecked an ESP board soldering the external aerial jumper, but the range with the internal aerial is just enough for playing indoors. A fantastic little thing and a superb video and explanation. Thank you very much.
Fritigern
@fritigern It sounds like you missed seeing Bill's corrective post at HERE
Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting