Open-source real-time financial ticker display system with Raspberry Pi hub and multiple display options

Matrix portal scrolling display (example build).
Tickertronix-Open is a modular financial ticker system that transforms affordable hardware into professional-grade market displays. The system consists of a Raspberry Pi hub that fetches real-time market data and serves it to various display devices over your local network.
Preview the hub’s configuration pages to see what the built-in web experience looks like on mobile-sized screens:
-
Dashboard overview (hub API URL and navigation)
-
Live Prices (auto-refreshing price cards and scheduler status)
-
Device management (provisioned device details and settings)
-
Asset selection (stock search, active status, and selection list)
[Alpaca API] → [Raspberry Pi Hub] → [Display Devices]
(Free Tier) (Local Server) (Matrix/CYD/Custom)
Key Features:
- No cloud dependencies - runs entirely on your local network
- Free-tier API data (Alpaca Markets)
- Multiple display options (LED matrices, LCD screens)
- Expandable architecture - build your own display clients
- HMAC authentication for secure device communication
- Real-time updates for stocks, crypto, and forex
The central data server that fetches and distributes market data.
Hardware:
- Raspberry Pi Zero 2 W or newer
- MicroSD card (8GB+)
- 5V power supply
Features:
- Fetches data from Alpaca (stocks/crypto) and Twelve Data (forex)
- SQLite database for credentials and price history
- REST API on port 5001
- mDNS support (access via tickertronixhub.local)
- Automatic updates every 5 minutes
- Web UI for configuration
Continuous scrolling ticker across one or multiple 64x32 LED matrix panels.
Hardware:
- Adafruit Matrix Portal S3
- 64x32 RGB LED Matrix Panel(s) (1-6 panels)
- 5V/4A+ power supply 3D Printed Enclosure (3D Files Located at matrix-portal-scroll/3D Files)
- 4 x M6 X 10mm x 7mm Heat Inserts (2 needed for each additional panel)
- 4 x M6 x 10mm Button Head Screws (for end caps)
- M6 x 25mm Socket Head Cap Screws (2 screws needed for connecting enclosures for each panel)
- 4 x M2 x 6mm x 3.5mm heat inserts (for mounting Matrix Portal S3 to RH Endcap)
- 4 x m2 x 8mm Screws (for securing Matrix Portal S3 board to RH Endcap)
- 5/16 by 1 1/4 inch fluted wood dowels (2 per panel to align enclosures)
- 20mm rocker switch (for switching A1 to GRND for provisioning)
Features:
- Smooth scrolling ticker display
- Multi-panel support (chain up to 6 panels)
- CircuitPython firmware
- WiFi provisioning via captive portal
- Customizable fonts and scroll speed
- 3D printable enclosure
- Release bundle:
tickertronix-matrix-portal-scroll-v{version}.zipon GitHub Releases (or build locally with./scripts/build_matrix_portal_releases.sh)

Matrix Portal Scroll multi-panel build.
→ Full Setup Guide | → Setup Instructions
Shows one asset at a time on a 64x32 LED panel, cycling through your watchlist.
Hardware:
- Adafruit Matrix Portal S3
- Single 64x32 P3 RGB LED Matrix Panel
- 5V power supply
- 3D Printed Enclosure (3D Files Located at matrix-portal-single/3D Files)
- 4 x M6 X 10mm x 7mm Heat Inserts
- 4 x M6 x 10mm Button Head Screws
- 20mm rocker switch (for switching A1 to GRND for provisioning)
Features:
- Full-screen single-asset display
- Configurable dwell time (default 2.5s)
- Asset class ordering (stocks/crypto/forex)
- Minimal flicker transitions
- 4-color palette (black/white/green/red)
- 3D printable enclosure
- Release bundle:
tickertronix-matrix-portal-single-v{version}.zipon GitHub Releases (or build locally with./scripts/build_matrix_portal_releases.sh)

Matrix Portal Single one-panel build.
Touchscreen ticker display with interactive provisioning and stock browsing.
Hardware:
- ESP32-2432S028R (Cheap Yellow Display)
- USB-C cable for power
- Optional: 3D printed enclosure (3D files located in cyd-ticker-il9341/3D Files)
- 4 x M2 x 6mm x 3.5mm heat press inserts (for enclosure)
- 4 x m2 x 18mm socket head cap screws (for enclosure)
Features:
- 320x240 ILI9341 touchscreen display
- Touch-based WiFi provisioning
- Multi-asset cycling display
- Retro-styled UI with color-coded changes
- Local hub mode (no cloud authentication)
- SD card support for logging
- 3D printable retro case

