A second-pass content audit checked the guides' substantive claims against the code (the first pass only fixed mechanical drift). Fixes: - GETTING_STARTED: described booting a prebuilt SD image and seeing default clock/weather plugins — neither exists. Now documents the real install (Pi OS Lite + one-shot installer / first_time_install.sh) and that displays come from the Plugin Store. Duration and ordering instructions moved to the Rotation tab where the controls actually live. - WEB_INTERFACE_GUIDE: three whole tabs were undocumented (Rotation, Backup & Restore, Tools) and the Display tab's Vegas Scroll section was unmentioned. Fonts overrides are per display element (not per plugin); Logs has an Auto-scroll checkbox (not a Pause button); the aspirational keyboard-shortcut list and no-JS claim removed. - TROUBLESHOOTING: the hand-written service-file template (wrong user, wrong ExecStart, dropped the autostart gate) replaced with the real systemd/ units + install scripts; recovery steps no longer copy placeholder units verbatim; WiFi curl endpoint corrected to /api/v3/; cache-clearing advice now targets the real cache locations. - ADVANCED_FEATURES: removed a false claim that CacheManager has no delete(); fixed two example snippets that raise TypeError (BackgroundDataService and get_config_file_mode signatures); fixed cache paths, a 5-minute TTL that is actually 1 hour, and the vegas table now links the complete 26-key reference. - EMULATOR_SETUP_GUIDE: documented run.py flags that don't exist (--plugin/--test-plugins) removed in favor of dev_server.py and check_plugin.py; shipped emulator config values corrected (browser adapter default on :8888, not pygame). - PLUGIN_QUICK_REFERENCE: drag-and-drop reordering is shipped, not 'not yet supported'; discovery-fallback and registry-repo claims corrected. PLUGIN_API_REFERENCE: get_vegas_segment_width returns panels, not pixels. CONTRIBUTING: the repo uses flake8/mypy/bandit pre-commit hooks, not black/ruff, and tests need requirements-test.txt. - SKIN_SYSTEM/DEVELOPER_QUICK_REFERENCE: stale module paths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SXb4mKcAkVaxkeTb3YnAdr
11 KiB
Getting Started with LEDMatrix
Welcome
This guide will help you set up your LEDMatrix display for the first time and get it running in under 30 minutes.
Prerequisites
Hardware:
- Raspberry Pi (3, 4, or 5 recommended)
- RGB LED Matrix panel (32x64 or 64x64)
- Adafruit RGB Matrix HAT or similar
- Power supply (5V, 4A minimum recommended)
- MicroSD card (16GB minimum)
Network:
- WiFi network (or Ethernet cable)
- Computer with web browser on same network
Quick Start
1. Install LEDMatrix
There is no prebuilt SD card image — you install LEDMatrix onto stock Raspberry Pi OS Lite yourself:
- Flash Raspberry Pi OS Lite to the MicroSD card (Raspberry Pi Imager)
- Connect the LED matrix to your Raspberry Pi, insert the card, and power on
- SSH into the Pi and run the one-shot installer:
or clone the repo and run
curl -fsSL https://raw.githubusercontent.com/ChuckBuilds/LEDMatrix/main/scripts/install/one-shot-install.sh | bashsudo ./first_time_install.sh— see the README Installation Steps / Quick Install for full details
Expected Behavior after install:
- LED matrix will light up
- A fresh install ships only the bundled
starlark-appsandweb-ui-infoplugins — clock, weather, sports, etc. must be installed from the Plugin Store (web UI → Plugin Manager) before anything else displays - Pi creates WiFi network "LEDMatrix-Setup" if not connected
2. Connect to WiFi
If you see "LEDMatrix-Setup" WiFi network:
- Connect your device to "LEDMatrix-Setup" (open network, no password)
- Open browser to:
http://192.168.4.1:5000 - Navigate to the WiFi tab
- Click "Scan" to find your WiFi network
- Select your network, enter password
- Click "Connect"
- Wait for connection (LED matrix will show confirmation)
If already connected to WiFi:
- Find your Pi's IP address (check your router, or run
hostname -Ion the Pi) - Open browser to:
http://your-pi-ip:5000
3. Access the Web Interface
Once connected, access the web interface:
http://your-pi-ip:5000
You should see:
- Overview tab with system stats
- Live display preview
- Quick action buttons
Initial Configuration (15 Minutes)
Step 1: Configure Display Hardware
- Open the Display tab
- Set your matrix configuration:
- Rows: 32 or 64 (match your hardware)
- Columns: commonly 64 or 96; the web UI accepts any integer in the 1–128 range, but 64 and 96 are the values the bundled panel hardware ships with
- Chain Length: Number of panels chained horizontally
- Hardware Mapping: usually
adafruit-hat-pwm(with the PWM jumper mod) oradafruit-hat(without). See the root README for the full list. - Brightness: 70–90 is fine for indoor use
- Click Save
- From the Overview tab, click Restart Display Service to apply
Tip: if the display shows garbage or nothing, the most common culprits
are an incorrect hardware_mapping, a gpio_slowdown value that doesn't
match your Pi model, or panels needing the E-line mod. See
TROUBLESHOOTING.md.
Step 2: Set Timezone and Location
- Open the General tab
- Set your timezone (e.g.,
America/New_York) and location - Click Save
Correct timezone ensures accurate time display, and location is used by weather and other location-aware plugins.
Step 3: Install Plugins
- Open the Plugin Manager tab
- Scroll to the Plugin Store section to browse available plugins
- Click Install on the plugins you want
- Wait for installation to finish — installed plugins appear in the Installed Plugins section above and get their own tab in the second nav row
- Toggle the plugin to enabled
- From Overview, click Restart Display Service
You can also install community plugins straight from a GitHub URL using the Install from GitHub section further down the same tab — see PLUGIN_STORE_GUIDE.md for details.
Step 4: Configure Plugins
- Each installed plugin gets its own tab in the second navigation row
- Open that plugin's tab to edit its settings (favorite teams, API keys, update intervals, etc.)
- Click Save
- Restart the display service from Overview so the new settings take effect
Note: how long each plugin stays on screen is not set in the
plugin's own tab — use the Rotation tab's Screen Durations
section instead (saved to display.display_durations in
config.json).
Example: Weather Plugin
- Set your location (city, state, country)
- Add an API key from OpenWeatherMap (free signup) to
config/config_secrets.jsonor directly in the plugin's config screen - Set the update interval (300 seconds is reasonable)
Testing Your Display
Run a single plugin on demand
The fastest way to verify a plugin works without waiting for the rotation:
- Open the plugin's tab (second nav row)
- Scroll to On-Demand Controls
- Click Run On-Demand — the plugin runs immediately even if disabled
- Click Stop On-Demand to return to the normal rotation
Check the live preview and logs
- The Overview tab shows a Live Display Preview that mirrors what's on the matrix in real time — handy for debugging without looking at the panel.
- The Logs tab streams the display and web service logs. Look for
ERRORlines if something isn't working; normal operation just showsINFOmessages about plugin rotation.
Common First-Time Issues
Display Not Showing Anything
Check:
- Power supply connected and adequate (5V, 4A minimum)
- LED matrix connected to the bonnet/HAT correctly
- Display service running:
sudo systemctl status ledmatrix - Hardware configuration matches your matrix (rows/cols/chain length)
Fix:
- Restart from the Overview tab → Restart Display Service
- Or via SSH:
sudo systemctl restart ledmatrix
Web Interface Won't Load
Check:
- Pi is connected to network:
ping your-pi-ip - Web service running:
sudo systemctl status ledmatrix-web - Correct port: the web UI listens on
:5000 - Firewall not blocking port 5000
Fix:
- Restart web service:
sudo systemctl restart ledmatrix-web - Check logs:
sudo journalctl -u ledmatrix-web -n 50
Plugins Not Showing
Check:
- Plugin is enabled (toggle on the Plugin Manager tab)
- Display service was restarted after enabling
- Plugin's display duration is non-zero
- No errors in the Logs tab for that plugin
Fix:
- Enable the plugin from Plugin Manager
- Click Restart Display Service on Overview
- Check the Logs tab for plugin-specific errors
Weather Plugin Shows "No Data"
Check:
- API key configured (OpenWeatherMap)
- Location is correct (city, state, country)
- Internet connection working
Fix:
- Sign up at openweathermap.org (free)
- Add API key to config_secrets.json or plugin config
- Restart display
Next Steps
Customize Your Display
Adjust display durations:
- Open the Rotation tab and use the Screen Durations section to
set how long each plugin stays on screen per rotation (saved to
display.display_durations).
Organize plugin order:
- The Rotation tab also has a drag-and-drop Rotation Order list
(saved to
display.plugin_rotation_order). Enable/disable plugins from the Plugin Manager tab.
Add more plugins:
- Check the Plugin Store section of Plugin Manager for new plugins.
- Install community plugins straight from a GitHub URL via Install from GitHub on the same tab.
Enable Advanced Features
Vegas Scroll Mode:
- Continuous scrolling ticker display
- See ADVANCED_FEATURES.md for details
On-Demand Display:
- Manually trigger specific plugins
- Pin important information
- See ADVANCED_FEATURES.md for details
Background Services:
- Non-blocking data fetching
- Faster plugin rotation
- See ADVANCED_FEATURES.md for details
Explore Documentation
- WEB_INTERFACE_GUIDE.md - Complete web interface guide
- WIFI_NETWORK_SETUP.md - WiFi configuration details
- PLUGIN_STORE_GUIDE.md - Installing and managing plugins
- TROUBLESHOOTING.md - Solving common issues
- ADVANCED_FEATURES.md - Advanced functionality
Join the Community
- Report issues on GitHub
- Share your custom plugins
- Help others in discussions
- Contribute improvements
Quick Reference
Service Commands
# Check status
sudo systemctl status ledmatrix
sudo systemctl status ledmatrix-web
# Restart services
sudo systemctl restart ledmatrix
sudo systemctl restart ledmatrix-web
# View logs
sudo journalctl -u ledmatrix -f
sudo journalctl -u ledmatrix-web -f
File Locations
/home/ledpi/LEDMatrix/
├── config/
│ ├── config.json # Main configuration
│ ├── config_secrets.json # API keys and secrets
│ └── wifi_config.json # WiFi settings
├── plugin-repos/ # Installed plugins (default location)
└── web_interface/ # Web interface files
Cached data does not live in the project directory — the cache manager uses the first writable location among
/var/cache/ledmatrix,~/.ledmatrix_cache,/opt/ledmatrix/cache, and$TMPDIR/ledmatrix_cache.
The plugin install location is configurable via
plugin_system.plugins_directoryinconfig.json. The default isplugin-repos/. Plugin discovery (PluginManager.discover_plugins()) only scans the configured directory — it does not fall back toplugins/. However, the Plugin Store install/update path and the web UI's schema loader do also probeplugins/so the dev symlinks created byscripts/dev/dev_plugin_setup.shkeep working.
Web Interface
Main Interface: http://your-pi-ip:5000
System tabs:
- Overview System stats, live preview, quick actions
- General Timezone, location, plugin-system settings
- WiFi Network selection and AP-mode setup
- Schedule Power and dim schedules
- Display Matrix hardware configuration
- Rotation Rotation order (drag-and-drop) and screen durations
- Config Editor Raw config.json editor
- Backup & Restore Config backup and restore
- Fonts Upload and manage fonts
- Logs Real-time log viewing
- Cache Cached data inspection and cleanup
- Operation History Recent service operations
- Tools System diagnostics, updates, dependencies, maintenance
Plugin tabs (second row):
- Plugin Manager Browse the Plugin Store, install/enable plugins
- <plugin-id> One tab per installed plugin for its config
WiFi Access Point
Network Name: LEDMatrix-Setup
Password: (none - open network)
URL when connected: http://192.168.4.1:5000
Congratulations!
Your LEDMatrix display is now set up and running. Explore the web interface, try different plugins, and customize it to your liking.
Need Help?
- Check TROUBLESHOOTING.md
- Review detailed guides for specific features
- Report issues on GitHub
- Ask questions in community discussions
Enjoy your LED matrix display!