Digital Window Six Pack Sign

From HeatSync Labs Wiki
Jump to navigation Jump to search

Purpose

The goal of the Six Pack Sign is to have an always on (except maybe from midnight to 6 AM) sign that shows people the six easiest ways to dip their toe in the pool with HeatSync Labs. It will be a 3x2 static display with QR codes.

The other existing signs are great for what they do, but require some dwell time by the passer-by. The Six Pack is to try to capture people who are impatient.

Raspberry Pi

Chat GPT Recommends

Note: ChatGPT didn't specify a distro to use. Since it recommends fbi, which does not need an X server, I'm using Pi OS Lite 32 from here: https://www.raspberrypi.com/software/operating-systems/

Setting up your Raspberry Pi to display a single image full-screen as a digital signboard upon boot, and allowing for image updates via SSH followed by a reboot, is a straightforward project. I’ll guide you thro ugh the process step-by-step, and also provide a method to schedule screen blanking using cron.

Step 1: Prepare Your Raspberry Pi

Ensure your Raspberry Pi OS is updated and that you have SSH access configured:

sudo apt update
sudo apt upgrade
sudo raspi-config

In raspi-config, enable SSH if it’s not already enabled. Choose Interfacing Options, select SSH, and then choose Yes.

Step 2: Install Required Software

You’ll need to install a lightweight image viewer that can display images full-screen. fbi (Frame Buffer Image viewer) is a great tool for this because it can run without X server:

sudo apt install fbi

Step 3: Configure Your Image Display Script

  1. Upload your initial image to the Raspberry Pi, e.g., /home/pi/image.jpg.
  2. Create a script that will run at boot to display this image. Open a text editor:
sudo nano /home/pi/show_image.sh
  1. Add the following lines to the script:
#!/bin/bash
# Script to display an image full-screen using fbi

# Turn off screen blanking
setterm -blank 0 -powerdown 0

# Use fbi to display the image
sudo fbi -T 1 -noverbose -a /home/pi/image.jpg
  1. Make the script executable:
chmod +x /home/pi/show_image.sh

Step 4: Setup Autostart Using Crontab

Edit the crontab to run your script at boot:

sudo crontab -e

Add this line at the end of the file to execute the script at boot:

@reboot /bin/bash /home/pi/show_image.sh

Bonus: Schedule Screen Blanking

If you want to blank the screen from midnight to 6 AM, you can add additional cron jobs to turn the HDMI output off and on:

# Turn off HDMI at midnight
0 0 * * * /usr/bin/tvservice -o

# Turn on HDMI at 6 AM
0 6 * * * /usr/bin/tvservice -p && sudo chvt 6 && sudo chvt 7

This uses tvservice to control the HDMI output, and chvt to refresh the tty after turning HDMI back on, which is necessary to make the display reappear correctly.

Step 5: Reboot Your Raspberry Pi

Now, reboot your Raspberry Pi to see the changes:

sudo reboot

Managing Image Updates via SSH

Whenever you want to change the displayed image: 1. SSH into your Raspberry Pi. 2. Replace the image at /home/pi/image.jpg with your new image. 3. Reboot the Raspberry Pi to display the new image.

This setup gives you a simple, effective digital signboard with optional screen blanking. You can update the image anytime via SSH, and the Raspberry Pi will handle the rest automatically upon reboot.