Over the last few years, the price of a good digital picture frame has dropped to the point that we don’t often see DIY versions anymore. As much as we might hate to admit it, it’s hard to justify building something yourself when the economies of scale have made it so you can buy the final product for less than the cost of the parts themselves. But of course, there are always fringe cases where building it might be the only way to get what you need.
Granted we’re not sure that [Tony Liu] actually needs a 1.8-inch digital picture frame, but we’re sure somebody out there does. The ST7735R display used in this project is a real TFT, so the color and refresh rate is pretty good; but with a resolution of just 128×160, we’d recommend keeping your expectations low in regards to visual fidelity.
What’s really interesting about this project is how low the part count is. All you need is the ST7735R display and the ESP8266 itself (or the development board of your choice, naturally). Even the 3D printed frame is technically optional. The display is driven by SPI, so with the power added in, that’s only eight wires that need to be soldered between the two devices. If you’re looking for an easy way to add a photo slideshow to a small device, say a conference badge, this is about as easy as it gets.
But where are the images coming from? You might think SPIFFS, but in this case [Tony] has converted the images to bitmaps and is loading them into the Arduino Sketch as a header file with PROGMEM. Helpfully, he provides the link for the tool he uses to convert the images into an array the graphics library can understand. This makes adding new images slightly time consuming, but we imagine if you have the need for something like this, it’s probably only showing a pretty specific set of images anyway.
As hackers, we occasionally forget that not everyone is enamored with the same nerdy minutia that we are. Configuring hardware by changing some lines in the code and compiling a new firmware doesn’t sound like that big of a deal to those of us who’ve been around the block a few times, but might as well be ancient Sanskrit to the average person. As long as your projects are for personal use this isn’t really a concern, but what if you plan on distributing the code for a project or perhaps even selling finished products? Shipping it out with hard-coded variables simply isn’t an option.
With the setup demonstrated in the video below by [Proto G], you don’t need anything more exotic than a web browser to configure the device. The end user simply searches for the device’s WiFi network, connects to it, and is presented with an easy to understand dialog which has them select a WiFi network to configure against along with some fields to enter in custom variables. All this information is then stored to a file on the SPI flash. When the ESP32 reboots, it reads the configuration from the saved file and applies the requested settings.
This is very similar to how many consumer devices are now configured, and even the less technically-inclined recipients of such a device should be able to work through the setup with a bit of hand-holding. If you plan on handing one of your ESP32 projects to John Q. Public, this is the kind of configuration you should be aiming for.