Jakeler / Jakeler.github.io

My personal tech blog
https://blog.ja-ke.tech
4 stars 0 forks source link

Custom Controller for Coolmoon RGB Fans | Jake’s Blog #11

Open utterances-bot opened 4 years ago

utterances-bot commented 4 years ago

Custom Controller for Coolmoon RGB Fans | Jake’s Blog

Recently i bought some really cheap (about 7€ per piece!) RGB fans: They look pretty nice and come with a controller/hub and wireless remote, but it has a few issues. It includes many animations, but selecting them with one button is cumbersome. Also they are all fairly fast and flashy, too distracting for my taste. In addition the included controller can control the fan speed, but it makes a very annoying clicking noise, when a lower level is selected. I hooked up my oscilloscope and found that it does PWM with only 25 Hz (yes NOT kHz, just Hz). At full 12V they run with 1400 rpm, wich is too loud for case fans in my opinion.

https://blog.ja-ke.tech/2019/06/11/re-coolmoon-rgb-controller.html

nihalramsheed commented 4 years ago

Im new to pc building and currently done a pc. It works fine. I got a couple of these coolmoon rgb fan and not the controller. So on which pin should these all go on a motherboard

Jakeler commented 4 years ago

@nihalramsheed These fans have a non standard connector, you can't connect them directly to a normal motherboard. Either you use the coolmoon controller or build one yourself (like described in this blog post).

Justdigit commented 4 years ago

Thats an awesome idea... gonna try it. Can you tell me something more about the raspberry installation?

peacepenguin commented 4 years ago

So cool that these "cheap" fan kits actually have a 4-pin ARGB header with the critically needed data-out pin! Your trick to use an Arduino based controller and re-wire them to all be in series is ingenious! Now each LED in the entire system is addressable uniquely; so some really cool custom light shows can be made.

Looks like the popular PCCOOLER 5-pack with decently reviewed PWN fans, also uses a "proprietary" 4-pin ARGB header, people in the reviews are mad about "non-standard" "needs their controller", kinda true to the layman, but how cool! These 4-pin fans are 100% customizable, and serializable without ripping open the fan! And can be re-wired at the connector to hook right to a motherboard ARGB header if desired!

I'm going to try all this out with the 5-pack pccoolers, driven by an ESP32 with WLED firmware installed.

Thanks a million for posting this!

Justdigit commented 4 years ago

I have done the same with EZDIY-FAB Moonlight fans. Also six pins connector.

I have used the original control box... Desoldered the data pins on the PCB. And rewired the data out to data in on each fan.

camdiurno commented 3 years ago

hello there! do you think I can connect a RGB VDG connector directly to the 2nd, 3rd and 4th pins of your 5th photo? thanks!

Jakeler commented 3 years ago

@camdiurno Yes, that should work, AFAIK the VDG header is technically the same as 3 pin ARGB, they are selling passive adapter cables. Nevertheless I would recommend to quickly check with a multimeter that you indeed get 5V and the polarity is correct, before connecting ;)

camdiurno commented 3 years ago

wow, thanks for your fast answer!! that is how I plan to connect the following to that control https://aerocool.io/es/product/duo-12/ as the 6 pin connector is not compatible What do you think? I would use the power from the motherboard (4 pin)

Jakeler commented 3 years ago

@camdiurno I don't quite understand what you want to say with this link. Looks like this product already includes a adapter to the usual mainboard ARGB/VDG connectors. Of course it is possible to make a similar cable for one fan yourself or chain multiple, like I did.

camdiurno commented 3 years ago

perfect, thanks and happy new year

DunkoCookie commented 3 years ago

Hey, so where does this connect to on the pc, I am also a little confused on the Arduino side of things and how exactly his all functions to allow control etc? Thanks

DunkoCookie commented 3 years ago

@peacepenguin how did that go?

peacepenguin commented 3 years ago

@peacepenguin how did that go?

@DunkoCookie

So far so good!

Actually just today I'm soldering up a "final" version that will get installed into the pc, with a 3d printed enclosure for the esp32, and level shifter.

I've been playing with wled code and breadboard testing up till now.

I helped make a "multipin" mod of WLED to make it all work with 8 independent RGB channels, since most pc argb stuff doesn'thave the data-out pin to allow daisy chaining like normal rgb strips. WLED usually only has one output pin, so this multipin mod allows unique control of every LED individually, on up to 8 channels/pins using an esp32.

