intermediate 45 minutes
Raspberry Pi LED Server Setup
Complete guide to setting up a Raspberry Pi as a Beeboard LED wall controller.
Raspberry Pi LED Server Setup
This guide walks you through setting up a Raspberry Pi to control LEDs on your climbing wall.
Requirements
Hardware
- Raspberry Pi 2, 3, or 4 (Pi Zero 2 W also works)
- MicroSD Card (16GB or larger)
- 5V Power Supply (2.5A+ recommended)
- WS2812B LED Strip
- Appropriate power supply for LEDs (5V, amps depend on LED count)
Software
- Raspberry Pi Imager (download from raspberrypi.org)
- SSH client (Terminal on Mac/Linux, PuTTY on Windows)
Step 1: Flash Raspberry Pi OS
- Download and open Raspberry Pi Imager
- Click “Choose OS” → “Raspberry Pi OS (other)” → “Raspberry Pi OS (64-bit)”
Important: Use Debian 12 (bookworm) based versions. Newer versions may have Python compatibility issues.
-
Click the gear icon (⚙️) for advanced settings:
- ✅ Enable SSH
- ✅ Set username and password
- ✅ Configure wireless LAN (enter your WiFi credentials)
- Set hostname (e.g.,
beeboard-wall1)
-
Select your SD card and click “Write”
Step 2: Boot and Connect
- Insert the SD card into your Pi and power it on
- Wait 2-3 minutes for first boot
- Find your Pi’s IP address (check your router or use
ping beeboard-wall1.local) - SSH into the Pi:
ssh pi@beeboard-wall1.local
# Or use the IP address
ssh pi@192.168.1.XXX
Step 3: Configure Static IP
For reliable communication, set a static IP address.
Using NetworkManager (Newer OS)
# Find your WiFi connection name
nmcli connection show
# Set static IP (adjust for your network)
sudo nmcli connection modify "Your-WiFi-Name" \
ipv4.method manual \
ipv4.addresses 192.168.68.101/24 \
ipv4.gateway 192.168.68.1 \
ipv4.dns "192.168.68.1 8.8.8.8"
# Restart networking
sudo nmcli connection down "Your-WiFi-Name"
sudo nmcli connection up "Your-WiFi-Name"
Step 4: Install Dependencies
# Update system
sudo apt update && sudo apt upgrade -y
# Install Python and packages
sudo apt install -y python3 python3-pip git python3-dev
# Install LED libraries
sudo pip3 install --break-system-packages flask flask-cors colorlog
sudo pip3 install --break-system-packages adafruit-circuitpython-neopixel
Step 5: Clone Beeboard Server
# Clone the LED server repository
git clone https://github.com/beeboard/led-server.git ~/beeboard
# Navigate to the server directory
cd ~/beeboard
Step 6: Configure the Server
Edit the configuration file:
nano ~/beeboard/config.py
Set your LED count and GPIO pin:
LED_COUNT = 200 # Number of LEDs in your strip
LED_PIN = 18 # GPIO pin (18 uses PWM)
LED_BRIGHTNESS = 255 # 0-255
Step 7: Test the Server
# Run the server manually to test
sudo python3 ~/beeboard/beeboard_server.py
You should see output indicating the server is running on port 5000.
Test from your computer:
curl http://192.168.68.101:5000/health
# Should return: {"status": "ok"}
Step 8: Set Up Auto-Start
Create a systemd service so the server starts automatically:
sudo nano /etc/systemd/system/beeboard.service
Add this content:
[Unit]
Description=Beeboard LED Server
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/pi/beeboard
ExecStart=/usr/bin/python3 /home/pi/beeboard/beeboard_server.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable beeboard.service
sudo systemctl start beeboard.service
# Check status
sudo systemctl status beeboard.service
Step 9: Connect in Beeboard App
- Open Beeboard app
- Go to your Wall Settings
- Enter the LED Server URL:
http://192.168.68.101:5000 - Test the connection
Troubleshooting
LEDs Don’t Light Up
- Check power supply connections
- Verify GPIO pin matches config
- Run
sudo python3 -c "import board; print(board.D18)"to test GPIO
Server Won’t Start
- Check if port 5000 is in use:
sudo lsof -i :5000 - View logs:
journalctl -u beeboard.service -f
Permission Errors
- The server must run as root for GPIO access
- Check service file has
User=root
Next Steps
- LED Strip Wiring Guide - How to wire your LEDs
- Network Configuration - Advanced networking
- Multiple Walls - Setting up multiple LED walls