How gaming mouse firmware works

Logitech Gamingmouseopen

As PC gamers, we've all heard of drivers and firmware. We know what they’re for. But do we really know what they do? The firmware for your gaming mouse, much like the firmware for your smartphone or the drivers for your graphics card, is a bit of a black box. We don’t know exactly what it’s doing, but we know it’s important. This is true of the firmware for any piece of technology, but it’s especially true for mice.

Here’s something you may not know about gaming mice—many of them use the exact same sensors, even when they support different DPI levels. The Roccat Kone Pure Optical can go up to 4000 DPI. The Zowie AM can go up to 2300 DPI. Both mice use the same Avago ADNS 3090 sensor. The difference is in the firmware—how the designers of each mouse process the data that the sensor is producing. Many gaming mice have actually been using the same small pool of sensors for years, but offering higher DPI settings by outfitting the sensor with newer firmware. And that’s not necessarily a good thing, since those sensors are often being pushed beyond their intended limits, which can impact performance at higher DPI settings and tracking speeds.

Still, understanding exactly what firmware is, and what it’s doing, is pretty confusing. It sounds like a magical bit of code that simply makes a mouse work. Of course, firmware’s not actually magic. When I visited Logitech’s headquarters in Switzerland, I took the opportunity to ask senior product manager Chris Pate about how they develop mouse firmware, and what it’s actually doing to make your mouse turn swipes and clicks into headshots.

The basics of mouse firmware and microcontrollers

So, again: what is firmware, exactly? “Firmware is just software that’s embedded in a product,” said Pate. “Just like your phone or your router for your Internet connection, firmware is just a software package that tells the hardware how to work. It’s embedded in the device.”

Because firmware is embedded in a specific device, it differs a bit from a device driver. Mouse firmware runs on the mouse itself. Video card drivers, on the other hand, run in your OS, and tell software how to talk to the video card hardware.

It’s different than, like, an application or a driver, which is basically just a piece of software that allows the hardware to talk to the operating system. Firmware’s just low level code that tells the device how to work.

Logitech Explodedmouse

How does firmware tell a piece of hardware how to work? In the case of gaming mice, firmware serves a few purposes. Gaming mice use microprocessors to process the data produced by the sensor, and send that data to your PC. Those microprocessors are also responsible for other tasks, like storing and playing back macros and button binds and controlling lighting. Firmware tells those microprocessors what to do.

Logitech’s recent gaming mice use 32-bit ARM microcontrollers to handle that processing. Older, simpler, and cheaper gaming mice used much less powerful processors. That means today’s mouse firmware is dramatically more complex than the firmware found in, say, the MX518.

Maxime Marini, Logitech’s senior director of engineering, offered some detail. “When I started doing mice, writing firmware 20 years ago, we were maybe making 1000 lines of code,” he said. “Now, you know, some have 10,000, 20,000 kilobytes of code, or even more. Really huge implementation, so the probability of having issues becomes bigger. So you need to stress them.”

That complexity is part of the reason gaming mice, and other devices like smartphones, often get firmware updates. When there are thousands of lines of codes, bugs are harder to find. Chris Pate pointed out that those more advanced processors actually simplify modern mouse firmware in some ways, though.

“We’ve gone from 8-bit OTP microcontrollers to 32-bit ARM processors,” said Pate. “We have much more capability on the product itself now than we used to. The nice thing about using the ARM processors the way we do, is it allows us to more easily port them from device to device so we don’t have to write custom code for every single mouse. Once we’ve developed the base code for a mouse and a keyboard, it becomes more straightforward to make the next product with that as a baseline and we understand how it works and we don’t have to totally redefine the spec and do new stuff every single time. It makes things go faster and makes them more reliable.”

Pate said that many Logitech products never need firmware updates. Some receive firmware updates to add functionality. The G502 got a simple firmware update to allow its LED to pulse, instead of simply be fully illuminated or disabled. The G402, on the other hand, got a firmware update to improve performance.

G402 4 Large

“With the Hyperion Fury, when we released it, we had optimized the Fusion Engine around the X axis because that’s where we find that most people do the highest speed tracking,” Pate said. If you’re unfamiliar with the “Fusion Engine,” it’s the system Logitech developed to pair a mouse sensor with an accelerometer, which allows the mouse to accurately track at movement speeds of 500 inches per second. Which is faster than you’ll ever actually move the mouse. “Some people found that if you push it on the Y axis, you could get it to fail earlier than it can on the X axis. It doesn’t change the way people actually use the product. It’s not a critical gaming update. But we did change the firmware to allow identical maximum tracking on both axes.”

The Fusion Engine, which uses a complex algorithm to hand off tracking from the sensor to the accelerometer when it hits a certain speed threshold, wouldn’t be possible without the processing muscle of a 32-bit ARM processor. It was also a unique case, where Logitech could improve the mouse’s performance on one axis by modifying how the code was processed. Conventionally, to improve gaming mouse performance, there’s a special part of the firmware you have to change: the SROM.