Got the code working well in my fork of WLED here:

https://github.com/peacepenguin/WLED

I'll be updating that fork with my status as I progress.

The soldering was tough for me, so I might get Kicad going and make a custom PCB board to order from jclpcb or something. I'll post schematics on that repo too, but I'm pretty weak in kicad still, so another learning process before that's ready.

Hope that helps!

DunkoCookie commented 3 years ago

@peacepenguin Thanks, I am looking to get some of these fans. I assume this would work with the nodemcu too? i gather that this project as a pin for only power and then a 3 pin connector to control the colour etc, this is where the esp would get connected too correct? Sorry for all the questions just cant wrap my head around for some reason :)

peacepenguin commented 3 years ago

@peacepenguin Thanks, I am looking to get some of these fans. I assume this would work with the nodemcu too? i gather that this project as a pin for only power and then a 3 pin connector to control the colour etc, this is where the esp would get connected too correct? Sorry for all the questions just cant wrap my head around for some reason :)

Make sure the nodemcu is esp32, then the three pins are +5v, ground, and data. Only the data pin needs to be hooked to the esp32, assuming their ground reference is the same. Hope that helps!

DunkoCookie commented 3 years ago

@peacepenguin I believe the component on my MCU is esp8266 not esp32. Why is the not compatible if I may ask, what’s the difference?

peacepenguin commented 3 years ago

@peacepenguin I believe the component on my MCU is esp8266 not esp32. Why is the not compatible if I may ask, what’s the difference?

Esp8266 can only do up to 2 pin outputs.

Esp32 can do up to 8 pin outputs.

Esp8266 will work fine though so long as you don't need more than two channels!

Good luck!

DunkoCookie commented 3 years ago

@peacepenguin I’ll probably only need the one Channel. Thanks

DunkoCookie commented 3 years ago

@peacepenguin sorry to @ you again. I’m just wondering is there a way with WLED to set when first turnt on the leds turn on in a wave type pattern starting from led 1 to led 30 for example?. If you don’t know what I mean then let me know and I’ll get the link for the cit 7 case turn on (the case I have). I quite like the way it turns on so would like for it to stay that way :)

peacepenguin commented 3 years ago

@peacepenguin sorry to @ you again. I’m just wondering is there a way with WLED to set when first turnt on the leds turn on in a wave type pattern starting from led 1 to led 30 for example?. If you don’t know what I mean then let me know and I’ll get the link for the cit 7 case turn on (the case I have). I quite like the way it turns on so would like for it to stay that way :)

Yes you'll you need to find an effect that does what you want, theres tons of effects to choose from so you can probly find one that's similar to what the case did by default. Then create a segment for leds 1 to 30, then save a preset. Then go into the wled settings, led preferences, you can configure wled to load your preset when turned on.

Hope that helps!

DunkoCookie commented 3 years ago

@peacepenguin thanks :)

DunkoCookie commented 3 years ago

@Justdigit how did that go? I assume you take the first data in and attach that to the arduino or esp? Thanks

Justdigit commented 3 years ago

@Justdigit how did that go? I assume you take the first data in and attach that to the arduino or esp? Thanks

It's al working fine here. I use two ESP32 atm. Synced to eachother. I use lian Li sl120 which are daisy chained by itself. 4 sets of fans. 1 gpu 1 led strip of case. And second esp32 lian li strimer with 6 data in

Before I had the asia horse fans which I used the original controller and soldered inside of that to daisy chain. This way you can use power of the original board. So I soldered out the data in and out of the pins and chained them. So it occupied one data pin on esp32

Big kudos for peacepenquin to make it al happen. Coding is not my thing...

DunkoCookie commented 3 years ago

Hey @Justdigit just had a look at my controller after taking it apart. I notice on the bottom there is 6 places to almost solder to in line. My board is slightly newer than that in this blog and is one with rgb implemented onto the controller itself. Now my question is, are the six ‘solder points’ on the bottom of the board. Of relevance? Are they for projects like these. There is some in this project however mine are laid out all in a row instead of 4 and 2 in the pictures ^^

Justdigit commented 3 years ago

Hey @Justdigit just had a look at my controller after taking it apart. I notice on the bottom there is 6 places to almost solder to in line. My board is slightly newer than that in this blog and is one with rgb implemented onto the controller itself. Now my question is, are the six ‘solder points’ on the bottom of the board. Of relevance? Are they for projects like these. There is some in this project however mine are laid out all in a row instead of 4 and 2 in the pictures ^^

