routes¶
GPX routes worth keeping, with a spreadsheet index, so they can be loaded onto the Garmin (Forerunner 970) or the Magene C606 V2 later or rebuilt. Repo: ~/routes → github.com/angelEmbeddedEra/routes (private)
Status¶
- 2026-09-09: created with the two Sandling Beach Triathlon Festival bike courses (Sprint 20.0 mi, International 25.3 mi), both also uploaded as Garmin courses.
Decisions¶
routes.csvis the source of truth;tools/build-index.pyvalidates every GPX and regenerates the README table. Never hand-edit the table.- GPX files carry no
<ele>— devices compute elevation from their own DEM; mixing sources gives a lumpy profile. - Garmin course ids and Magene load status live in the CSV row, so "is it on the device" is answerable without opening an app.
Gotchas¶
- The Garmin MCP runs in a container and only sees
~/garmin-dataas/data— copy a GPX there beforeupload_course. - RideWithGPS refuses
.gpxexport without login but serves the route as.json(/routes/<id>.json) withtrack_pointsandcourse_points(turn cues). OSRM's public router works from this box for the odd missing leg. - Garmin
upload_workoutsport ids: 10 = multi_sport, 9 = hiit, 4 = swimming, 2 = cycling, 1 = running. - Magene has no API; OnelapFit's GPX import is the way in.
magpxon GitHub exists but is fragile.
Log¶
- 2026-09-09: repo created and pushed; Sprint course built from RideWithGPS 37620725 + OSRM leg + official map; International straight from the RWGPS route.
- 2026-09-08..13: race-week Garmin workouts for the Sun 2026-09-13 practice sprint tri: Tue tempo 1692355492 (done), Sat shakeout 1692392517 + 1692392581, Sun multisport RACE PRACTICE 1693043006 (6 bike sections with speed+cadence each; replaced 1693020801). The coach's 3h12 brick was deliberately skipped that week. Process side:
map/processes/training-sync.md. - Course build: Sprint = RideWithGPS 37620725 (Olympic) + OSRM for the Bruce Garner/New Light leg; International = the same RWGPS route (25.3 mi, 1,102 ft per the build log; the CSV says 1,032 ft, trust the CSV). They differ only at mile 9 (Sprint RIGHT onto Bruce Garner; International LEFT to Lawrence, Mangum Dairy, New Light). Course ids 512961452 (Sprint) and 512962555 (International) are in
routes.csv.