Finally in 2020 I found time to come back to this. It will be refactored in a single repository, so we will probably keep only the FS2 name. It's coming in the next weeks, since I need to prepare also a PlatformIO version so it will be possible to download it and compile it, without further ados. IMPORTANT: Due to another projects and also the fact that in the last years there are much more powerful cameras and with more resoulution than ArduCAMs this repository is no longer mantained and in read only mode (19 July 2020)
This project serves as a base to explore Arducam possibilities in combination with a WiFI ESP32 "System on a Chip" to create a simple WiFi point-and-shoot digital camera.
FS32 is a derivative from FS2 Project with the intention to make the most minimal version and feature set that is easier to handle and removing any other functionality. To the minimun means respecting this basic guidelines:
- Only one camera is supported (OV5642)
- No external events more than a simple Shutter button to ground that will make only one thing: To take a picture
- Only Exposure control via Web Interface
- SPIFFS should work (And selectable if we want to enable it on the Web UI)
As 5. we would like to additionally provide an upload chunker interface that will upload the files each 20Kb, sending an md5(hash) along with the upload POST, and the API receiver will return a 200 status header if the resulting hash matches or a 404 if not. That way we could implement a safe upload where if a part does not match due WiFi issues, will at least attempt to send N times more, only this affected part. This is the more complicated one since means completely refactoring not only the client firmware, but also the API upload endpoint, and make the described checksum system to allow progressive checks of the upload. Aborting the WiFi upload should not cut the SPIFFS save, with the objective to have the photo always saved somewhere.
And that's all. It will be kept to this mini set of 5 Points. All the rest should be implemented by the users in forks from this.
- An ESP32 board (Heltec, Wemos Lolin 32, any other)
- An OV5642 ArduCam
- A simple button that will connect a GPIO to GND
If you are interested in controlling addressable Leds with ESP32 and launching animations with short UDP commands check out our project Remora