TCTP Training Generator for Suunto Ambit/Ambit2/Ambit3


This is a generator written in Perl that allows you to create applications for Suunto Ambit/Ambit2/Ambit3 watches, somewhat similar to or Seckle time interval app, thus overcoming the limitations of Ambit/Ambit2/Ambit3 watches regarding more complex interval training sessions.

Compared to the other apps, it is designed to work with very nice Carmichael's Time-Crunched Cyclist training methodology, i.e., it is more flexible to allow for overlapping training zones. It supports both heart rate based zones as well as power based zones and allows for very compact notation of complex intervals, such as


which equals to a training with

Be aware that the both Ambit and Ambit2 are memory-constrained (Ambit in particular) and thus very complex training apps may not fit into any of these models (I have no experience with Ambit3 though). However, common Carmichael's Time-Crunched Cyclist trainings should be fine, on the edge of the memory limit of Ambit2.

Btw, we should push Suunto to put the complex intervals into their Ambit product line directly, comparable to Polar or Garmin....

Variants of the generator

There are two flavors of the generator:

Personally, I prefer to use the lap-based version as I usually have problem following the length of intervals strictly, due to varying terrain and overall situation - as I'm training on mountain bikes in the nature.

Download and usage

You can download the Perl script from here:

Both flavors take one command-line parameter, specifying whether to use HR (heart rate) or POWER as the measure.

cat example-input.txt | perl POWER >example-input-app.txt

Insert the generated Appliction into the Movescount Application Designer, verify that it fits into your watches and put it onto your display. A step-by-step guide is available for HowTo and this is very similar. You will need to define the following variables for your application in the Movescount Application Designer, through:

Custom zones

If you need other zones than the ones defined in TCTP, you can easily do that at the beginning of the script.


Improved support for TEMPO - both power/HR and cadence. The resulting application grows a bit, but this is only for endurance trainings without complex interval structure.
Updated to conform to the newest additional requirements by Suunto (no multiple semicolumn-delimited statements on a single line - whooaa).
Also, it required non-trivial help of Ray Maker from to persuade Suunto that it is really not a good idea to cripple their existing products, e.g., by removing support for SUUNTO_BIKE_POWER_AVG in their API... Thanks Ray!
Fixed example-input.txt and example-input-app.txt files on the web; application itself is unchanged.
Updated laps-compact version to support also cadence (for fast pedal - FP - mode).
Beeps for going "too slow" are now with half the frequency compared to going "too fast".
Second flavor based on manual laps, with compacting of resulting code. Both scripts now take HR/POWER command line option (mandatory).
First working version based on linear time.