PC Fan Controller Works On Most Operating Systems

For better or worse, most drivers for PC-related hardware like RGB components and fan controllers are built for Windows and aren’t generally of the highest quality. They’re often proprietary and clunky, and even if they aren’t a total mess they generally won’t work on Linux machines at all, or even on a headless setup regardless of OS. This custom fan controller, on the other hand, eschews the operating system almost entirely in favor of an open-source fan controller board that can be reached over a network instead.

The project’s creator, [Sasa], experimented with fan splitters to solve his problems, but found that these wouldn’t be the ideal solution given the sheer number of fans he wanted in his various computers, especially in his network-attached storage machine. For that one he wanted ten fans, with control over them in custom groups that would behave in certain ways depending on what the computer was doing. His solution uses two EMC2305 five-fan controller chip which communicates over I2C on a custom PCB with a RP2040 at the center. This allows the hardware to communicate with USB to the host computer for updating firmware and controlling over the network. There’s also a 1-wire and I2C bus exposed in case any external sensors need to be integrated into this system as well. To get power for all of those fans, the board uses a SATA connector to get power from the computer’s power supply.

With the PCB built and all of the connections to the host computer made, the custom board is able to control up to 10 fans in any custom configuration without needing a monitor or a driver since it is accessible over the network through an API. It’s also open-source so any changes to the firmware or hardware can easily be made for most air-cooled PC situations. If you’re less concerned about the internal case temperature and more concerned about all the heat your PC is dumping into a living space, you might want to look into venting your PC outside instead.

13 thoughts on “PC Fan Controller Works On Most Operating Systems

  1. id rather get fan bus strips from the pcb mill of my choice. this is how i manage to run 5 fans off of 2 fan headers. especially when one of the headers can push enough current for a water pump and can run 3 or 4 fans easy. so i got a bank of 3 and a bank of 2. having a hub makes wiring into a nightmare unless you have a large case with a place to hide away your ratsnest, i prefer to avoid the ratsnest entirely.

    some caveats: you need to know how much power a fan port can deliver, some mobo manuals do not publish this. but unless you are using some kind of monster fan its usually enough for a midsize case. you can share the pwm signal, but you must only return one tach signal. i usually use the center fan or the fan with the most direct flow path through the things you want to cool. mount the fans to the frame with cable either on top or on the side, and then clip strip and tin the leads and attach them in through hole fashion. you may want to leave a little slack incase you want to crimp a connector to it later on. i usually have a solder jumper for the tach signal. make sure to tape or conformal coat your terminals. you can attach the strip with double sided tape or make a wire bracket to engage the screw holes. sure beats a bunch of splitters and hubs.

  2. ‘without needing a monitor or a driver since it is accessible over the network through an API’

    Soon he will invent software to control the fans based on OS events. It will be revolutionary.

  3. To each his own, I just don’t see the network as a great idea for managing my fans.. There are USB headers on the motherboard that could have been used to get USB support. Or you can hook into motherboard fan headers for a control signal and group multiple fans together to use them.

    1. There is no network on the board though. It seems to connect over usb. As it’s internal, it seems strange to not just have a pin block for usb, and an rp2040 is massive overkill, both in processing power and component list.

    1. Even the best enclosure would struggle to deal with the high end gaming hardware without a heap of fans now – 500w GPU, 200+w CPU makes the thing a space heater that needs pretty high speed airflow throughout. Though crap RGB and Glass with poor airpath ‘stylish’ cases are still going to be a thing…

      1. Don’t forget the tiny closed-loop “water cooling” that moves the heat sink ten centimetres further from the CPU, to nobody’s benefit except those who manufacture LEDs to light up the tubes

        1. Even the smallest closed loop water cooler should work pretty well – you haven’t moved the heat very far physically, but you still have similar fin area to most coolers and now the heat is to be immediately exhausted out the case – something that isn’t true of even the best big tower air cooler. Of course if you have decent case airflow…

          There is also the thermal mass of that fluid to consider – even if it can’t actually cool at a steady state the same power it will handle the spike loads by smoothing them out allowing longer at high boost before thermal throttling kicks in. So for most gamers that is actually better than being able to run continuously at that higher power rating, as most games and many professional tasks are spike loads.

      2. Ahh come on, most mid range GPUs are less than 150w, even those that cost more than a semi decent second hand car (rtx 4080 is 320w and even the 4090 OC edition is 450w) aren’t pulling 500w yet. Even so they’ve their own fans. 2 or 3 90/120mm case fans in the right push/pull config is more than enough with some additional ventilation. If you’re water cooling you’re just trading those 4 internal fans on the GPU/CPU for case fans or external ones.

      3. Eh… depends what you’re looking at. The heat output of one of AMD’s 3d-cache cpu’s while handling various games would be much more reasonable than that. Especially as you don’t immediately increase power consumption by making performance tweaks or overclocking, the way we used to do to every CPU immediately. Actually you often improve performance now by making tweaks that lower consumption and heat.

        And the upper limit on price, performance, size, etc on GPU’s has gotten further and further from the midpoint, so the only model I can think of that is around that level is the 4090. It’s advertised at 450W while everything else from either of the two relevant brands is 355W or less, though I agree the numbers are often made up. Admittedly I’m not really a gamer, but still.

        Anyone remember the 295×2? Run a bulldozer/piledriver cpu overclocked as heavily as possible if you’d like a real space heater :D.

  4. I did something similar in my server box. Got an appropriate fan hub, and then flipped around the pwm and ARGB pins so they pointed up I stead of down, soldered on wires going to an rp2040 zero module. Now I have individual fan and ARGB control of everything in the case, programmable by editing the circuitpython file on the 2040 via usb

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.