Teensy PC fan/RGB controller

blazini36

Active member
Kind of a shameless shilling for code post, but I'm not much into writing code, I'm a hardware guy. If there's a better place for this post I can move it.

So I've been upgrading my PC alot lately and just got into custom watercooling and I'm not particularly thrilled about the controller options out there especially since I run Linux (not everyone who uses Linux is a programmer lol). I've been messing with Teensy's alot lately, a friend helps with code for other projects but he can't get on board for this. I came across this and figured maybe I could get it running:
https://mstrthealias.gitbook.io/teensy-fan-controller/hardware/simple-pcb

I designed a PCB similar to the one made here but with mostly SMDs, a SATA power connector and a level shifter IC to incorporate ARGB. That project looks pretty cool because it has a GUI for setup and everything. I've tried to compile that Teensy firmware but ran into issues, plus support for Teensy4 doesn't exist there. I also ultimately want to have this work with OpenRGB, for well....setting up RGB.

I'm gonna setup a git repo when I get a chance with board files and such. I'm wondering if I can get anyone interested in helping with code for it. I can whip up a couple of PCBs (minus the Teensy) for anyone legitimately interested in helping. I've thrown a couple of example projects at it just to test the board and the RGB, PWM, tach feedback, and analog thermocouple inputs seem to work fine. I used these for testing:
https://dev.kprod.net/arduino-pid-pwm-fan
https://github.com/rstephan/TPM2

The specs of what I have are:
5 thermocouple inputs
6 individual 4 pin fan headers
4 ARGB channels
1 ARGB sync channel (not sure if it's useful yet)
SATA power connector

The board:
20210214_161425.jpg

Where I plan to put it
20210214_132845.jpg
 
Just a reminder : According to specs the PWM can be pulled to 5V by the fan. I hope that recent fans only pull to 3.3V, but i would test it.
 
Just a reminder : According to specs the PWM can be pulled to 5V by the fan. I hope that recent fans only pull to 3.3V, but i would test it.

As in the original schematic, theres a diode to protect against the pullup if it exists. Not too worried about the hardware, that's all been tested, trying to get the software going.
 
As in the original schematic, theres a diode to protect against the pullup if it exists. Not too worried about the hardware, that's all been tested, trying to get the software going.

Not a hardware guy, but how do you pull it down when there's a diode in between?
 
What do you want the code to do?
I'm interested in making a simple teensy based controller for a custom loop.
Radiator fans controlled based on water temp and radiator air intake temp.
Some rgb led(s) to indicate water temp.
Maybe outputting all measured values at some interval over usb so it can be read externally.

I'm not interested in making some windows gui for fancy reporting and adjustment.
 
What do you want the code to do?
I'm interested in making a simple teensy based controller for a custom loop.
Radiator fans controlled based on water temp and radiator air intake temp.
Some rgb led(s) to indicate water temp.
Maybe outputting all measured values at some interval over usb so it can be read externally.

I'm not interested in making some windows gui for fancy reporting and adjustment.

I never said anything about a "Windows" GUI, I haven't used Windows in years......The project mentioned in the first post used a QT GUI for configuration and it kind of needed to work or you couldn't configure it as it were.

I broke down and bought a Corsair Commander as it's got drivers included in the Linux kernel now. I did however come across this project https://github.com/Legion2/CorsairLightingProtocol

......which looks pretty good because it uses the corsair protocol but the developer specifically had some issues with the Teensy and refuses to support it.

As far as what I want it to do........more or less what you suggested except maybe some more control over the ARGB channel. The above project basically spoofs the dev board into behaving like a Corsair, and something like this project can already handle reading and controlling a corsair commander over CLI https://snapcraft.io/opencorsairlink

Those are just suggestions. honestly as long as the thing is configurable and maybe be read through lmsensors it'd be of use.
 
Back
Top