A high-performance, Raspberry Pi-powered alternative to commercial digital frames.
Commercial digital frames are often locked into proprietary ecosystems with limited file support and sub-par display quality. This project bridges that gap by combining a Raspberry Pi Zero 2W with a high-fidelity portable monitor, creating a fully customizable art station that supports high-resolution images, GIFs, and video playback.
The system runs a custom Python-based web server, allowing for remote management and dynamic content switching without needing to interact with the hardware directly.
- Controller: Raspberry Pi Zero 2W (Raspberry OS Lite 64-bit)
- Display: 1080p Portable Monitor
- Power: Dual-output Power Brick (Single-plug solution)
- Cooling: Passive Aluminum Heatsink (Thermal throttling prevention)
- Enclosure: 3D-Printed Case (Cable management & protection)
- Connectivity:
- Micro-HDMI to HDMI Converter
- USB-C (Monitor Power) & Micro-USB (Pi Power)
- Resource Optimized: Utilizes Raspberry OS Lite to maximize the 512MB RAM overhead.
- Python Backend: A custom Flask/Python script manages the media queue and system states.
- Web Interface: Remote dashboard to upload new art, toggle playback modes, and control the frame from any device on the network.
- Versatile Media Support: Native support for
.jpg,.png,.gif, and.mp4(H.264 hardware acceleration).
To run this on your own Pi:
# 1. Clone the repository
git clone [https://github.com/Raybie/Digital-Frame.git](https://github.com/Raybie/Digital-Frame.git)
# 2. Enter directory
cd Digital-Frame
# 3. Install requirements (ensure you have python3-pip installed)
pip install -r requirements.txt
# 4. Run the frame
python digitalframe.py- Memory Management: Handling high-res video on 512MB RAM required moving from a heavy Desktop environment to a CLI-based Python script with optimized libraries.
- Hardware Limitations: Researching the H.264 decoding capabilities of the Zero 2W to ensure smooth 1080p/30fps playback.
- Prototyping: Transitioning from a limited Bash-scripted loop to a robust Python web server for better UX.