Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Waterloo EV Scouting

Local-network scouting app for the Waterloo EV Challenge (Team 839). Scouts on phones tap a button each time a team crosses start/finish; the server computes lap time and average speed (700 m track length, 50-lap target over the 70 min event). Our Pi pushes live ground speed over WebSocket.

On the laptop (server)

cd "C:\Users\danie\Code Projects\waterloo-ev-scouting"
pip install -r requirements.txt
python app.py

The server binds to 0.0.0.0:5000. Find the laptop's IP:

ipconfig | findstr IPv4

Open on the laptop / share with scouts:

  • Dashboard: http://<laptop-ip>:5000/
  • Scout view: http://<laptop-ip>:5000/scout
  • Our speed: http://<laptop-ip>:5000/self

Firewall: the first time you run it, Windows will ask to allow Python through the firewall — pick Private networks so phones on the same WiFi/hotspot can reach it.

On the Raspberry Pi

pip install "python-socketio[client]"

Edit pi_client.py:

  1. SERVER_URL = laptop's IP + :5000
  2. WHEEL_DIAMETER_M and GEAR_RATIO for your drivetrain
  3. While testing without Phoenix 6 hooked up, leave USE_FAKE_DATA = True — the dashboard will show a varying fake speed so you can verify everything works end-to-end. Flip to False and uncomment the Phoenix 6 block in read_motor_real() when ready.

Run:

python pi_client.py

Scout workflow

  1. Open /scout on the phone.
  2. Tap the team you're tracking.
  3. First LAP tap = starts the timer (no lap time yet — that's just the start line).
  4. Every subsequent tap records a lap. Lap time + km/h appears immediately and on the dashboard.
  5. "Undo Last Lap" fixes accidental taps.

One scout per team is the easiest setup. Multiple phones can scout different teams at once.

Files

File Purpose
app.py Flask + SocketIO server, all API routes
schema.sql SQLite tables (teams, laps)
templates/ Dashboard, scout, self-telemetry pages
static/style.css Dark theme, big tap targets for phones
pi_client.py Runs on Pi, pushes speed via WebSocket
scouting.db Auto-created on first run

Resetting between sessions

Stop the server, delete scouting.db, restart. Your custom teams will be lost — re-add them from the scout page.

About

"Live scouting & telemetry for the Waterloo EV Challenge"

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages