Flashing the Firmware

Cougar World

Introducing Foxy

Setting up the Cougar

Neat tips
Introduction to the Firmware
Upgrading your Cougar's Firmware - the fear!!!

If you've ever flashed the BIOS on your motherboard, then you'll also probably remember the first time you did this and how petrified you were. Well I certainly remember that fear. This was because I'd read nightmare accounts on the net from people who after flashing their BIOS couldn't get their computers to start, booted up with blank screens, had to use jumpers to clear their CMOS settings .... etc. etc. I've noticed that this trepidation has trickled down to users when advised to flash their Cougars. What if it all goes horribly wrong?

So I want to set you straight on this. It won't go horribly wrong. It is likely to become such a non event for you you'll wonder what all the fuss was about. If for any reason the flash doesn't take, a reboot and reflash will always fix it. You can completely erase the firmware inside the Cougar so it's gone, and it's no big deal. The stick will quite happily sit there still connected, ready to be flashed again, and your computer will still work fine. So hopefully you can lay your fears to rest on this. During development, when we were testing statements and bug hunting, we'd always reflash before every test to ensure we were at the same common state, and that might mean we'd be flashing our controllers 30+ times a day. So it's no big deal, and it's a great way of resetting your controllers to a perfect state should you have any problem with them.

Before I proceed, I'd better explain what we mean by some terms you will see used in relation to this subject:

Firmware: This is the posh term for the "microcode", a set of instructions residing within the Cougar, that determine the Cougar's capabilities, and interprets programming and axis data held within the Cougar's memory, presenting it to the operating system and hence your games.
Flash Upgrading: Also known as "flashing," is a way of transferring the Firmware to a part of the Cougar's memory. This memory is retained irrespective of whether the Cougar is connected/powered or not.
HOTASUpdate.exe: This is the executable that when run transfers the firmware it contains to the Cougar.

Let's move on to how to upgrade your Cougar's firmware then.

Flash upgrading from Foxy
1.) Before we start, ensure that none of the Thrustmaster applications are running - like the Cougar Control Panel (CCP) or Loader. There's no problem in having Foxy or the Launcher running, even with Cougar mode detection on, but just make sure that the CCP isn't running.

You should disconnect your throttle from the joystick, before updating the firmware. An unexplained issue has arisen in the Cougar World forums with some users reporting that their throttle axis no longer worked after flashing the firmware, requiring them to obtain a new potentiometer from Thrustmaster or Cougar World. This is not an issue I've personally seen but there are enough people who have seen this to recommend disconnecting the throttle. (There's a discussion as to why this is recommended here.)

2.) When it comes to doing anything with setting up the Cougar, it's all fairly straight forward as to where to go in Foxy, because there's a menu called ... "Cougar" and as luck would have it, one of its menu items say's "Flash upgrade" - so we'll select this.

3.) And when we do, this Window pops up.

You'll notice on this screenshot I've highlighted the firmware version we'll be flashing the Cougar with. I'm afraid that there's no way as yet to directly interrogate the Cougar and ask it what firmware version is within it, so make a mental note now that if you ever want to determine the flash version, you'll need to run the last used updater and jot down this number. Anyway, I digress.

4.) To update the firmware then just follow the instructions as they appear in bold. Note that if your Cougar is in Programmed mode, the updater will place the Cougar into Windows mode.

5.) The first instruction as we can see from the above screenshot is to hold in your trigger. Wait for a around 2 seconds, with your trigger held in and then you'll soon see the second line of instructions in bold, like this:

6.) At this stage, release the trigger and then sit back, eat some chocolate and gaze vacantly around the room. After about 4 seconds the firmware is installed and this window should pop up:

You'll see that it's recommending that we move the axes around to allow the autocalibration to read in values from the axes and configure itself for optimal response from the axes.

