Cougar Control Panel

Cougar World

Cougar Control Panel
Introducing David and the CCP
I know what you are saying ... what the heck is a CCP? (maybe not in those words) Well let me tell you. CCP stands for Cougar Control Panel. It is the main application that it used to control your Thrustmaster HOTAS Cougar. And when I say control, I mean CONTROL! The CCP is like your cockpit to your fighter jet. Here is just a small list of configurations that is possible to do with the CCP:

  • Swap Axes
  • Reverse the direction of any axis
  • Apply different deadzones to any axis
  • Increase/Decrease the curving affect of any axis
  • Calibrate the Axes
  • Switch the HOTAS into different modes
  • Download preset files to the HOTAS
  • and much much more

So, this section will be devoted to all the many things that you can do with the CCP that are maybe not so obvious from the documentation. I know, I don't like to read either. But before we get into it all, I would like the first article to give you some history about myself, and what I did for the HOTAS.

My name is David Block. I am Software Engineer at Guillemot Corporation. I started at Guillemot in July of 2000, but only started on the HOTAS project in October or November of that same year. At that time, Mark and the rest of the hardware team was ready to include some software. So, they called in the big guns… me! (toot toot - that's the sound of me tooting my own horn). I started developing a very simple application that could communicate with the HOTAS through the very standard drivers that we had. And there we had the very first version of the HOTAS CPP. Of course at that time, we called it the F22Loader. Why was it called "Loader"? Because at that time we mainly used it to download preset files to the HOTAS. In effect, "Load" the HOTAS with a file. Why was it called "F22"? Simply because it was based on it's predecessor, the F22 by Thrustmaster.

Slowly, I added more and more functionality to the F22Loader and made it more user friendly. About this same time, we needed an application to convert normal text files into binary code that the HOTAS microprocessor could understand. Mark made most of the firmware (code that runs inside the microprocessor). This firmware, among other things, does all of the emulation for key presses and macros.

I can understand if people do not understand what emulation means. I didn't understand either. Emulation means that the joystick can 'emulate' the key presses from the keyboard. In other words, instead of the keyboard producing the 'a' character, the joystick does. The joystick sends the exact same signals to the PC as the keyboard would if it was producing the 'a' character. This is called emulation. Now, back to the story ...

So, this new application (to convert text files to binary files) was started and deemed to be called 'The Compiler'. The Compiler is my favorite part of the whole project and it's the software that is the least displayed to the user. It is hidden in the background, and if all goes well, should never been shown to the user. It is called from either Foxy or the CCP. There is plenty of information about the programming the joystick here, so I won't get into it, but just keep in mind that whenever you download (or upload - depending on how you look at the whole system) a joystick file to the HOTAS Cougar for emulation, it is the compiler that does all the work. Of course James could pop in here and say 'what about Foxy?' Well, there is a whole section on Foxy so I won't get into that either. I will only say that Foxy (the great, beautiful, easy-to-use software that it is) is the main software that people should use to create the joystick files. These joystick files can be pretty tricky to create so using a wonderful software, like Foxy, makes it that much easier. So to summarizes, the simple flow of data to use the emulation features of the HOTAS Cougar goes as follows:

  • Use Foxy to create your joystick and macro files
  • Download the files using Foxy
  • Foxy calls the Compiler with the name of the joystick file
  • Compiler parses/converts the files into binary code
  • Compiler downloads the binary code to the HOTAS Cougar
  • The HOTAS Cougar reads the binary code using its firmware
  • The HOTAS Cougar is now ready to do emulation!

But enough about the Compiler, after all, this section is suppose to be about the CCP. Both the CCP and the Compiler was being developed simultaneously. The development on the CCP was pretty straightforward. It started out as a simple application that was to be used internal only, but it turned out to be the one that would be released. If I had enough time, I would re-design the CCP and make it more graphical and user friendly (I know… it's impossible to improve on perfection… yeah right!).

The CCP can seem pretty complicated when you first look at it. And then when you start getting into it, it can seem even more complicated. But really it's not. Once you understand it and how it works it's pretty simple. This section will be devoted to exactly that. Making you understand the workings behind the CCP and how to get the most out of it. I'll be pointing out things that may not be so evident from looking at the documentation. If you have any comments, questions or points that you would like me to elaborate on, please feel free to ask me.

David "The Block" Block