Miniature Digital Photo Frame

by ssiddharth in Circuits > Arduino

549 Views, 1 Favorites, 0 Comments

Miniature Digital Photo Frame

Untitled.jpg

Older photo frames have given way to digital photo frames which can can display different images, thereby reducing the amount of space taken to display the photos. In this project, I have shrunk the digital photo frame so that it could be used on a work or study desk, or on the dashboard of a car.

Materials Required

I. Hardware requirements:

A) Adafruit 1.44” TFT display

B) Wemos D1 Mini (you could use other ardunio based boards)

C) Jumper wires (if you do not want to print a PCB)

General purpose PCB (once again if you do not want to print a PCB)

II. Software requirements:

The code has been tested and found to be working with the following versions of software

A) Arduino IDE – 1.8.13

B) Fastone image resizer

C) Fritzing – Any version

D) Arduino Libraries

1. ArduinoJson – 5.13.5

2. Adafruit ST7735 and ST7739 Library – 1.6.0

3. Adafruit GFX Library – 1.10.4

4. TFT – 1.2.1

Connection Diagram

vlcsnap-2020-12-29-18h54m21s348.png

The connections have been made in the Breadboard section of the Fritzing software as shown above. Mind the “Lite” pin connection, without which the backlight will not work.

PCB Design

vlcsnap-2020-12-29-18h55m34s782.png

In the PCB tab of the Fritzing software, the PCB size and connections can be finalized. This design is difficult to be fabricated as a single layer board, hence two layers are being used. The pins have been labelled as the silkscreen print. The final PCB design has been shown below. You could use the “autoroute” function if you find it difficult to route the tracks.

Printing the PCB

vlcsnap-2020-12-29-18h56m02s046.png

To fabricate the PCB, the PCB design is first exported in the Gerber format as shown in the image. I used the services of https://jlcpcb.com to fabricate the PCB, as they offered excellent value for money.

Software for the Photo Frame

vlcsnap-2020-12-29-18h52m47s486.png

I scripted the Arduino program that displays bitmap (BMP) images on the TFT display. I added a variable to change the duration of the slideshow or in other words, the time interval between concurrent images. You can find the full code here Arduino Sketch.

The program can be compiled and uploaded to the Wemos D1 Mini (or any other board that you may use). If you run into compilation errors, please double check the version of the libraries that you have used/installed against the version that I have listed above in the requirements.

Adding the Images

vlcsnap-2020-12-29-18h52m13s151.png
vlcsnap-2020-12-29-18h52m23s153.png
vlcsnap-2020-12-29-18h52m30s363.png

The display has a fixed dimension of 128x128 pixels. So, it will not display larger images accurately. All the images to be used have to be resized to the dimensions of the TFT display. I downloaded emoji images of random sizes as shown in the first image.

Using the Fastone image resizer software, the emoji images were resized to the TFT limits and in the BMP format as shown in the second image.

The resized images have been shown below. They can now be copied to a SD Card and inserted into the SD Card slot of the Adafruit display.

Final Outcome

Untitled.jpg

The TFT display and the Wemos D1 mini has been put together via the headers. For a size comparison, the mini digital photo frame has been placed beside a Mr.Bean Funko-Pop figure.