Necessity is the Mother of Invention

Well, not an original invention mind you.

The Inspiration…

I bought this monster fan some time back to cool my computer system. I often run some fairly intense processing which ends up utilizing a large percentage of my CPU therefore heating it up more than I’d like. it’s approximately 4.7″ square and claims an airflow of > 200 CFM. Most computer fans airflow is < 100 CFM.

BGears 120mm fan

I figured I’d just control the fan from my Motherboard since that is what you normally do with computer fans. For some reason though, the Motherboard was not able to control this beast of a fan reliably as it would never hold it at a constant RPM. The fan would constantly “rev” up and down. I had to overcome a similar issue later in the circuit I’d create, so I figured the Motherboard circuitry had the same issue. i.e. It wasn’t meant to control such a large load. I know there are fan controllers you can outright purchase, but there is no fun in that. Besides, I figured I’d use this opportunity to digress back to my college years and play with some circuits.

The Planning…

First things first, I need to find the components that were required. I originally just thought to slap a potentiometer on the fan and drive it with the 12V supply from my computer, but I quickly realized it would not work. The fan has a pretty large current draw at 1.5A. So at 12V I needed something that could dissipate 18W of power if I went that route…but I only had 2W resistors on hand. At this point, I’m realizing just how much I’ve forgotten about circuits. So, I started looking at DC Motor Controller ICs like the L298N and the DRV8840 but I had a hard time finding them in a packaging I could easily use or could handle 1.5A output. Most of them came as SMT, but I needed something like a DIP.

555 Timer in DIP-8

After doing a bit more research, I decided to use a 555 timer with a transistor. The 555 timer handled the PWM part of the circuit while the transistor could handle the large current. I had an old 12V/1A DC power supply I had been holding onto for a while that seemed to fit the bill just fine.

Since this was going to control a fan in the computer, I did think about just using the Power Supply in the computer, but ultimately decided against it. After finding a few different schematics online, I was able to combine them into something that looked like it might work. All in all, it didn’t require many components though I did need to purchase a few, luckily they were cheap.

The Prototype…

First part was to work out the circuit on the breadboard. I also needed a barrel connector for the power, so I tore apart an old router I had and also salvaged some thin metal while I was at it to use as a heatsink for the TIP122 transistor later in the build.

Prototype on breadboard

At first, I had what seemed to be a similar problem as the Motherboard. The fan would not keep a constant RPM, yet a smaller fan did not have any issues. Swapping out the 100pf capacitor with a 10pf capacitor seemed to resolve it. I imagine the Motherboard’s PWM circuit had a similar issue. The transistor did heat up more than I wanted when increasing the RPMs, but that is why I put a heatsink on it. I don’t plan on having the fan up too high anyway, it sounds like a jet engine when turned to full throttle.

The Design…

The original plan was to use a 1.8″x1.4″ prototyping mini-breadboard, but they were just too small…and quite honestly I felt it would have looked pretty ugly. Even though it would have been contained in a box, the ugliness would have still bothered me, gnawing away at my soul.

1.8″x1.4″ mini-breadboard

So, before I could move any further, I needed to find out what medium I could use for my PCB. I had seen folks used carboard, wood, and plexiglass for a PCB. Cardboard and wood sent the same ugliness vibes as the mini-breadboard, and I didn’t have any plexiglass I could use. That is when I remembered my 3D Printer. I did find other folks that had luck printing a PCB out of plastic. With the medium for the PCB sorted, I needed to find some software that would let me design a PCB and print it out…preferably for free. Enter EasyEDA. One thing I had to keep in mind because I was using a 3D Printer to design the PCB, the traces needed to be kept pretty wide to facilitate the soldering I’d need to do. I’d find out later they still weren’t quite wide enough. Not sure if this was the correct way to design a “proper” PCB, but it seems to work for my needs.

Final schematic for custom DC Controller designed with EasyEDA

The Build…

Now that I had a schematic and PCB layout, I needed to make it into something tangible. I wanted to do a sort of test fit before I went too much further. With moving this schematic through a few different applications, there was a pretty good chance the scale of the image had changed at some point. EasyEDA will export the top and bottom layer PCB separately allowing me to print both layers on paper, then position them back-to-back for the test fit. Luckily so far, everything fit well in the place the components were to go.

Test fit of components

Next, Blender needed to be used. It has a nice feature for importing B&W images and then creating a height map out of that. This is exactly what I’d need to quickly build a 3D model for the 3D Printer to print.


I hadn’t used the 3D Printer in a while, so the build plate needed to be leveled and the rails/gears oiled up. Took a few hours to finish the prep and maintenance along with a test print before trying to print the PCB. Quite a bit more time than I had anticipated. I guess it didn’t help that I also decided to move it into the same room as my computer. Once everything was ready to go, the model was imported into Simplify3D. It’s an application that “slices” the model into horizontal layers so that the 3D Printer knows how to print the object.


Once it all looked good in Simplify3D, I fired off the 3D Printer. Yes, the 3D Printer is in a cardboard box. I usually keep the “front door” of the enclosure closed to try and keep the temperature moderated. Drafts of cooler air can potentially cause a 3D print to crack. These prints are not very big at all, so there is nearly zero chance for that. The PLA plastic I’m usually is usually heated to between 210c and 220c, it’s pretty versatile stuff. The build plate itself is also kept warm at around 60c- 70c.

3D Printer in action

The top and bottom layer were printed separately and then I’d use a bit of superglue once they were done to attach them to each other. I forgot how noisy the stepper motors are on the 3D Printer; the carboard box does help deaden the noise though. The top layer only needed one trace, all the other traces were able to fit on the bottom layer. Since this wasn’t a print that needed a lot of detail, the resolution of the 3D Printer was reduced to increase the speed of the print. This made the PCB a little rough, but not as ugly as what those mini-breadboards would have looked like, well, maybe.

Top and Bottom layer 3D print

It took about 40 minutes for each side to print. If the “cost” shown in Simplify3D is accurate, it estimated about $0.50 to print this PCB. A real custom PCB would have cost me much more. All in all, I’m happy with this so far. I did have to punch out holes in the “PCB” for the components with a sharp object. Once I started to wire/soldered everything in place…it ended up being a lot more tedious than I expected, but at least all the components fit really well. Taking the time to do a test fit really paid off there. In retrospect, I think making the traces even wider and not so deep would have made the soldering/wiring process go much smoother. The problem I had is my soldering iron tip isn’t very small so I ended up melting more of the plastic than I wanted to which mixed in with the solder. So okay, it’s not as pretty as I had envisioned.

Components assembled on the “PCB”

I still needed to have an enclosure for this PCB, so back to Blender for the design and Simplify3D to print. This went fairly well, except for the fact that I made the DC plug hole a little too small. Dremels work well for making holes bigger…and for making holes bigger than they need to be.


Once everything was assembled, I wanted to cover up the screws on the bottom that held the PCB in place. The head of the metal screws would slide around easily and I was afraid it’d scratch up whatever it was sitting on. Of course my daughter had an immediate answer, “Just use hot glue”. Well, that was a really great idea. Now I can properly utilize this monster fan. The funny thing is, I had bought two fans. So at some point, I’ll have to do this again.

Final build

What’s next?

Lately, I’ve wanted to make an automated Pan/Tilt cradle for a video camera with face/body detection…then attach a machine gun to it and turn it into a sentry. Well, maybe not that last part.