Laptops are made to fit a lot of power into a small case, this, of course, is extremely useful for people who move around or travel however this does have a major drawback. High-end computers cases have lots of space for air and water coolers but when it comes to laptops there simply isn't enough space for huge fans or water coolers, this means laptops that perform a lot of tasks are bound to get hot. Now, of course, laptop manufacturers find clever ways to deal with this but a lot of the time laptops still start to do something called thermal throttling. So to deal with this issue in this project we are going to be building a pretty powerful laptop cooler that's controlled by an Arduino.
Step 1: Thermal Throttling?
Thermal throttling can happen to any kind of computer however it is more likely in laptops, this is because thermal throttling only occurs when a computers CPU or GPU becomes dangerously hot (somewhere around 80 degrees Celsius or 176 degrees Fahrenheit). What happens is that your computer starts to limit its own performance in order for it to cool itself down and not cause any damage, so as an example two identical computer can be set up, one with a very good cooling system and one without, the one without would heavily underperform compared to the one with the coolers because it would be thermal throttling, it almost seems obvious. However, a lot of us don't realize that this could be happening in our laptops and that they might be capable of a lot more than we think.
In the images above I've taken my intel atom PC that has no internal cooling and run a game on it, in the one example it's playing the game with no fan underneath it and the second it has a big server fan under. In the first example the intel atom pc get about 20 fps max and in the second example with the fan it gets 60 fps which just shows how badly it was thermal throttling, so to see if this issue affects you lets get started with the build.
Step 2: Parts List
Now there are a few options when it comes to the parts list, strictly speaking, you only need some fans and a power supply to make this cooling pad, however, this gives us no control over the fan speed and doesn't let us add any extras like temperature activation. So with that in mind here's the parts list.
- Arduino Pro Mini (hard to upload code to but small and cheap) (Here)
- Rocker switch (Here)
- Buttons (Here)
- Magnets (Here)
- USB Uploader or Uno (if you don't have already) (Here)
- Speed Controlled fans (Here)
Now the type of fan is very important, we need to make sure it has more than 2 wires, the first two wires will be positive and ground however its the third one we are after, this is the speed control wire and only some fans have it, it allows us to send analog values to the fan to tell it how fast we want it to spin. So when salvaging or buying a fan make sure it has more than 2 cables.
Step 3: Getting the Pro Mini Ready
Now because we are using the pro mini uploading code isn't as simple as just plugging a USB cable in, that's because the pro mini has no USB port what so ever and so we are going to need to upload code through a USB uploader, I don't have one of these so I'm just going to be using the Arduino Uno as an uploader.
To do this we need to remove the Atmega 328 from the Uno and wire the pro mini to it as follows:
- Ground on the pro mini connects to Ground on the Uno
- Vcc connects to 5 volts
- Rx connects to Rx
- Tx connects to Tx
- GRN connects to Reset
Once all these connections are made we can open the Arduino IDE and click pro mini under tools. Once this is done its ready for code.
Step 4: Uploading the Code
bellow you can find the bettercoolingpad sketch, we need to open this in the Arduino IDE and upload it to the pro mini, however whats the point of building something yourself if we cant learn a little about the code and how it works so we are going to take a look at what the major functions in the code are doing.
we start off with void setup and in that we say pin 4, 5, 6 and 7 are all inputs which means they will be receiving data back from our buttons, this is how it'll know when we press one of them. Then in the Void Loop we have four if statements that say when one of the button values goes low i.e its pushed to send an analog value to the fan which tells it how fast to spin, the analog value 255 tells the fan to go full speed and 64 tells the fan to spin at 25% speed.
Once the codes uploaded we can move onto the next step.
Step 5: Wiring Everything
So wiring everything isn't too complicated as there aren't that many connections to make we just want to connect the fans and Arduino to the power supply and then the 4 buttons to the Arduino and lastly a power switch, we will do it as follows.
The positive terminal on the power supply connects to the RAW pin on the Arduino and the positive input on both fans, then the ground terminal on the power supply connects to the ground of the Arduino and the ground input of both fans. When this is done we need to connect pin 3 on the Arduino to the fans speed control wire, if you're unsure as to which wire is the speed control wire its really as easy as googling the part number to find out.
Now we can start wiring the buttons to the Arduino, the first thing we need to do is solder one leg of all the buttons together this creates a common ground which we will then solder to the ground pin on the Arduino, then the other leg of each button will be soldered to pin 4, 5, 6 and 7 individually.
The last thing to do is solder the power switch in, we do this by cutting the power supplies ground wire and soldering the switch between these connections. With that, all the wiring is done, if any of this was confusing check out the image of the wiring diagram which should help.
Step 6: Building the Case
Now the case design can be left up to your own creative opinion, I actually made two versions of the case, the first one out of wood and the second out of cardboard and I'm by no means a perfectionist which just shows how badly the first case turned out so I'm going to be showing you how to build the second one.
We are going to want to start off by cutting out two pieces of A4 sized cardboard, these will act as our top and base pieces, from here we are going to need to cut air vents into these, the size of the air vents are very dependent on the size of your fan, the top piece shouldn't have holes bigger than the fan and the bottom piece should have holes bigger than the fan, this is to make sure the bottom piece isn't limiting the airflow.
Next, we are going to need to cover these air vents to stop fingers from getting sliced, we can do this with any kind of mech, I got a cheap plastic mech from my local hardware shop. What we need to do it cut out a piece larger than the hole, stick in over the hole and glue on all sides.
Next, we need to cut out the rest of the pieces, which include a 7 cm rectangle to connect the top and bottom piece in the back, a 3 cm rectangle to connect the top and bottom piece in the front and the two sides pieces. Once these are all cut out we can begin gluing all the pieces together, we need to start with the base and side pieces, once they are glued together we can start mounting the fans and electronics.
We start this by gluing two fans under the air vents on the top piece. Now they will be hanging from the top pieces so make sure you use a liberal amount of hot glue to ensure they don't shake loose, when that's done we can mount the Arduino in the front of the case with some hot glue.
Now this last part is completelty optional, because my laptop is too big and covers the buttons when I place it on top of the cooling pad I need to make the buttons extentable so I have access to them while im working on my laptop to do this we will need to cut a small rectanglular hole in the middle of the front of the case and then we will need to make a rectangular box to fit in this hole, we can then mount the buttons and power switch in the front of this box with a magnet inside as this will keep it in place and add some nessasry weight, we will then put a magnet inside the case aswell. When doing this make sure you leave enough cable slack inside the case to allow your buttons to come out far enough.
With that, we can glue on the top piece and give everything a final test.
Step 7: Some Things to Note
Now using an Arduino in this project may seem overkill, however, I would argue that it gives you more control over the fans and allows us to make future improvement such as adding a temperature sensor that can automatically choose the speed of the fans depending on how hot the case is. Also, I made my case to best suit my laptop so I placed my fans where my laptop was the hottest, I would recommend using your laptop and feeling around for where its hottest during operation and then planning your case around this.
As always if you have any questions feel free to leave them in the comments and ill try my best to address them, thanks so much for reading!