Hi guys,
I'm new here, just registered inspired by this thread. Too bad I did not stumble upon this thread earlier, as I was "working" on similar project, a couple of ago. I haven’t been very active with it lately, but I’ve given this subject a considerable amount of thought. What’s holding me back now is that though I’ve been working with Microchip PIC for years now, we are moving to 32-bit ARM at my workplace. It has so much more, and at the same time is cheaper, so I would love to utilize it.
So I'm an embedded Firmware engineer but I also do hardware. What I do is hardware desing, schematics, layout and firmware in C language. I’m not experienced in writing PC software and GUI, and this is where I would prefer help. Who's in?
I've been running water cooled loops for some years now and have been wanting a fully automated cooling system, independent of PC operation. I was surprised how poor selection of such commercial fan controllers there is. Or is there? Aquaero 5 LT was and is out there, but it is not enough! Aquaero LT does not have too many outputs. I want all calculation to happen inside that MCU. Yet I want to be able to monitor and configure it with PC! I want decent form factor, quality PCB and surface mount components. I don't want LCD or other sugar coating.
So at the time I started, I didn't have PWM fans. So I made a 10 channel analogue fan controller. It has 10 output channels, 10 RPM inputs, five NTC (thermistor) temperature sensors, serial I/O and a few unused digital inputs. It has a PIC18F67K22. It’s got 10 CCP’s, so it can do 10 independent PWM channels with 1000-step resolution without having to calculate timings at all. One thing it lacked, and that is interrupts for RPM-inputs. RPM had to be measured by polling the input pin. It works, but it demands time from the MCU. Polling 10x slow spinning fans would hold back other operations. ARM <3 has this and so much more.
With my prototype I used a cheap cheap design for the analogue control. It’s my own design, it occurred to me one morning while I was lying in bed with my eyes closed. I thought of an opamp pulling a PNP transistor. This opamp takes command from MCU PWM (filtered to analogue) and compares it to fan output voltage... simulations were so good, I decided to build the prototype and it worked like a charm
It is linear design, but I get good 12 volts with it. It’d say the voltage lost over the transistor is about 100mV.
I calculated that I could connect up to 4 fans per channel using the SOT-223 BCP53 transistor (calculation based on Noctua NF-P12). The most power loss for the PNP happens at 50% power.
Here’s the opamp schematic and simulation (L1+R9 symbols the fan):
https://www.dropbox.com/s/twx0vg4g1rfav4b/single_opamp_sim1.png?dl=0
So I made a prototype with this analogue design and played with features, but did not go all the way. I had terminal connection (putty) through TTL232 (separate module) and a set of commands I made. I even made an excel sheet where I entered configurations and which generatet a .bat file. The .bat would send the configurations via the virtual COM-port. It works, but I’m not really proud of it
So I had no real GUI, as I hadn’t the necessary experience.
Couple of pics of prototype's PCB..sry, there’s no pics with all the components :/
I still have the prototype somewhere...
https://www.dropbox.com/s/v3fi2wm4v3xayyy/2013-10-30 18.00.10.jpg?dl=0
https://www.dropbox.com/s/w5x490qui2lw9i9/2013-10-30 18.00.44.jpg?dl=0
https://www.dropbox.com/s/i7cfwq2au7lc4s2/2013-10-30 18.01.28.jpg?dl=0
https://www.dropbox.com/s/fxt3fsbp4fz4hqv/2013-11-03.jpg?dl=0
PCB is from Itead Studios. Note how the MCU is on a separate PCB. It was for prototype modularity.. It didn’t do me any good, so I won’t do it again.
But then I gave my PC away and went traveling to Australia for a year. That was February 2014. I’m back now and built a new PC, but haven’t really worked on this project since I left :/
My new plan is to go all PWM. I would use a FTDI chip to have MCU UART to Virtual COM port and use this to send packages back and forth. With this chip there would also be the option to use D2XX interface, but I haven’t got the skills for that yet… I’m going to connect this to motherboard by USB pins (not connector).
I could maybe make a separate module with the linear schematic, to turn a PWM output into a linear 3-pin fan controller.
What I would like though, as a fine sugar coating, is an RGB led in place of my case's power led. My Case is Fractal Design Define XL. It’s got a blue led in a visible spot. I would love to put an RGB there and use it to give visual information about water temperature. When I would turn the PC on, water would be ~23C and the led would signal blue. Then as it warms up to where I want it to be, maybe 30, it would gradually turn into green. From there through orange to red.. you get it