Skip to content

A lightweight Node.js application tailored for SoC's, that transforms your device into a dynamic image slideshow

License

Notifications You must be signed in to change notification settings

zMoooooritz/imageframe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imageframe

ImageFrame is a lightweight application for creating slideshows on displays or televisions. It runs efficiently on minimal hardware, such as a Raspberry Pi, making it an ideal choice for embedded systems.

Images are displayed using fbida, eliminating the need for a desktop environment. This allows the software to run smoothly even on low-power devices, including the Raspberry Pi Zero W.

Beyond simple image display, this application offers comprehensive slideshow management. See the Features section for a complete overview and the Preview section for screenshots.

A Node.js server runs in the background, enabling remote control of the image frame through a web interface. (Though calling Node.js a "background process" might be generous - it's one of the heaviest objects in the universe!)

Features

  1. Image Management: Upload, organize, and delete images with folder-based organization
  2. Custom Slideshows: Create personalized slideshows using images from multiple folders
  3. Scheduling: Schedule specific slideshows to play during predefined timeframes
  4. Remote Updates: Update the software directly from the web interface

Preview

Image 1 Image 2
Image 3 Image 4

Installation

Follow these steps to set up your imageframe:

1. Operating System Installation

Install a Debian-based Linux distribution suitable for your hardware. For Raspberry Pi devices, we recommend Raspberry Pi OS.

Installation Steps:

  1. Download and use the official Raspberry Pi Imager (available for Windows, macOS, and Linux)
  2. The official imager simplifies headless setup configuration
  3. Configure SSH, Wi-Fi, and user account during the imaging process

Warning

Ensure you select the correct storage device during installation to prevent data loss.

2. System Configuration

Connect to your device and configure the system:

# Connect via SSH (replace with your device's IP address)
ssh imageframe@192.168.1.100

# Switch to root user
sudo su

# Update the system
apt update && apt upgrade -y

# Set timezone (if not configured during imaging)
timedatectl set-timezone Region/City

# Configure passwordless sudo for convenience
visudo

Edit the sudoers file to uncomment this line:

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

Fix Hardware Acceleration (Raspberry Pi specific):

Edit the boot configuration:

sudo nano /boot/config.txt

Make these changes:

# Comment out or remove this line:
dtoverlay=vc4-kms-v3d

# Add this line instead:
dtoverlay=vc4-fkms-v3d

Reboot after making these changes:

sudo reboot

3. Application Setup

Install dependencies and set up the imageframe application:

# Install required packages
sudo apt install fbida git npm figlet -y

# Clone the repository
git clone https://github.com/zMoooooritz/imageframe ~/imageframe

# Run the setup script
cd ~/imageframe
bash scripts/setup.sh

Advanced Features

Enhanced Status Display

For users who want additional status information, a modified version of fbida is available in my fork. This enhancement allows the imageframe Web UI to display advanced state information about currently displayed images.

Note: This feature is optional and requires manual compilation. No pre-compiled binaries are provided, so users must:

  1. Compile the application for their specific hardware
  2. Install the necessary dependencies
  3. Replace the system fbida with the enhanced version

This modification provides a richer user experience but is not required for basic functionality.

Getting Started

After installation, access the web interface by navigating to your device's IP address in a web browser. From there, you can:

  • Upload and organize your images
  • Create custom slideshows
  • Set up scheduling
  • Monitor system status
  • Update the application

Enjoy your new imageframe!

About

A lightweight Node.js application tailored for SoC's, that transforms your device into a dynamic image slideshow

Topics

Resources

License

Stars

Watchers

Forks