How It Works

upload.bike turns indoor bike CSV files into TCX for Strava, Garmin Connect, TrainingPeaks, and Golden Cheetah.

What is a TCX file?

TCX is Garmin's workout format: a second-by-second log of power, heart rate, cadence, speed, and distance. Strava, Garmin Connect, TrainingPeaks, and Golden Cheetah all take it.

Indoor bikes don't write TCX. They write CSV, and those platforms won't read CSV. upload.bike reads the CSV and saves a TCX they'll accept.

Supported Equipment

If your bike exports a CSV with power, cadence, heart rate, and distance, it can probably be added. Already supported:

Don't see your bike? Email your CSV to upload.bike@gmail.com and I'll take a look.

The Physics Model: Fixing Bad Speed and Distance

Lots of indoor bikes don't measure speed and distance, they estimate it from wheel RPM or resistance. That estimate can be way off, so your ride lands on Strava with the wrong distance, speed, and calories.

The physics model throws out the bike's numbers and works from your power (watts) and your weight (rider plus bike), using the same forces that slow you down on the road:

Every second it asks the same question: at this power and this speed, how fast are you going now? Distance just adds up from there.

See it in action

The chart below is a real 73-minute ride on a Schwinn MPower Echelon 2. The bike logged 21.5 miles. Run the same power through the physics model and you get 23.8 miles, about 11% more. The bike's distance drifts as the ride goes on, and on the easy sections the console barely updates at all.

The speed numbers are where it really falls apart. The bike claims a top speed of 78 mph with the line jumping all over the place. No one is holding the watts it would take to go 78 mph on a trainer, so that figure is fiction. The model puts the peak at 32 mph, which is what the power actually supports. When the reported speed jumps around like this, it usually means the console is guessing distance from cadence instead of measuring it.

Drag the mass slider to see how rider weight changes the modeled speed.

Rider + bike mass:

Loading sample data...

Bike reported
Physics model
Difference

Fix Timing: Interpolation for Compatibility

Some bikes only log a point every 3, 5, or 10 seconds. The bike's screen doesn't care, but Strava and Garmin Connect want one point per second. Those gaps can throw off your duration, leave holes in the charts, break segment matching, or fail the import outright.

Fix Timing (on by default) fills the gaps back to one point per second with a cubic spline. If you were at 200W at second 0 and 210W at second 5, it draws a sensible line through seconds 1 to 4. You get a clean file that imports cleanly.

Getting Your CSV File

Schwinn MPower Echelon

  1. Insert a USB thumb drive into the slot at the top of the console
  2. Do your workout
  3. Stop pedalling
  4. Press and hold AVG/MAX for 5 seconds
  5. Wait for the flashing USB logo to stop, then remove the drive
  6. The drive contains a file named something like MPower12.csv

Exporting Rider Data Onto A USB Drive (video)

Stages Indoor Cycles

  1. From the console, go to the ride summary or history
  2. Insert a USB drive and select the export option
  3. The file saves with a name like STAGES01.csv

Stages SIC1 Console Quick Start Tutorial (video)

The Sufferfest & Wahoo SYSTM

Both export CSV. Look under workout history or activity settings for the export option.

USB drive problems? Some Schwinn consoles choke on newer thumb drives. A 1GB drive usually works. If the USB logo won't flash or the console shuts off, swap the drive.

Converting and Uploading

Convert

  1. Go to upload.bike
  2. Click Choose CSV file and select your exported file
  3. Enable Fix Timing (recommended) for 1-second interpolation
  4. Enable Fix speed and distance if your bike's distance seems off, and enter your combined rider + bike weight
  5. Click Download TCX

Upload

FAQ

Troubleshooting

File won't load

Bike models and firmware versions all write CSV a bit differently. If yours won't load, email it to upload.bike@gmail.com and I'll add support.

Distance looks wrong in Strava

Turn on Fix speed and distance and enter your weight. That swaps the bike's guess for a number worked out from your power. More in the physics model section above.

Convert Your File