For sure it was the last pin (data out) and I believe tje forth pin is data in. Wig the female connector loose from the pins. Desolder the pins from the board. Bend them straight and mount the female connector with the bended pins. Solder those in series. Data in to data out..... Fix some hot glue with the pins so the won't come out when you connect the connectors.

Hope it's a bit clear. English is not my native language.

tabletsCB commented 3 years ago

Wanted to share that thanks to your help I was able to connect an AeroCool fan with a chinese ARGB controller without any adapter, more details here! https://twitter.com/CbTablets/status/1349426700749316098

vicki442 commented 3 years ago

Hey I just had a quick question about what you've done. I have a hub that has a 5v argb connector already, but I hate having to control the fan speed using the controller, is it possible to rewire (either the fans of the hub) so that it can connect to a sysfan 4pin connector on my motherboard and have the fan speed controlled by that?

My hub also has two 4 pin connections on it that are unlabelled and I can't figure out what they do.

Thanks

DunkoCookie commented 3 years ago

@vicki442 i am unsure of how to connect via pwm and I am just running through molex right now with a dc-dc converter on the way. However in regards to the two 4 pin connections on your controller, I imagine that they are for led strips or for pwm fans . That’s my thinking, hope I can help :) I believe pwm is completed a whole other way than how these fans are wired however I do not have experience to quote too much

peacepenguin commented 3 years ago

@DunkoCookie can you attach a picture of your fans pin headers, the controller itself, and a link to the parts you purchased?

You'll most certainly be able to wire a normal fan header on them to bypass the hub and use normal fan headers, and/or wire normal argb headers too.

But I'd map out an individual fan pin header first, should be something like this:

5v input (for led power) 12v input (for fan motor power) Gnd Argb data in Argb data out (might not have this) Pwm in Fan speed sense out

That's 7 pins though, so my guess is there's no pwm control on these fans, or you dont have the data-out pin for daisy chaining the ARGB connections.

Hope that helps!

DunkoCookie commented 3 years ago

Hey @peacepenguin, I have the same controller as used in the original example. 6 pin cool moon etc. I ended up attaching small wires to each pin and daisy chain 4 of them and instead of crossing from data in to out I just daisy chained data in -data in and that works for me. I got a cheap lm2596 dc-dc converter to be able to set the speed of fans. All working alright right now with WLED loaded on a esp8266 connected to data line

Justdigit commented 3 years ago

9 out of 10 Chinese fans doesn't have PWM. Al controlled by the same RGB remote. Even the control boxes are the same.

snowclaw12 commented 3 years ago

How do I control the fan speeds because on the remote of the coolmoon hub it only controls the speed of the rgb lights, and how do I make a DC-DC converter.

nchilders88 commented 3 years ago

Any idea what the pinout is on the contacts up by Sata Pwr. I have a similar controller with the same branding. I believe it’s labeled S1. My board has an actual pinout there. Im wondering if it could be used for syncing.

Thailand-Rich commented 3 years ago

I split up the 6 wires into 2 seperate molex plugs, a 3 wire plug using only 2-wires for the fan. and I purchased the 4 pin molex plugs used by Corsair. I was hoping to control my 6 cheap fans using a Corsair Node Core... So far so good... although I haven't plugged it in yet.. I've decided to wait and ask someone if you think it'll work or not?? I also am using both in and out data lines... was hoping for someone else's thoughts on this project.. Thanks..

Jakeler commented 3 years ago

@Thailand-Rich Should work if it is the same protocol. Just double check that the polarity on the power pins is correct and try it out.

MrXCrocodile commented 3 years ago

How may i connect my ws2812b led strip rgb to that controller?

1dontfuckingcare commented 2 years ago

Very cool stuff Jake! I have a few surplus fans I wanted to use without having to order another controller. The pinout may help me connecting them to a motherboard... but my knowledge of electronics is not quite as good as I'd like. I would like to control the fans in PWM through the motherboard and control the LEDs using the 3pin/5v RGB header. Would that be possible or is there some fundamental incompatibility I should be aware of?

EDIT:

Nevermind this, I just found the rest of the info in this video https://www.youtube.com/watch?v=V1LE4gj1x8Q

Jakeler commented 2 years ago

For everyone wondering about direct mainboard connection and software part, my new post is (finally) up: https://blog.ja-ke.tech/2022/03/19/openrgb-fans.html