Garmin tcx file / Garmin Activity ID
Option 1 (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..

Option 2 (Garmin Activity ID): After synchronising your garmin device to Garmin Connect. the activity ID is in the url for the workout details page. For example, for the workout http://connect.garmin.com/activity/21742933 the activity ID is 21742933.
Nike+ PIN
Open a new window/tab in your web browser.

Visit https://secure-nikerunning.nike.com/nikeplus/v2/services/app/generate_pin.jsp?login=LOGIN&password=PASSWORD (replacing the italics with your login details).

The resultant page should have a section "pin", this is the value to use as the pin on this page. Your pin will never change.

If you cannot see a section "pin" then contact me (see top of this page) with details of which browser you are using and I'll help you through the process.
Emped ID (not essential)
The easiest way to obtain your emped ID is probably to look at the list of your runs on slowgeek.com, there is a column for each run with the emped ID.
Tips
You can auto-populate the pin & emped ID fields in the form by including them in the URL.
For example, I use something like:
http://www.awsmithson.com/tcx2nikeplus/?type=garminActivityID&pin=12345678-1234-1234-1234-123456789012&empedID=4H123ABCDEF
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 invested in a Garmin Forerunner 405. I still wanted to compete in the Nike+ challenges so wrote this converter so that I can record runs using my 405 and upload them to nikeplus.com.

The Garmin Forerunner tcx file to Nike+ converter will convert workouts recorded on a garmin forerunner device (see tested devices below) to a file which will allow them to be posted to the Nike+ system. When provided with a Nike+ pin it will also upload the workout to Nike+.
Tested Devices
Garmin Forerunner 305 & 405.
Technical
The converter is written in java and uses cubic spline interpolation to convert the garmin 'track-points' to the 10-second splits required by Nike+.
Thanks to...
Dr. Michael Thomas Flanagan - Dr. Flanigan's "Java Scientific Library" is used for the cubic spline interpolation.
GeoNames - GeoName's services are used to determine which timezone a workout is in.
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.
September 3 2009
Please be aware this project is very much in an alpha stage and may not always work as expected during this early stage of development. At the moment there may also be downtime when the site doesn't work at all due to server upgrades being carried out.

Apologies to all who have contacted me in the past week or so with comments/suggestions/bugs. My day-to-day job has been very busy and it takes priority over this project. All your feedback is appreciated and your queries will be dealt with as soon as I get some spare time to work on the garmin to Nike+ converter.
Contact Me
Donate
If you are regular user please consider donating to help cover the costs of domain/hosting & future development.
Paypal