Although if you put your ssid and password, and timezone into the config.txt file, and put that file on the SD card, things will be nicer! You can read the comments in config.txt and set your desired recording length, framesize, and internet on/off in there.
Here is a timelapse sample, recorded and uploaded to Youtube. The settings were framesize UXGA (13), quality 15, 1 fps, 1800 seconds long, speedup 30 times. Click the image and it will take you to Youtube to see it.
[![Click to see on Youtube](http://img.youtube.com/vi/tzMFukXsX6o/hqdefault.jpg)](http://www.youtube.com/watch?v=tzMFukXsX6o "Clouds from Youtube")
Here is a realtime sample, recorded and uploaded to Youtube. The settings were framesize HD (11), quality 14, max fps or zero interval, 30 seconds long, speedup 1 times. It came out at about 12.4 fps. Lowering the quality slightly -- higher quality number -- will make the bytes per frame smaller, and keep the speed at the camera maximum of 12.5 fps for HD. Click the image and it will take you to Youtube to see it.
[![Click to see on Youtube](http://img.youtube.com/vi/SNbKu3UN2P8/hqdefault.jpg)](http://www.youtube.com/watch?v=SNbKu3UN2P8 "Birds from Youtube")
## Update May 13, 2021 - v50lpmod for Arduino 1.8.13, and esp32-arduino core 1.06 - mod to fix broken jpeg
This is the same as the last version with a small mod to fix the broken jpeg problem. The critical line is here:
esp_err_t set_ps = esp_wifi_set_ps(WIFI_PS_NONE);
It sets the modem to no power saving. The power saving had put the modem to sleep for a time, and when it awoke, it caused a disturbance in the i2s system (my theory), that caused the i2s camera to become confused, and create a bad jpeg.
Read more here for my journey to this solution (2-3 months I think!)
## Update Apr 19, 2021 - v50 for Arduino 1.8.13, and esp32-arduino core 1.06
Updated version I have been using.
Uses the current Arduino IDE 1.8.13, and the current esp32-arduino core 1.06, which handles the ov5640 camera in additon to the normal ov2640.
Framerates have improved - the ov2640 will record at 12.5 fps on regular HD 1280x720.
Also you can put a config file onto the SD card, called config.txt which will set all the parameters of the recording. See the config.txt file included here. So you can compile and install the version here, and then control everything by editing config.txt on the SD card. Much simpler even if you are working at your dev computer.
You can run full-speed at any framesize and quality, or timelapse, and stream or not stream as desired.
There is a issue with the esp32 camera and wifi that interact, so when the wifi is turned on, you will have an occasional broken frame -- one frame of the movie that will look odd. If you shut off the wifi, it should be perfect.
The config.txt has parameters to run without wifi, or start wifi to get the current time and then shut off, or use WiFi-Man wifi with streaming, or use WiFi ssid from the config file, and have it controlled with the pin 13 switch, to switch it on to look through the viewfinder, then switch it off to get a perfect recording.
Also, this has tasks and mutexes and priorities, in defiance of the original design. All that makes sure that the camera and the sd and the wifi, can all operate at full speed without blocking each other. You can record the streaming video with VLC on your coomputer if you like.
## Update Jan 04, 2021 - Streaming GOPRO with WiFiManager
v10x-wifiman - added WiFiManager to set your wifi ssid and password using your phone
- use the normal WiFiManager procedure to set up ssid with 192.168.4.1 etc
https://github.com/tzapu/WiFiManager
You must use the latest WiFiManager code which supports the ESP32 - currently 2.0.3-alpha which can be installed from Arduino IDE - Manage Libraries. And you must reboot the esp32 after you have set the ssid.
Some other new stuff in the comments - a version that adds back the ftp, and a version that slows down the recording for timelapses, or just lower framerates to save SD card space.
- if you have no switches attached to gpio12 and gpio13, then they will not be grounded and it will "record" and "svga 25fps"
- at SVGA 25fps, quality 12 in the sunshine, you get files of 1.5 GB per 30 minutes - so reduce quality, switch to lower framesize, or go to the timelapse system of 1 frame per second or 10 frames per second, etc to get smaller files
- these are mjpeg avi files, so each frame is an independent jpeg, so you can extract them all, but you do not get the size benefits of h264 or xvid, etc
- the pictures below show how to see streaming video, or a series of frames on your browser
- filenames are now "desklens10.003.avi" so they are easy to deal with. "desklens" is your device name, 10 is the 10th boot of your device, and 003 is the 3rd file made during this boot
- you need to add your wifi ssid and password below
- if you walk away from your wifi, then wifi wont work, but recording continues
- if you are away from wifi at boot time, it wont have wifi, but you will record the events of January 1970
- the main web page just shows your available disk space, and your wifi signal strengh, deleting lots of stats from the other version
- the stream function shows a moving picture in one window, that you can watch or record on your computer using VLC etc. With bad wifi, you could slow the 5 fps to 1 or 2 fps, by replacing the delay(200) with a longer delay
- the photos function shows a series of photos 1 second apart for 15 seconds, that you can scroll through on your web browser and save a jpg, or refresh for another 15 second group
- both the streaming and the photos use the same images that are stored in the avi file, so it should not affect the frame-rate of the recording on the sd, but you might see partial images if you have slow wifi and the sd writer deletes the image while it it being transmitted. Let me know of problems in the comments. :smiley: