A comprehensive, safety-focused dashboard system for drone flight operations featuring real-time weather monitoring with critical winds aloft tracking, flight scheduling with weather correlation, and aircraft safety tracking.
- Real-time countdown since last major aircraft incident
- Customizable incident details and imagery
- Professional split-screen layout
- Automatic updates every second
- Real-time METAR/TAF from multiple airports (KNFE, KNTU, KORF)
- PIREPs Integration - Actual winds aloft from pilot reports within 50nm
- Critical Winds Aloft Warnings - Surface vs. altitude wind comparison
- Go/No-Go indicators based on comprehensive wind analysis
- Multi-airport comparison to detect wind shear and local variations
- Color-coded status (Green=GO, Yellow=CAUTION, Red=NO-GO)
- Auto-refresh every 10 minutes
Why This Matters: During a recent flight operation, surface winds were 0kt but winds at 200-400ft AGL reached 20kt, nearly causing an accident. This critical feature was added to prevent similar incidents.
Features:
- Displays recent pilot reports (PIREPs) within 50nm
- Highlights low-altitude reports (<2000ft) most relevant to drone operations
- Automatic warnings when winds aloft exceed 15kt (CAUTION) or 20kt (NO-GO)
- Critical alerts when no PIREPs available but surface winds are calm
- Conservative wind forecasting with +5kt buffer
Read the complete Winds Aloft Safety Guide
- Flight window scheduling with start/end times
- Automatic weather forecast integration
- Color-coded weather indicators for each scheduled flight
- Today's vs. upcoming flights separation
- Web-based editor accessible from any network device
- Team logo integration
- Conservative wind thresholds with winds aloft consideration
- 30-second rotation between all three dashboards
- Chromium kiosk mode for clean TV display
- Auto-start on boot capability
- Configurable display timing
- Raspberry Pi 5 (16GB recommended) or Raspberry Pi 4
- HDMI display or TV
- Keyboard/mouse for initial setup
- Network connection (Ethernet or Wi-Fi)
- Raspberry Pi OS (64-bit recommended)
- Python 3.7 or higher
- Chromium browser
- Internet connection for weather data
# 1. Clone the repository
git clone https://github.com/yourusername/drone-dashboard-system.git
cd drone-dashboard-system
# 2. Run the installer
chmod +x install.sh
./install.sh
# 3. Add your custom images
# Copy your incident photo
cp /path/to/your/photo.jpg ~/aircraft-counter/incident-image.jpg
# Copy your team logo
cp /path/to/your/logo.png ~/flight-schedule/logo.png
# 4. Enable auto-login for TV display (recommended)
sudo raspi-config
# Navigate to: System Options β Boot/Auto Login β Desktop Autologin
# 5. Reboot to start automatically
sudo reboot# Start all services
~/start-all-dashboards.sh- Dashboards automatically rotate every 30 seconds
Replace YOUR_PI_IP with your Pi's IP address (find with hostname -I):
- Aircraft Counter:
http://YOUR_PI_IP:8000 - Weather Dashboard:
http://YOUR_PI_IP:8002 - Flight Schedule Display:
http://YOUR_PI_IP:8001 - Flight Schedule Editor:
http://YOUR_PI_IP:8001/edit.html
Edit ~/weather-dashboard/weather-proxy.py:
airports = ['KNFE', 'KNTU', 'KORF'] # Change to your local airportsEdit ~/weather-dashboard/index.html:
const SURFACE_WIND_LIMIT = 20; // Surface NO-GO threshold (kt)
const ALOFT_WIND_CAUTION = 15; // Winds aloft CAUTION threshold (kt)
const ALOFT_WIND_LIMIT = 20; // Winds aloft NO-GO threshold (kt)Edit ~/rotate-dashboard.sh:
DISPLAY_TIME=30 # Seconds per dashboardEdit ~/aircraft-counter/index.html and modify the incidentInfo object around line 40.
Surface winds do NOT represent winds at your operating altitude.
Before EVERY flight:
- β Check the weather dashboard for recent PIREPs
- β Verify multi-airport wind consistency
- β If surface is calm but no PIREPs β USE EXTREME CAUTION
- β Consider calling Norfolk Tower (KORF) 119.3 MHz for winds at altitude
- β When in doubt, DO NOT FLY
- π’ GO: All winds < 15kt, PIREPs confirm safe conditions
- π‘ CAUTION: Winds 15-19kt, no recent PIREPs, or marginal conditions
- π΄ NO-GO: Winds β₯20kt, missing critical data, or unsafe conditions
Read the Winds Aloft Safety Guide for complete procedures.
- Winds Aloft Safety Guide - Critical safety feature documentation
- CHANGELOG - Version history and updates
- LICENSE - MIT License
# Check if autostart is configured
cat ~/.config/lxsession/LXDE-pi/autostart
# Manually start
~/start-all-dashboards.sh# Check if weather server is running
ps aux | grep weather-proxy
# Check logs
cat /tmp/weather-server.log
# Restart weather server
pkill -f weather-proxy
cd ~/weather-dashboard
python3 weather-proxy.py# Kill all dashboard processes
pkill chromium
pkill -f "http.server"
pkill -f weather-proxy
pkill -f server.py
# Wait a moment
sleep 3
# Restart
~/start-all-dashboards.sh# Kill rotation
pkill -f rotate-dashboard
pkill chromium
# Restart rotation
~/rotate-dashboard.sh &# Check if ports are listening
netstat -tuln | grep -E "8000|8001|8002"
# Check firewall (if enabled)
sudo ufw status
# Get your Pi's IP address
hostname -Idrone-dashboard-system/
βββ aircraft-counter/ # Safety counter dashboard
β βββ index.html
β βββ incident-image.jpg # Add your own
β
βββ weather-dashboard/ # Weather with PIREPs & winds aloft
β βββ index.html
β βββ weather-proxy.py
β
βββ flight-schedule/ # Schedule with weather correlation
β βββ index.html # Display
β βββ edit.html # Editor
β βββ server.py # Backend
β βββ schedule.json # Auto-generated
β βββ logo.png # Add your own
β
βββ scripts/ # Startup and rotation scripts
β βββ start-all-dashboards.sh
β βββ rotate-dashboard.sh
β
βββ docs/ # Documentation
β βββ WINDS_ALOFT_GUIDE.md
β
βββ install.sh # Automated installer
βββ CHANGELOG.md # Version history
βββ LICENSE # MIT License
βββ .gitignore # Git ignore rules
βββ README.md # This file
cd drone-dashboard-system
git pull origin main
# Copy updated files
cp weather-dashboard/weather-proxy.py ~/weather-dashboard/
cp weather-dashboard/index.html ~/weather-dashboard/
cp flight-schedule/index.html ~/flight-schedule/
# Restart services
pkill -f weather-proxy
pkill -f server.py
~/start-all-dashboards.shContributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Test all changes on actual hardware before submitting
- Update documentation for new features
- Follow existing code style
- Add comments for complex logic
- Update CHANGELOG.md
See CHANGELOG.md for detailed version history.
Critical Safety Update:
- β¨ Multi-airport METAR display (KNFE, KNTU, KORF)
- β¨ PIREPs integration for actual winds aloft observations
- β¨ Enhanced go/no-go logic considering winds aloft
- β¨ Conservative wind buffers (+5kt to forecasts)
- π Comprehensive winds aloft safety documentation
- π Improved auto-start reliability
β οΈ Added critical warnings when PIREPs unavailable
This project is licensed under the MIT License - see the LICENSE file for details.
- NOAA Aviation Weather Center - METAR, TAF, and PIREP data
- National Weather Service - Hourly forecast data
- Wiggles Team - Real-world testing and feedback
- Open source community
IMPORTANT SAFETY NOTICE:
This system is a tool to assist with flight planning decisions. It does NOT replace:
- β Proper weather briefing from qualified sources
- β Pilot judgment and experience
- β Official NOTAMs and TFRs
- β Required preflight procedures and checklists
- β Compliance with FAA/CAA regulations
The system provides recommendations, but YOU are responsible for all flight safety decisions.
This software is provided "as is" without warranty of any kind. The authors and contributors are not liable for any damages, injuries, or losses resulting from the use of this software. Always verify information from multiple official sources before flight operations.
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
If this project helps make your operations safer, please consider giving it a star! β
Built for safer drone operations
Developed | Last Updated: January 23, 2026