[Bogdan Micea] uses a laptop cooler, but was a bit annoyed that his cooler would run at the same power no matter how hard the laptop was working. Rather than keep adjusting the cooler’s power manually, he automated it by installing an Arduino Pro Micro as a controller in the cooler and writing a Rust controller application for his computer.
[Bogdan]’s cooler is controlled by four buttons, which can have different functions depending on how long they’re pressed. After mapping out their functionality and minor quirks, [Bogdan] soldered four transistors in parallel with the buttons to let the Arduino simulate button presses; another four Arduino pins accept input from the buttons to monitor their state. The Arduino USB port connects to the cooler’s original USB power input, so the cooler looks superficially unchanged. When the cooler starts up, the Arduino sets it to a known state, then monitors the buttons. Since it can both monitor and control the buttons, it can notify the computer when the cooler’s state changes, or change the state when the computer sends a command.
On the computer’s part, the control software creates a system tray that displays and allows the user to change the cooler’s current activity. The control program can detect the CPU’s temperature and adjust the cooler’s power automatically, and the Arduino can detect the laptop’s suspend state and control power accordingly.
Somewhat surprisingly, this seems to be the first laptop cooler we’ve seen modified. We have seen a laptop cooler used to overclock a Teensy, though, and a laptop’s stock fans modified.
Making A Smarter Laptop Cooler

I am humbled by the fact that you published an article about my project. Thank you!
For those interested, a by-product of this project was the idiomatic integration of libusb’s async interface with Rust, which I’m also trying to upstream here: https://github.com/a1ien/rusb/pull/221.
Lots of fans sucking on the solid flat parts of a laptop. These are a joke instead of coupling to the fan port on the specific laptop. The vent port is usually on the side anyway. Seems better to make a cooler that mates to the actual cooling path and augments it. Definitely do not block any ports with cloth or debris.
I have thought about this, since the inlet port is on the bottom on many PCs. Use a beefy blower to push air in, with a proper filter etc.; you can potentially get less noise due to a bigger fan spinning slower, and the tiny laptop fan may as well shut off due to the low temps
Would be nice if laptops had included filters or cleanable traps. Pretty sure it’s about time for me to open mine up and swab out all the heat sinks
But then the fans would not rattle, grind and make other strange noises, and normal people would not upgrade their laptop to a newer model as often.
But I fully agree with you a nice 10 cents air filter, that will restrict air flow a lot but that can be worked around, with a much larger fan opening which may even be able to operate at a slower RPM (less noise) under normal loads.
Most laptops suck from the bottom and exhaust to the back and/or side. So fans usually blow up.
I actually got one that I rather like from Amazon that has foam around the edge to make a good seal. There is also a dust filter on the intake, so clean air comes through. I have had laptops die from too much dust, and bearings wearing out, so this should help solve both of those problems
It is on my to-do list to have a controller on my cooling pad base its speed on the current going into my laptop, but not enough time lately. Maybe one day.
Laptop can vary. My old one had vents on top by the LCD hing, it’d blow hot air into my face if I looked too closely to the LCD. My current one blows out the side and back. Almost all laptops suck air from the bottom.
There are no universal cooler, the air intake location varies with brands and models.
Interesting I went about this a different way.
I am using two fans mounted behind my Framework 3d printed windows tablet. I have connected the home assistant guest agent to my homeassistant mqtt integration and the fans respond to cpu usage and cpu temperature reported to home assistant from the guest agent. I’ve noticed since doing this the onboard fan runs much less and my temperatures are more consistent.
Or use the no-code solution: I use a thermistor and a darlington for my fan controller. Off when cold, ramps only to the setpoint needed. Hardly ever runs full speed. Doesn’t need the cooperation of the device being cooled.
You could have used a 555 timer for this… ;-)
Well, actually, yes. PWM with a 555 (or an opamp) is better than the linear behavior you get from the thermistor+darlington, but requires more parts.
And have the thermistor poke out somewhere? The hot air doesn’t go anywhere near the laptop cooler. The cooler pushes more cool air into the fan inlets on the bottom of the laptop. The hot air either comes out the side, back, or the screen hinge area.
I don’t think they do much anyway, compared to having adequate open space under the laptop for the air inlets.
It doesn’t poke out. It goes onto/in contact with the heatsink. They’re tiny, can use 36 ga or even smaller wire, and can snake in anywhere. You could put it at the exhaust duct too, I suppose, if you don’t have a screwdriver handy, or aren’t handy with a screwdriver.
I was not aware of the existence of laptop coolers. Is this specifically for gaming laptops? I previously had a latitude rugged that never got warm and right now i’m using a toughbook 55. It’s now 29C in my house due to a heatwave, but the fans in my laptop are off at the moment and the 11th gen i5 in my laptop is running at 39C. I’ve never even seen the chassis get above room temperature.
blast from the past! i had a 2003-era ultrabook (before the term was coined), and i had to manage its fan. it turns out, it had an ACPI script that kept the fan off (or low) until it was already overheating. i don’t remember the symptoms of overheating but it did make the laptop effectively unusable. i eventually solved it by decompiling the ACPI, fixing the script (making it turn the fan on before the CPU overheated), and using some linux kernel hack to load my custom ACPI script.
i can’t imagine wanting to actively manage the fan. since then, i had two laptops where the fan just worked (but one was another intel ultrabook and it was awful even though it does turn the fan on appropriately). but then an amazing thing happened and i haven’t had a fan since 2013! first it was ARM laptops, and now even “Celeron N4000” class laptops are fanless. really amazing. i can run quake3 at full settings, 1366×768, and it does get warm but nothing degrades
Or get an ARM based laptop– Apple Silicon or Windows for ARM. I haven’t tried the Windows variety, but the cooler running without a fan and longer battery life are huge pluses. Windows for ARM probably isn’t ready for prime time and may never be, but Apple’s ability to force such changes has some benefits in situations like this.
Am I the only one whose first reading of the title implied that some way was found to make my slow, moronic laptop run faster, smarter and have more sex appeal at the same time ? ;)
“Gee dad your laptop sure is fast now. That’s kewl !”
“…uses a laptop cooler…”
And that’s the problem right there.
That thing, at best does nothing, and at worst makes the problem worse.