CYD Ticker assembled build (ESP32-2432S028R).
git clone https://github.com/Tickertronix/Tickertronix-Open.git
cd Tickertronix-Open/raspberry-pi-hub
sudo ./setup.sh
tickertronix setup-credentials # Enter your Alpaca API credentials
tickertronix startChoose one or more display options and follow their respective setup guides linked above.
curl http://tickertronixhub.local:5001/health
curl http://tickertronixhub.local:5001/pricesPre-built firmware bundles are available on the Releases page.
-
Matrix Portal Scroll:
tickertronix-matrix-portal-scroll-v1.1.0.zipDrag-and-drop CircuitPython bundle (includes all libraries and fonts) -
Matrix Portal Single:
tickertronix-matrix-portal-single-v1.1.0.zipDrag-and-drop CircuitPython bundle (includes all libraries and fonts) -
Raspberry Pi Hub:
tickertronix-raspberry-pi-hub-v1.1.0.tar.gzSource tarball with automated setup script (sudo ./setup.sh) -
CYD Ticker:
tickertronix-cyd-ticker-source-v1.1.0.zipArduino source code bundle (compile in Arduino IDE - see CYD README)
# Matrix Portal devices
./scripts/build_matrix_portal_releases.sh 1.1.0
# Raspberry Pi Hub tarball
./scripts/build_pi_hub_release.sh 1.1.0
# CYD source bundle
./scripts/build_cyd_source_release.sh 1.1.0Versioning: All components share a unified version number (currently v1.1.0). When cutting a new release, create a git tag (e.g., v1.1.0) and GitHub Actions will automatically build and attach all release assets.
The Raspberry Pi Hub exposes a REST API for custom integrations:
| Endpoint | Description |
|---|---|
GET /health |
Health check |
GET /prices |
All tracked asset prices |
GET /prices/stocks |
Stock prices only |
GET /prices/crypto |
Crypto prices only |
GET /prices/forex |
Forex prices only |
GET /prices/{asset_class}/{symbol} |
Specific asset price |
Example Response:
{
"stocks": [
{
"symbol": "AAPL",
"name": "Apple Inc",
"price": 178.32,
"change": 2.45,
"change_percent": 1.39,
"timestamp": "2025-12-11T14:30:00Z"
}
]
}-
Alpaca Markets (Free)
- Sign up: https://alpaca.markets
- Get API credentials from dashboard
- Free tier includes real-time stock and crypto data
-
Twelve Data (Optional, for Forex)
- Sign up: https://twelvedata.com
- Free tier: 800 API calls/day
- Only needed if tracking forex pairs
- Raspberry Pi Hub: Any Raspberry Pi with WiFi (Zero 2 W, 3, 4, 5)
- Matrix Portal: Adafruit Matrix Portal S3 + LED panels
- CYD Ticker: ESP32-2432S028R (~$15 on AliExpress)
Tickertronix-Open/
├── raspberry-pi-hub/ # Raspberry Pi data hub
│ ├── docs/ # Deployment guides
│ ├── scripts/ # Setup scripts
│ └── README.md
├── matrix-portal-scroll/ # Multi-panel scrolling display
│ ├── fonts/ # BDF fonts
│ ├── lib/ # CircuitPython libraries
│ └── README.md
├── matrix-portal-single/ # Single-panel paging display
│ ├── 3D Files/ # STL files for enclosure
│ └── README.md
├── cyd-ticker-il9341/ # CYD touchscreen display
│ ├── CYD_Complete_System/ # Arduino/PlatformIO code
│ ├── 3D Files/ # STL files for retro case
│ └── README.md
└── README.md # This file
The Hub's API is device-agnostic. You can build custom displays using:
- ESP32/ESP8266 (Arduino/MicroPython)
- Raspberry Pi Pico W
- Web dashboards (HTML/JavaScript)
- Desktop applications (Python/Electron)
- Mobile apps
Authentication Options:
- Local Hub Mode: Direct HTTP access (no auth required within LAN)
- HMAC Mode: Secure HMAC-SHA256 authentication for cloud/remote access
Reference implementations:
- CYD:
cyd-ticker-il9341/CYD_Complete_System/api_functions.ino - Matrix Portal:
matrix-portal-scroll/api_client.py
-
Default Credentials: If using the pre-built Pi image, default login is:
- Username:
tickertronix - Password:
tickertronix - Change immediately after first login:
passwd
- Username:
-
Network Security:
- Hub API runs on local network (port 5001)
- No internet exposure by default
- Consider firewall rules if needed
-
API Keys:
- Stored securely in SQLite database
- Never committed to git
- Use environment variables for systemd service
# Check service status
sudo systemctl status tickertronix-hub
# View logs
journalctl -u tickertronix-hub -f
# Restart service
sudo systemctl restart tickertronix-hub- No data: Verify hub URL in device config
- WiFi issues: Re-provision device (ground A1 pin on boot for Matrix Portal)
- Authentication errors: Ensure hub is running and accessible
# If mDNS fails, find Pi IP
ping tickertronixhub.local # Should resolve to Pi's IP
# Or check router DHCP leases
# Test direct IP access
curl http://192.168.1.XXX:5001/healthContributions welcome! This is an open-source project under the MIT license.
Areas for contribution:
- New display device implementations
- Additional data sources
- UI improvements
- Documentation enhancements
- 3D printable enclosures
See CONTRIBUTING.md for guidelines.
MIT License - see LICENSE file for details.
- Documentation: See individual component README files
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Alpaca Markets for free-tier market data API
- Adafruit for Matrix Portal hardware and CircuitPython
- ESP32 community for CYD development resources