Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
4fca7d2
Final changes for Phase 1 of the project.
carsonmwolfe Feb 15, 2026
7167002
Phase 2.1
carsonmwolfe Feb 22, 2026
048043c
Phase 2.2
carsonmwolfe Feb 25, 2026
5d5b1b9
raspberry pi fix
carsonmwolfe Feb 26, 2026
c3a0b9f
Pi fix Rev2
carsonmwolfe Feb 26, 2026
9b26e93
Pi fix Rev3
carsonmwolfe Feb 26, 2026
f029cb6
Pi screen optimiztion
carsonmwolfe Feb 28, 2026
80ef672
Pi screen optimization test 2
carsonmwolfe Feb 28, 2026
a90e1c1
Pi screen optimization test 3
carsonmwolfe Feb 28, 2026
58535e5
pi screen optimization test 4
carsonmwolfe Feb 28, 2026
f90edca
LaunchTime bug fixes
carsonmwolfe Mar 1, 2026
4cf3ae6
added firefly rocket assets
carsonmwolfe Mar 2, 2026
3ca238c
Pi Data blanking issue fix
carsonmwolfe Mar 2, 2026
61906f7
revertted to previous stable version
carsonmwolfe Mar 2, 2026
ff7b362
Add project title to README
carsonmwolfe Mar 3, 2026
5419615
Add auto-deploy workflow
carsonmwolfe Mar 3, 2026
e17fa9d
network testing
carsonmwolfe Mar 4, 2026
481b51b
networking testing.2
carsonmwolfe Mar 4, 2026
8602128
Web stability updates.
carsonmwolfe Mar 6, 2026
bf51b57
Web stability test v.1
carsonmwolfe Mar 7, 2026
be8162a
Changes to data outage handling
carsonmwolfe Mar 8, 2026
56dce6e
Remove defunct deploy workflow
carsonmwolfe Mar 8, 2026
58d2d26
V.1.1 Preps - data collection timestamp and data outage testing
carsonmwolfe Mar 8, 2026
aa3b327
fixed an issue with the status badge
carsonmwolfe Mar 8, 2026
4e3dd5d
status update
carsonmwolfe Mar 9, 2026
beaebd5
fixed some pi dimensioning
carsonmwolfe Mar 9, 2026
6056f64
pi dimension revert
carsonmwolfe Mar 9, 2026
7f5d38e
pi dimensioning test
carsonmwolfe Mar 9, 2026
812a23d
final pi dimensioning
carsonmwolfe Mar 9, 2026
79e63fa
added wifi selection support.
carsonmwolfe Mar 10, 2026
4d5c0e8
fix to wifi
carsonmwolfe Mar 10, 2026
35023dd
revamp wifi
carsonmwolfe Mar 10, 2026
bd24cd9
.
carsonmwolfe Mar 10, 2026
31984dd
wifi fix
carsonmwolfe Mar 10, 2026
765aabe
wifi fix 2
carsonmwolfe Mar 10, 2026
6060dc1
wifi fix 3
carsonmwolfe Mar 10, 2026
0ce524e
Launch countdown timer fixes
carsonmwolfe Mar 12, 2026
6a2b417
wifi updates.
carsonmwolfe Mar 12, 2026
c87ec60
wifi updates
carsonmwolfe Mar 12, 2026
d5b59c3
hopefully last wifi change
carsonmwolfe Mar 12, 2026
0ff2d0e
Add WiFi connect flow, fix post-launch cooldown
carsonmwolfe Mar 16, 2026
a14e371
edge case clean up.
carsonmwolfe Mar 16, 2026
be9eb60
clean up
carsonmwolfe Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
LaunchTracker2D
Binary file removed assets/ChatGPT Image Jan 20, 2026, 09_25_17 AM.png
Binary file not shown.
Binary file removed assets/ChatGPT Image Jan 20, 2026, 09_55_57 AM.png
Binary file not shown.
Binary file removed assets/ChatGPT Image Jan 20, 2026, 09_58_40 AM.png
Binary file not shown.
Binary file removed assets/Falcon 9.png
Binary file not shown.
Binary file removed assets/Nasa Vehicles.png
Binary file not shown.
Binary file removed assets/VAB.png
Binary file not shown.
Binary file removed assets/nasa_vehicles_transparent.png
Binary file not shown.
Binary file removed assets/other buildings.png
Binary file not shown.
Binary file modified launch-timer/.DS_Store
Binary file not shown.
File renamed without changes.
75 changes: 75 additions & 0 deletions launch-timer/Phase2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Launch Countdown — Phase 2

## Quick Start

```bash
pip install -r requirements.txt
python server.py
```

Your browser opens automatically at http://localhost:5000


## File Structure

```
phase2/
├── server.py ← Run this. Flask backend + API proxy.
├── requirements.txt
├── static/
│ ├── index.html
│ ├── js/
│ │ └── app.js ← All rendering, animation, countdown logic
│ └── assets/ ← Drop your PNG files here
│ ├── vab.png
│ ├── launch_tower.png
│ ├── launch_pad.png
│ ├── rocket_falcon9.png
│ ├── rocket_starship.png
│ ├── rocket_electron.png
│ ├── rocket_atlas.png
│ ├── rocket_sls.png
│ └── rocket_generic.png ← fallback for unknown vehicles
```


## Adding PNG Assets

Drop any PNG into `static/assets/` with the exact filename shown above.
The app loads them on startup — if a file is missing it falls back to
the procedural drawing automatically. You can add assets one at a time.

**Recommended sizes (canvas is 800×600):**

| Asset | Suggested size | Notes |
|----------------|------------------|------------------------------------|
| vab.png | 200 × 150 px | Anchored top-left at (60, 215) |
| launch_tower.png | 80 × 220 px | Bottom anchored at y=340 |
| launch_pad.png | 140 × 40 px | Drawn at (550, 320) |
| rocket_*.png | ~30 × 160 px | Centred on x=620, base at y=340 |

Transparent backgrounds (RGBA PNGs) work perfectly.


## Architecture

```
Browser ──── GET /api/launches ────► server.py ──► RocketLaunch.Live
◄──── JSON (launches) ────┘
──── GET /api/weather ────► server.py ──► Open-Meteo
◄──── JSON (weather) ────┘
```

- **server.py** handles all external API calls with 5-min / 15-min caches.
- **app.js** computes the countdown locally every frame (no server round-trip per second).
- Weather uses Open-Meteo — free, no API key, reliable sub-10ms responses.


## Launch Trigger Fix

Phase 1 had a bug where `trigger_launch()` was called every second while
`total_seconds` was in the 0–5 window, causing multiple or missed triggers.

Phase 2 fix: a single `state.launchTriggered` boolean is set to `true` at
T-0 and only reset to `false` when a new mission is loaded. The countdown
loop checks this flag before firing so the animation runs exactly once.
2 changes: 2 additions & 0 deletions launch-timer/Phase2/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
flask>=2.3.0
requests>=2.28.0
Loading