Understanding Calibration

Cougar World

Cougar Control Panel
Manual/Auto Calibration and Profiles Demystified
This article is intended to demystify the confusion concerning the relationship between the calibration data and the profiles for the Thrustmaster HOTAS Cougar. In order to understand the interaction between the Cougar, the CCP and the profiles, we must first understand the memory structure of each component.

Cougar Memory Structure

The following diagram shows the basic structure of the memory inside the HOTAS Cougar:

Click to enlarge

The firmware is the main code that executes all the fancy things that the Cougar can do. The axis configuration section is where profiles are stored. Inside this profile section is also the calibration data that stores the information from performing a manual calibration. The auto calibration data is where the Cougar stores and uses the data when the user first auto calibrates the Cougar. The emulation data is where the Cougar stores the compiled joystick file (TMJ) from Foxy or the Loader. Among all this memory are also switches that the Cougar needs in order to tell it how to behave. This switches include: auto/manual calibration, default/user axis response and emulation on/off.

HOTAS CCP Memory Structure

The HOTAS CCP (Cougar Control Panel) is a Windows software program that interfaces to the HOTAS Cougar. It controls and displays all the settings for the Cougar. The following diagram shows the basic structure of the software:

Click to enlarge

The GUI Interface allows the user to see and change the configuration of the Cougar. Whatever changes are done on the interface is saved in its temporary memory. As soon as the user presses the 'Apply' button, the temporary profile data gets sent to the device through the communication layer. If the user wants to save these settings, then the user needs to save (pressing the 'Save' button) the temporary memory into a file, called a TMC file. The user can then load (pressing the 'Load' button) the TMC file into the CCP at a later time. When this happens, the data in the TMC file gets loaded into the CCP's temporary memory. The configuration switches communicate directly with the Cougar, and do not get stored in temporary memory. These switches are:

  • Auto/manual calibration
  • Default/user axis response
  • Emulation on/off.

Every time the CCP is run, it first performs a retrieve and gets all the data from the Cougar, stores it in the CCP's temporary memory and then it displays the information through the GUI.

Profile Structure

A profile is the axis configuration settings of the Cougar. It can either be in the form of memory inside the Cougar and the CCP or it can be a file that is saved on the user's hard driver. The structure of the profile is very basic. It contains information about the axis mapping, deadzones, curve, etc. and calibration data. The following diagram shows the profile structure:

Click to enlarge

Load & Apply Actions

When the user clicks on the 'Load' button in the profile, the CCP takes the profile that the user specifies (through the Windows's open file dialog box) and loads it into the CCP's temporary memory. Here the user can change the axis configuration more or decide to simply apply it to the Cougar directly.

When the user clicks on the 'Apply' button, the CCP takes the information inside its temporary memory (whether it's been changed from the original loaded profile or not) and sends it to the Cougar. The Cougar stores this information in the 'Axis Configuration' part of its memory.

The CCP does one final step though. It also switches the axis response mode to be in user mode, since the Cougar will only use the axis configuration if it is in user axis response mode. The CCP assumes that the user wants to do this.

The following diagram shows these steps:

Let's load and apply a profile! - Click to enlarge

Retrieve & Save Actions

When the user clicks on the 'Retrieve' button, the Cougar sends all the data in the axis configuration section of the Cougar's memory and transfers it to the temporary memory part of the CCP. At this point, the CCP displays the information through the GUI (Graphical User Interface: buttons, curve graphics, values, etc.) so that the user can see exactly how the Cougar is configured at this time. Note that this same sequence of actions is always does whenever the user opens the CCP.

When the user clicks on the 'Save' button, the CCP saves the temporary memory part of the CCP and saves it to a file that the user specifies.

The following diagram shows these steps:

Retrieve and Save the configuration. Click to enlarge

If the user wants to change a configuration, the user can do it at any time during this process. The user can change a deadzone, a trim, etc. but then needs to press 'Apply' to apply it to the Cougar. If the user wants to save these settings though, then the user needs to click on 'Save' and call these settings something meaningful (like: good_one.tmc).

Manual Calibration Process

Listed below are the steps that the CCP does when the user finishes the manual calibration procedure:

1. Verifies that all values are valid, i.e. that the maximum value is not lower then the center value, that the minimum value is not higher then the center value.

2. Calculates the new calibration data.

3. Adds the data to the profile structure that it has in its temporary memory.

4. Sends the new profile structure to the Cougar to be placed in the axis configuration data section.

5. Switches the Cougar to be in manual calibration mode.

At this point, if the user wants to save any of the manual calibration data, then the user needs to save the profile. Clicking on 'Save' button under the Profile section will do this. This ensures that the user can use this manual calibration data in the future. To use it again at a later stage, simply click on 'Load' under the Profile section and choose the name of the profile that you saved it as before.

Note that when you save the profile with the manual calibration data, you are also saving the entire axis configuration. So, if you have changed the deadzones, curve, etc., these will also be saved.

Auto Calibration Process

The auto calibration is performed continually, but is most sensitive whenever you flash the Cougar. At this point, the Cougar needs to have its axis moved to all the extremes so that it can calculate its values. It stores this data in its auto calibration data section of memory. If the user wants to retrieve this data and save it to a profile, the user needs to click on the 'Get Auto Calibrate' button in the 'Startup & Calibration' tab of the CCP. When the user clicks on this button, the following action happens:

The CCP moves the auto calibrate data from the 'auto calibrate data' section of the Cougar memory into the 'calibrate data (manual)' section of the 'axis configuration' of memory.

At this point, the user must click on the 'Retrieve' button in the CCP to transfer the axis configuration (profile information) into the CCP's temporary memory. Now, the data is stored in the calibration section of the profile. The final step is to save this temporary memory as a profile by clicking on 'Save' in the profile section of the CCP.

The following diagram shows these actions:

How to save auto calibration data - click to enlarge

Restarting the Cougar

The action of 'Restart Device' in the CCP (or 'Reset' in Foxy) is the same as unplugging and plugging back in the Cougar manually. It will set all the configuration switches back to the default state, except for the axis response. The axis response will be set back to whichever state it was in prior to performing the restart. Therefore, if the axis response was in 'user' mode, then it will be set back to 'user' mode after performing a restart. Performing a restart device will not erase any data though; the profile will still be in the Cougar and so will any emulation data (TMJ file) that the user has downloaded.

Flashing the Cougar (do not do this literally)

Flashing the Cougar implies that the user has re-updated it's firmware or upgraded it's firmware to a newer version. This is done outside of the CCP. Using a separate program called HOTASUpdate.exe (found in the installed HOTAS directory), the user can upgrade or re-apply the firmware. When this is done, the Cougar erases all of its memory. All the auto calibration data, the axis configuration data and emulation data is deleted. In addition, all the switches are set to the default settings.

After performing a flash update, it's important to move all the axes to their extremities and hold them there for a couple of seconds. This will ensure that there is nice auto calibration data. After this, it is important to run the CCP at least once. The CCP will verify that the Cougar has an axis configuration (profile) in its memory. If it doesn't (like when a flash update is done), the CCP will automatically load the default profile into the Cougar.

I hope that you now have a better understanding of the Cougar, the CCP, profiles and calibration. See you on the forums.

Enjoy.

David "The Block" Block