Computer Engineering Student [sherwin-dc] There is a roamer project that requires streaming video through ESP32 to be accessed by a web server. He could not find the documentation for the ESP32 standard camera interface, but even if he did, this method used too many I/O pins. instead, [sherwin-dc] Decide Cram the video into the I2S streamHe can use Altera MAX 10 FPGA to process the video signal from the camera, which is very helpful to him. He did succeed, but it took a lot of experimentation to solve the limited resources of ESP32.finally [sherwin-dc] It was decided to use a QVGA resolution of 320×240 pixels with 8 bits per pixel.
This means that only 77 KB of precious ESP32 RAM is used per frame.
His design uses 2.5 MHz SCK, which is equivalent to about four frames per second. But he pointed out that at higher SCK rates of tens of MHz, the frame rate may be significantly higher—in theory. But considering other system processing, ESP32 can’t even keep up with 4 FPS. In the end, he was lucky to get a throughput of 0.5 FPS, but this was enough for controlling the rover (see the animated GIF below the interrupt). In other words, if you have a more powerful processor in your design, this technology may be of interest. [Sherwin-dc] Note that the standard camera driver of ESP32 uses I2S under the hood, so this concept is not crazy.
We have already introduced several articles about generating videos through I2S, including this article in 2019. Have you ever requisitioned an agreement for “off-label” use?