Polish project for public release
- Add requirements.txt with Python dependencies - Add MIT LICENSE file - Add screenshot for README - Expand README with better documentation: - Quick start with git clone - Configuration example - Compatible receivers list - Custom backgrounds section - Credits section - Update CONFIG.md: - Fix Quick Start checklist (add pip install step) - Add systemd service instructions for auto-start - Remove CLAUDE.md from documentation list (dev-only file) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
63
CONFIG.md
63
CONFIG.md
@@ -217,8 +217,61 @@ All aircraft sprites should face **right (east)** - the code flips them automati
|
|||||||
|
|
||||||
## Quick Start Checklist
|
## Quick Start Checklist
|
||||||
|
|
||||||
1. [ ] Edit `config.json` with your receiver IP (or leave as AUTO)
|
1. [ ] Install dependencies: `pip install -r requirements.txt`
|
||||||
2. [ ] Set your location name, latitude, and longitude
|
2. [ ] Edit `config.json` with your receiver IP (or leave as AUTO)
|
||||||
3. [ ] Replace `north.png`, `east.png`, `south.png`, `west.png` with your local views
|
3. [ ] Set your location name, latitude, and longitude
|
||||||
4. [ ] Start the server: `python3 server.py`
|
4. [ ] (Optional) Add custom backgrounds to `backgrounds/custom/` and set `"theme": "custom"`
|
||||||
5. [ ] Open browser to `http://your-server-ip:2001`
|
5. [ ] Start the server: `python3 server.py`
|
||||||
|
6. [ ] Open browser to `http://your-server-ip:2001`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Running as a Service (Auto-Start)
|
||||||
|
|
||||||
|
To run Pixel-ADSB automatically on boot, create a systemd service:
|
||||||
|
|
||||||
|
### 1. Create the service file
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/systemd/system/pixel-adsb.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Add this content (adjust paths as needed):
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=Pixel-ADSB Flight Tracker
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/path/to/pixel-view
|
||||||
|
ExecStart=/usr/bin/python3 /path/to/pixel-view/server.py
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
StandardOutput=append:/var/log/pixel-adsb.log
|
||||||
|
StandardError=append:/var/log/pixel-adsb.log
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Enable and start the service
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable pixel-adsb
|
||||||
|
sudo systemctl start pixel-adsb
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Check status
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl status pixel-adsb
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. View logs
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tail -f /var/log/pixel-adsb.log
|
||||||
|
```
|
||||||
|
|||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Allen Cross
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
97
README.md
97
README.md
@@ -2,54 +2,111 @@
|
|||||||
|
|
||||||
A retro SNES-style side-view flight tracker that displays ADS-B aircraft data with custom pixel art sprites.
|
A retro SNES-style side-view flight tracker that displays ADS-B aircraft data with custom pixel art sprites.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Real-time aircraft tracking via ADS-B receivers
|
- Real-time aircraft tracking via ADS-B receivers
|
||||||
- Custom pixel art sprites for 6 aircraft types
|
- Custom pixel art sprites for 6 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter)
|
||||||
- Animated sun and moon with accurate positions based on location
|
- Animated sun and moon with accurate astronomical positions
|
||||||
- Weather visualization (clouds, rain/snow)
|
- Dynamic sky colors based on time of day
|
||||||
- Directional view (N/E/S/W) with unique backgrounds
|
- Weather visualization with cloud sprites
|
||||||
|
- Directional view (N/E/S/W) with themed backgrounds
|
||||||
|
- Auto-discovery of ADS-B receivers on your network
|
||||||
- Canvas-based 10 FPS retro rendering
|
- Canvas-based 10 FPS retro rendering
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Clone the repository
|
||||||
|
git clone https://gitea.chops.one/allen/Pixel-ADSB.git
|
||||||
|
cd Pixel-ADSB
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
pip install aiohttp netifaces
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Configure your location (required for weather and celestial positioning)
|
||||||
|
# Edit config.json and set your lat/lon coordinates
|
||||||
|
|
||||||
# Start the server
|
# Start the server
|
||||||
python3 server.py
|
python3 server.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Access at http://localhost:2001 (or configured port in config.json)
|
Access at http://localhost:2001
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Python 3.8+
|
- Python 3.8+
|
||||||
- ADS-B receiver providing SBS/BaseStation format on port 30003
|
- ADS-B receiver providing SBS/BaseStation format on port 30003 (dump1090, readsb, etc.)
|
||||||
- Modern web browser with Canvas support
|
- Modern web browser with Canvas support
|
||||||
|
|
||||||
## Documentation
|
## Configuration
|
||||||
|
|
||||||
- [CONFIG.md](CONFIG.md) - Configuration options and background themes
|
Edit `config.json` to customize your installation:
|
||||||
- [CLAUDE.md](CLAUDE.md) - Development guidance
|
|
||||||
|
|
||||||
## Aircraft Types
|
```json
|
||||||
|
{
|
||||||
|
"receivers": "AUTO",
|
||||||
|
"receiver_port": 30003,
|
||||||
|
"location": {
|
||||||
|
"name": "My Location",
|
||||||
|
"lat": 36.2788,
|
||||||
|
"lon": -115.2283
|
||||||
|
},
|
||||||
|
"web_port": 2001,
|
||||||
|
"theme": "desert"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
| Type | Description |
|
**Important:** Set your `location.lat` and `location.lon` for accurate weather and sun/moon positioning.
|
||||||
|------|-------------|
|
|
||||||
| Small Prop | Light aircraft, N-prefix callsigns |
|
See [CONFIG.md](CONFIG.md) for full configuration options including custom backgrounds and running as a service.
|
||||||
| Regional Jet | Regional carriers |
|
|
||||||
| Narrow Body | 737/A320 class |
|
|
||||||
| Wide Body | 777/787 class |
|
|
||||||
| Heavy | 747/A380 class |
|
|
||||||
| Helicopter | Low altitude, slow speed |
|
|
||||||
|
|
||||||
## Controls
|
## Controls
|
||||||
|
|
||||||
- **Arrow Keys / A/D**: Rotate view direction
|
- **Arrow Keys / A/D**: Rotate view direction
|
||||||
- View cycles through North, East, South, West
|
- View cycles through North, East, South, West
|
||||||
|
- Click aircraft in sidebar to highlight
|
||||||
|
|
||||||
|
## Aircraft Types
|
||||||
|
|
||||||
|
| Type | Detection |
|
||||||
|
|------|-----------|
|
||||||
|
| Helicopter | Low altitude + slow speed |
|
||||||
|
| Heavy (747/A380) | High altitude or specific callsigns |
|
||||||
|
| Wide Body | Very high altitude/speed |
|
||||||
|
| Narrow Body | Default commercial |
|
||||||
|
| Regional Jet | Regional carrier callsigns or lower altitude |
|
||||||
|
| Small Prop | N-prefix callsigns or very low/slow |
|
||||||
|
|
||||||
|
## Custom Backgrounds
|
||||||
|
|
||||||
|
Create backgrounds for your location:
|
||||||
|
|
||||||
|
1. Add 4 directional images to `backgrounds/custom/` (north.png, east.png, south.png, west.png)
|
||||||
|
2. Set `"theme": "custom"` in config.json
|
||||||
|
3. Restart the server
|
||||||
|
|
||||||
|
See [CONFIG.md](CONFIG.md) for image specifications and tips.
|
||||||
|
|
||||||
|
## Running as a Service
|
||||||
|
|
||||||
|
To auto-start on boot, see the systemd service instructions in [CONFIG.md](CONFIG.md#running-as-a-service-auto-start).
|
||||||
|
|
||||||
|
## Compatible Receivers
|
||||||
|
|
||||||
|
Works with any receiver providing SBS/BaseStation format on port 30003:
|
||||||
|
- dump1090 / dump1090-fa / dump1090-mutability
|
||||||
|
- readsb
|
||||||
|
- ADS-B Exchange feeders
|
||||||
|
- FlightAware PiAware
|
||||||
|
- Any SBS1 compatible receiver
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT License - see [LICENSE](LICENSE) for details.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
- Aircraft and environment sprites generated with AI assistance
|
||||||
|
- Weather data from [Open-Meteo](https://open-meteo.com/) (free, no API key required)
|
||||||
|
|||||||
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
aiohttp>=3.8.0
|
||||||
|
netifaces>=0.11.0
|
||||||
BIN
screenshots/screenshot.png
Normal file
BIN
screenshots/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 262 KiB |
Reference in New Issue
Block a user