At this stage I recommend just pressing the OK button if you've disconnected your throttle, and then reconnecting your throttle to the stick. Some people may prefer to reconnect the throttle with the Cougar USB connector unplugged - that's fine, it's your choice. Personally I never bother disconnecting my throttle anyway when I update the firmware, but if you have, then now's the time to reconnect it.

I recommend now that you wait about 5 seconds before touching the joystick/throttle and moving their axes around, as the Cougar is still being redetected by Windows. What I tend to do is to have Foxy or the Launcher running with their Cougar mode detection on. During the flash process or any subsequent detection of the Cougar, this will be yellow or show an error. Wait for it to turn Red and show that the Cougar is detected and in Windows mode, before moving the axes around.

That's it - you Cougar is flashed with the firmware of your choice, and you're up an running. Well, you should go and test that you're up and running, and I'll write some articles on testing the Cougar using Foxy's various apps soon.

One last point I want to emphasize is this: Reflashing the Cougar is an excellent way of ensuring that your Cougar is clean of all issues and at a stable perfect state from which to test code and get going from. So if you do run into problems with the Cougar, and let's face it - it is new technology, from a new team, so it's likely to have a few teething problems - then remember that this technique will always sort them out. I like it! (And I'm sure Technical Support do as well!) ;)

Troubleshooting flash problems
It's very rare for a flash not to take, but the commonest reason from my experience when the Cougar was being developed, was when the software couldn't communicate with the Cougar. An easy way to test this is to try and change to Programmed or Windows mode (even if there's no program loaded.) If there's a communication problem you will likely see this Window pop up:

At this stage, don't try and flash the Cougar. Try and fix the communication problem. Now there are various ways - the simplest being to unplug and then reconnect your Cougar. That will work nearly all the time. If it doesn't, it could be because one of the applications is hung (you'll usually see it if you press Ctrl Alt Delete) in which case, leave the Cougar disconnected, and reboot your machine. We could then reconnect the Cougar and flash it from there, but I'm going to show you the ultimate trick now.

Instead of just plugging in your Cougar as normal, first, hold your trigger in, and keep holding it in, as you plug your Cougar in. Once the Cougar is connected, keep the trigger held in for 4 seconds, and then let go of the trigger. What this does is to clear the firmware completely from the Cougar. This is a very handy trick to remember - a bit of an overkill but I tend to do this myself as old habits die hard ;). If something really does go badly wrong with your Cougar, holding the trigger in whilst you reconnect it, will erase the firmware and leave you with a clean empty stick. Now all you have to do is to flash the Cougar. Again you do this in exactly the same way as before, but this time, a Window will not pop up asking you to depress your trigger. It'll just go straight ahead and flash the firmware for you and just notify you when it's done. Handy to know that!

Here's another little piece of advice. If you're reflashing the Cougar because you've had problems flashing it before or you've had some software crashing, then when you start up the CCP for the first time after the flash, you may find that the CCP is unresponsive initially and eventually comes up with a message: "Waiting for device to become available." If this happens just wait - the CCP will pop up eventually after saying that the "device didn't become available in time" or something to that effect. Just close the CCP down at this point. To fix this issue you can do one of two things. Either download a file to your Cougar, or run the HOTASCleanse.exe in your HOTAS folder and press the Erase Polling Registry Entry button. The reason this problem may arise is because when any of the TM apps do anything to the hardware, a flag is set in the registry that prevents any other software (HOTASCompiler, HOTASUpdate, HOTAS CCP) from communicating with the hardware. Once the software is finished it removes the flag. What happens sometimes is that if the software crashes in the middle of the transfer or something, then this flag remains set. From that point on, when the CCP tries to communicate with the HOTAS, it will display the status message "Waiting for device to become available." Just doing a reboot won't remove the registry flag. When you run the HOTASUpdate and reflash the HOTAS, it will clear that registry flag for you. That "Erase Polling Registry Entry" button does in fact that, it removes the registry flag for you.

That's it I think!


James "Nutty" Hallows