Display 3D animated GIFs

Stereoscopy without a headache…

My earlier Stereoscopy project had been put on hold for a while because the two ESP32 boards for driving its TFT displays refused to properly synchronize. Simplifying the sync technique (dropping interrupts) and shortening some wires finally did the trick.

TTGO T4 boards looping in sync over left and right frame halves of a 3D animated GIF*

The video also shows a manual restart of the boards to prove that synchronization doesn’t depend on a simultaneous start. After the first one has finished downloading its frames, it will wait until the second one has finished downloading the opposite side’s frames as well. Then they will start looping over corresponding left and right frames that are stored in PSRAM, staying perfectly synchronized as long as both sketches run.

While synthesizing a moving 3D image from a sequence of frame pairs, our brain will immediately respond to even the slightest synchronization error by causing a headache. That’s why one can not rely on the ESP32’s internal clocks or NTP syncs. So I used a simple ‘per frame handshake’ mechanism over two cross-wired GPIO pins. Despite the poor video quality and imperfect alignment of the displays, you can actually see the 3D effect in the above video (using the cross-eyed technique). In reality it looks much better!

The TTGO T4 boards fit nicely inside an old 3D viewer, using the buttons for selecting animated GIFs from my webserver. And although this is mainly a gadget for stereoscopy aficionados**, I’m sure that its synchronization method can be useful for future projects.

* GIF found on http://www.f-lohmueller.de/pov_tut/stereo/stereo_400e.htm

** I’m in famous company: Queen guitarist Brian May runs the London Stereoscopic Company where you can buy retro style stereo cards and viewers. Obviously a labor of love!