Digital Window Six Pack Sign: Difference between revisions

From HeatSync Labs Wiki
Jump to navigation Jump to search
(Created page with "= 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 == Setting up your Raspberry Pi...")
 
 
Line 5: Line 5:


= Raspberry Pi =
= Raspberry Pi =
== Chat GPT Recommends ==
== 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
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 <code>cron</code>.
ugh the process step-by-step, and also provide a method to schedule screen blanking using <code>cron</code>.

Latest revision as of 04:47, 27 April 2024

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.