Purpose
I bought the nike+ iPod system for my iPod nano when I started running to motivate me and keep track of my training. Friends of mine used the system so we set up challenges to compete against each other at nikeplus.com. It is a great product for a beginner but soon I wanted more and bought a Garmin Forerunner watch. I still wanted to compete in the nike+ challenges so wrote this converter to upload my garmin workouts to nikeplus.com.
Source Code
http://github.com/angusws/tcx2nikeplus.
Tested Devices
Garmin Forerunner 305, 405 & 410.
All Garmin Forerunner GPS devices (and any other devices which generate GPX files) *should* work. If you have a non-GPS device such as the Garmin FR60 this will not work.
Thanks to...
GeoNames - GeoName's services are used to determine which timezone a workout is in.
GPX file, TCX file or Garmin Activity ID
GPX file: Upload a GPX file of any type.

TCX file: After synchronising your garmin device with your computer the option is available to export the run to a tcx file both in the 'Garmin Training Center' and at Garmin Connect.

Garmin Activity ID: After synchronising your garmin device to Garmin Connect is the url (link) for the workout details page. For example, http://connect.garmin.com/activity/21742933.
Authentication
Simply use the email address and password you use to log into Nike+.
Nov 11 2014
Added option to convert/upload from a GPX file..
May 31 2014
tcx2nikeplus should be working again.
May 23 2014
tcx2nikeplus is not working just now due to external changes outside my control (nike+ API). Please check back here for updates...
December 2 2013
Added tested device: Garmin Forerunner 410.
November 30 2013
Added bitcoin donation section.
December 15 2012
Rewrote nike+ requests to work with their latest changes (/nsl/v2.0/ and /v2.0/me/).
October 23 2012
Added FAQ (Frequently Asked Questions).
June 8 2012
Updated to work with new nike+.
October 21 2011
Added CLIC Sargent donation stuff.
August 25 2011
Upgraded ext-js to 3.4.0 which fixes bug for IE9 users.
August 4 2011
Some users are having problems with the converter form not displaying properly. If you clear your browser cache and refresh this should fix the problem. If you need help with this send me an email.
May 9 2011
We can now download garmin workouts again from their garmin activity-id (Garmin have modified their site which requires the converter to be log into their site first).
April 3 2011
Modified converter in an attempt to have it cope with more types of corrupt garmin workouts and switched interoplation framework to apache commons-math.
March 21 2011
Nike+ now allow workouts with both GPS and heart-rate data so modified the UI to allow this upload.
Febuary 28 2011
Added a couple of google adverts for a trial period.
Febuary 28 2011
Tweaked converter code to deal better with unusual (watch resetting/satellite reception lost) workouts.
Febuary 19 2011
Redesigned UI to accept nike+ login details which will be simpler for less technical users.
October 16 2010
Added onDemandVP snapShot events for custom laps/splits (ones that don't last exactly 1 km or 1 mile).
September 30 2010
Further tweaking of the new converter code. If you have old workouts which previously didn't convert with an "InvalidRunError: null" error - try them again - they might/should work now.
September 25 2010
Rewrote the code which converts the data from tcx format to nike+ format.
September 13 2010
Last week nike+ released an iphone application which includes gps (mapping) support. I have written a conversion and upload system to replicate what the iphone application is uploading so you can now view gps runs on the nike+ website.

Unfortunately nike+ do not yet support workouts that contain both gps & heart rate data so for now when the gps conversion/upload is selected I do not include heart rate data.
July 23 2010
Added nike+ pace data to output snapshots.
July 22 2010
Added heart-rate data to conversion process now that nike+ supports it.
June 10 2010
Added paypal donation section.
April 7 2010
Added error-handling for when http://ws.geonames.org is not available.
January 11 2010
Added validation which will attempt to fix corrupt garmin data (I'm presuming occurs due to poor satellite coverage) before converting to nike.

Cleaned up user-interface - now using Ext JS.

The converter will now automatically determine your time zone based on the latitude/longitude of where your workout began.
December 1 2009
Added source to github: http://github.com/angusws/tcx2nikeplus.

Fixed problem which prevented successful conversion of workouts if a pause/unpause was present right before start of a new lap (km/mile/whatever split) on garmin.
Contact Me
Donate
If you are regular user please consider donating to help cover the costs of domain/hosting & future development.
Paypal
Bitcoin

1NVMCeoBfTAJQ1qwX2Dx1C8zkcRCQWwHBq

Click or scan this QR code to get tcx2nikeplus donation details.  Thanks.
Can I upload multiple workouts in one go?
Export multiple workouts from garmin's "Garmin Training Center" application and upload the tcx file in the tcx-file section on the website. Let me know if you have any questions or problems using this.
GPS (mapping data) doesn't transfer to nike+
GPS data will only transfer if you use the TCX file or Garmin Activity ID options.
If the data still doesn't show up try logging out then back into your nike+ account.