Skip to content

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.csv is the source of truth; tools/build-index.py validates 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-data as /data — copy a GPX there before upload_course.
  • RideWithGPS refuses .gpx export without login but serves the route as .json (/routes/<id>.json) with track_points and course_points (turn cues). OSRM's public router works from this box for the odd missing leg.
  • Garmin upload_workout sport ids: 10 = multi_sport, 9 = hiit, 4 = swimming, 2 = cycling, 1 = running.
  • Magene has no API; OnelapFit's GPX import is the way in. magpx on 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.