Skip to content

This project is designed to display real-time system information on a 128x32 I2C OLED display connected to a Raspberry Pi. The information shown includes IP Address, CPU Usage, CPU Temperature, Current Time, and RAM Usage. The script is set up to run automatically as a systemd service when the Raspberry Pi boots up

License

Notifications You must be signed in to change notification settings

TheInfamousToTo/PI-HAT-Screen

Repository files navigation

Raspberry Pi OLED System Info Display Logo

Pi HAT Screen - OLED System Info Display

An entertaining system information display for Raspberry Pi with 128x32 I2C OLED screen featuring scrolling text, burn-in prevention animations, and auto-start functionality.

✨ Features

  • 📊 System Info: IP Address, CPU Usage, Temperature, Time, RAM Usage
  • 📰 Scrolling Display: TV news ticker style synchronized scrolling text
  • 🎬 15 Animations: Matrix rain, bouncing ball, anime characters, One Piece Luffy, Super Sonico, and more
  • 🛡️ Burn-in Prevention: Automatic animations every 3 minutes to extend OLED lifespan
  • 🔧 Auto-Start: Systemd service runs on boot
  • ⚙️ Optimized: 80% brightness, smooth scrolling, virtual environment

🎮 Animations

The system includes 15+ entertaining animations that run every 3 minutes:

  • Matrix Digital Rain
  • Bouncing Ball with Trails
  • Sine Wave Patterns
  • Starfield Effect
  • Analog Clock
  • System Progress Bars
  • Anime Hearts & Kawaii Faces
  • Neko Cat Ears
  • One Piece Luffy Fighting
  • Super Sonico Character
  • Seductive Eyes & Bouncing Curves
  • Wave Interference
  • GitHub Creator Signature

🔧 Requirements

Hardware:

  • Raspberry Pi (any model with I2C support)
  • 128x32 I2C OLED Display (SSD1306)
  • Jumper wires

Software:

  • Raspberry Pi OS
  • Python 3 + pip

📡 Wiring

OLED Pin Raspberry Pi Pin
VCC 3.3V (Pin 1)
GND GND (Pin 6)
SCL GPIO3 (Pin 5)
SDA GPIO2 (Pin 3)

🚀 Quick Install

# 1. Enable I2C
sudo raspi-config
# Navigate to: Interface Options -> I2C -> Yes

# 2. Install dependencies
sudo apt update && sudo apt install python3-pip python3-venv ttf-dejavu -y

# 3. Clone repository
git clone https://github.com/TheInfamousToTo/Pi-HAT-Screen.git
cd Pi-HAT-Screen

# 4. Setup virtual environment
python3 -m venv ~/screen_env
source ~/screen_env/bin/activate
pip install Pillow adafruit-circuitpython-ssd1306 psutil

# 5. Create systemd service
cp info-screen.service.example info-screen.service
nano info-screen.service  # Edit YOUR_USERNAME to your actual username
sudo cp info-screen.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable info-screen.service
sudo systemctl start info-screen.service

# 6. Check status
sudo systemctl status info-screen.service

🛠️ Service Management

# Start service
sudo systemctl start info-screen.service

# Stop service  
sudo systemctl stop info-screen.service

# Check status
sudo systemctl status info-screen.service

# View logs
sudo journalctl -u info-screen.service -f

🎯 Configuration

The main script (info-screen.py) includes:

  • Scrolling speed adjustment
  • Animation timing (3 minutes default)
  • Brightness control (80% default)
  • Display refresh rate (0.15s for smooth scrolling)

🔍 Troubleshooting

Permission Issues:

sudo usermod -a -G i2c,gpio $USER
sudo reboot

Service Not Starting:

sudo journalctl -u info-screen.service -f

Display Issues:

# Check I2C devices
sudo i2cdetect -y 1

📁 Project Structure

Pi-HAT-Screen/
├── info-screen.py          # Main script with animations
├── info-screen.service     # Systemd service file
├── README.md              # This file
├── LICENSE               # MIT License
├── version              # Version info
└── assets/
    └── logo.png         # Project logo

🤝 Contributing

Created by TheInfamousToTo

Feel free to submit issues and pull requests!

📄 License

MIT License - see LICENSE file for details.


Enjoy your animated Pi HAT Screen! 🎉

About

This project is designed to display real-time system information on a 128x32 I2C OLED display connected to a Raspberry Pi. The information shown includes IP Address, CPU Usage, CPU Temperature, Current Time, and RAM Usage. The script is set up to run automatically as a systemd service when the Raspberry Pi boots up

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages