Jump to content
Corsair Community

HowTo: HD120 RGB Custom Lighting Controller


Recommended Posts

Nice work. Can this be used on a single fan no hub? Fan pwm to mobo fan header and lights to the 5v microcontroller?

 

I was thinking about using one lighted fan with WS2812B light strips.

 

"Can it...?"

Yes.

 

Easily? Not as much, but doable. More wiring involved. Even one fan can pull more power than USB can provide unless the global brightness is set down far enough. So for Fan and Strips, you'd need to nab a rail of power, and get the Arduino fan pin to the fan data (Input for the fan, so "Out" from the hub) and ground, and the same for the strips.

 

Fan LED wire, clip side up, connector pointing AWAY from you (wire towards you):

GND - Data - Data Return - 5V

Link to comment
Share on other sites

  • Replies 271
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

"Can it...?"

Yes.

 

Easily? Not as much, but doable. More wiring involved. Even one fan can pull more power than USB can provide unless the global brightness is set down far enough. So for Fan and Strips, you'd need to nab a rail of power, and get the Arduino fan pin to the fan data (Input for the fan, so "Out" from the hub) and ground, and the same for the strips.

 

Fan LED wire, clip side up, connector pointing AWAY from you (wire towards you):

GND - Data - Data Return - 5V

 

Ok thanks, I have a smart fan motherboard from gigabyte it controls the pwm fan speed and everything. The fan is installed just with no lights and works fine. I will order the microcontroller and give it a go.

Link to comment
Share on other sites

Interestingly enough, the pinout for the fan led's matches the pinout for one port on a usb header. To control a single fan couldn't you just unpin the data wire from the plug and run that to the arduino, and then use the usb port for power and ground?
Link to comment
Share on other sites

Interestingly enough, the pinout for the fan led's matches the pinout for one port on a usb header. To control a single fan couldn't you just unpin the data wire from the plug and run that to the arduino, and then use the usb port for power and ground?

 

You'd still need to get ground to the Arduino, unpin both data wires, and USB ports are still "Officially" limited to 500mA. So... "Maybe"?

Link to comment
Share on other sites

Really? Corsair doesn't connect the power of any of their led's (fans or strips) to anything other than 5V SATA from the power supply. Please don't try this at home kids. My MSI motherboard even has a header to power led's labeled LED and I would be afraid to connect it. IMMHO, all led strips including fans should be powered from somewhere other than your motherboard.
Link to comment
Share on other sites

Really? Corsair doesn't connect the power of any of their led's (fans or strips) to anything other than 5V SATA from the power supply. Please don't try this at home kids. My MSI motherboard even has a header to power led's labeled LED and I would be afraid to connect it. IMMHO, all led strips including fans should be powered from somewhere other than your motherboard.

 

"Possible" and "A good idea" are not mutually-inclusive. ;)

 

"Couldn't you...?"

Yes, technically.

 

"Should you...?"

Probably not.

 

Notably some new mobos will handle WS2812 LEDs natively directly from a header on the motherboard. I cringe to think of people connecting a meter strip of 144 LEDs and setting them to all white.

 

"Looks like you let the magic smoke escape."

Link to comment
Share on other sites

  • 4 weeks later...
I'm attempting to use this with some 6 led WS2812B fans, but it seems like the software glitches when the LedsPerFan value is set to 6. When it does work, it misses two of the leds in each fan and they remain blank, yet when it first starts all the leds turn red. Any suggestions?
Link to comment
Share on other sites

I'm attempting to use this with some 6 led WS2812B fans, but it seems like the software glitches when the LedsPerFan value is set to 6. When it does work, it misses two of the leds in each fan and they remain blank, yet when it first starts all the leds turn red. Any suggestions?

 

The default configuration after installing is "Everything Red" (which I might consider changing, because that is not very fun). So the all-red is "good", so to speak, unless it's rebooting all the time.

 

In any case, anything that uses quarters would definitely have issues since six does not divide into four happily and the thing is purely integers.

 

I would expect that modes... *hmm* 0, 1, 2, 4, 5, 6, 7, and 9 might work. *checks the segment code really quickly* Nope. Sides won't work. It's hard-coded. That's fixable though. But until then, 7 is also not going to work.

 

AH! The remap is also specific to the layout of the HD120 RGB fans and 12 LEDs. You'd need to either comment out the remap(); call or adjust it for the fans in question.

Link to comment
Share on other sites

They do light up to everything red, and all the led's function, but after that it malfunctions.

 

The quarters using integers makes sense now that I think about

 

I may attempt to map it for 6 led's, or just add a strip of 6 to each fan so they match the HD120 fans, and the mapping of them.

Link to comment
Share on other sites

They do light up to everything red, and all the led's function, but after that it malfunctions.

 

The quarters using integers makes sense now that I think about

 

I may attempt to map it for 6 led's, or just add a strip of 6 to each fan so they match the HD120 fans, and the mapping of them.

 

The remap() function specifically handles dealing with 12 LEDs in a fan and rotating them by two as well.

 

You can technically tell the segment mapper to define LEDs on the fan manually for the quarters instead of dividing. That's an option.

Link to comment
Share on other sites

  • 4 weeks later...
Flagging this to read through,but you should consdier updating the OP with a rough SOP

 

If that's not referring to "Standard Operating Procedure" then I'm probably too old to know what you mean. ^.^

 

I'm always happy to answer questions and make updates with enough clarity though.

Link to comment
Share on other sites

  • 4 weeks later...
I like that this shows the pinout. I am thinking of getting these fans, making an adapter, then plugging into the Digital RGB 3pin connector jumpered at 5v on my motherboard. I know the Digital RGB strip on the fan has 4 pins. If I understand it correctly the 4th pin is to allow the data to be sent in serial to do effects on one fan after the other. Using only 3 pins each then the data would be in parallel and would operate in an identical fashion.
Link to comment
Share on other sites

I like that this shows the pinout. I am thinking of getting these fans, making an adapter, then plugging into the Digital RGB 3pin connector jumpered at 5v on my motherboard. I know the Digital RGB strip on the fan has 4 pins. If I understand it correctly the 4th pin is to allow the data to be sent in serial to do effects on one fan after the other. Using only 3 pins each then the data would be in parallel and would operate in an identical fashion.

 

Correct! I wasn't too impressed by aurora capability from the motherboards, so I skipped plugging anything into it. If you jump the header into the correct pins on the fan, you should be good to go though.

 

Let me know how that works. I honestly can't guess whether the data stream would be intact when parallel.

Link to comment
Share on other sites

Slighty off on a tangent...... HD series.. More so.. HD series fans with the Corsair Strip removed??.. Did you guys know how easy it is to get the strips out? lol...

 

I had a couple of HD140's lying about and after coming across this video

 

[ame]

[/ame]

 

He makes it look much harder than it actually is and I didn't actuality remove the little black pads either Or indeed need to cut the cable!

 

but mine seemed slightly different to those as they didn't have the pins he removes. maybe the 120's and the 140's are different.

 

I ended up with 2 strips.. in white.. 12 LEDs. set up as a HD fan in LINK,. 6 strips per hub anyone???.. not a cheap way to do it though LOL...

 

So I ended up removing the Strips to use under my case lol.

 

Just thought the whole being able to remove the strips easily might appeal to you guys lol...

 

Sorry if this has been Covered before....

Edited by Zotty
Link to comment
Share on other sites

Slighty off on a tangent...... HD series.. More so.. HD series fans with the Corsair Strip removed??.. Did you guys know how easy it is to get the strips out? lol...

 

I had a couple of HD140's lying about and after coming across this video

 

 

He makes it look much harder than it actually is and I didn't actuality remove the little black pads either Or indeed need to cut the cable!

 

but mine seemed slightly different to those as they didn't have the pins he removes. maybe the 120's and the 140's are different.

 

I ended up with 2 strips.. in white.. 12 LEDs. set up as a HD fan in LINK,. 6 strips per hub anyone???.. not a cheap way to do it though LOL...

 

So I ended up removing the Strips to use under my case lol.

 

Just thought the whole being able to replace the strips might appeal to you guys lol...

 

Sorry if this has been Covered before....

 

For anyone who who wants to get the HD-120 to work with their motherboard Digital RGB header, they could fashion an adapter, instead of replacing the digital led strip inside the HD-120 with an analog. They would need to make sure to use the 5v instead of 12v digital header/jumper. By replacing the digital strip with analog they will lose the digital advantages with the HD-120. In my case I have 2x Analog RGB 12v Header on one channel. I also have 2x Digital RGB 5v/12v (voltage set by jumper) on two channels. I want to go digital so I can have more control of my RGB through the use of my headers as I have 2 channels for this and only one for analog, despite the same amount of headers.

Edited by solarity
Trying to be more friendly
Link to comment
Share on other sites

I've tried everything but I can't get the code to work, even just adjusting the global brightness doesn't work properly, sometimes it takes the values and sets them, sometimes it sets totally different values in different place, like when I try to pulse brightness with global mode 1 sometimes it does nothing, other times it just sets the brightness for all fans to 0, only 2 times the command worked properly.

 

And it's not even that I don't know the commands, I'm pretty sure I figured them all out, it's not too difficult, but even if that was the case, the behavior is messed up even with an external program such as kubdotnet's Led Controller Engine, no matter what I select, when I apply the changes the fans do totally different things, even if I just set a static color for all fans, one will cycle the rainbow effect, one will be one static color while another one will be another random color, one will have its leds completely off and so on.

 

Tried to change the number of fans; nothing. Tried to test with just one fan plugged; nothing. Tried with a different arduino board; nothing. Tried different digital pins; nothing. Tried every possible combination of every version of FastLed, Charixfox's own code (Patch branch included), and kubdotnet's Led Controller Engine; still nothing.

 

I really don't know what to do that isn't writing my own code, but seeing as this one is almost ready to go with the addition of Led Controller Engine (And I'm terrible at developing frontends and UIs), if it can be made to work, I would prefer that.

 

Thanks for any help.

Link to comment
Share on other sites

I think there are better ways to do what the guy in the video is trying to do.

 

Totally agree.

 

But for Me, I was obviously after the strip's rather than the fans and as I had 2 HD140's lying around and indeed 2 ports left on my RGB Fan LED Hub but no room for any more fans in my case lol.. I had to play once I saw how easy it was to release the strips from their plastic prison ;), They now live under my case doing their Princess Unicorn colour changing thang lol ;).. Just figured some of you DIY types may have had a use for those strips minus it's fan at some point ;)

 

 

here is what the Guy in the video was trying to achieve

 

[ame]

[/ame]

 

and now on his ceiling lol

 

[ame]

[/ame] Edited by Zotty
Link to comment
Share on other sites

I've tried everything but I can't get the code to work, even just adjusting the global brightness doesn't work properly, sometimes it takes the values and sets them, sometimes it sets totally different values in different place, like when I try to pulse brightness with global mode 1 sometimes it does nothing, other times it just sets the brightness for all fans to 0, only 2 times the command worked properly.

 

And it's not even that I don't know the commands, I'm pretty sure I figured them all out, it's not too difficult, but even if that was the case, the behavior is messed up even with an external program such as kubdotnet's Led Controller Engine, no matter what I select, when I apply the changes the fans do totally different things, even if I just set a static color for all fans, one will cycle the rainbow effect, one will be one static color while another one will be another random color, one will have its leds completely off and so on.

 

Tried to change the number of fans; nothing. Tried to test with just one fan plugged; nothing. Tried with a different arduino board; nothing. Tried different digital pins; nothing. Tried every possible combination of every version of FastLed, Charixfox's own code (Patch branch included), and kubdotnet's Led Controller Engine; still nothing.

 

I really don't know what to do that isn't writing my own code, but seeing as this one is almost ready to go with the addition of Led Controller Engine (And I'm terrible at developing frontends and UIs), if it can be made to work, I would prefer that.

 

Thanks for any help.

 

Hi!

 

Don't use the patch branch. O.O It's not finalized yet.

 

What kind of Arduino are you using? Anything other than a Leonardo-style board (Like the Pro Micro or Beetle) has trouble with the serial I/O after some recent timing changes.

 

Are you able to get a setting report from the board? (Send a single question mark)

Link to comment
Share on other sites

Hi!

 

Don't use the patch branch. O.O It's not finalized yet.

 

What kind of Arduino are you using? Anything other than a Leonardo-style board (Like the Pro Micro or Beetle) has trouble with the serial I/O after some recent timing changes.

 

Are you able to get a setting report from the board? (Send a single question mark)

 

I used the master branch too, don't worry, I just figured I wouldn't lose anything if I tried the patch branch to see if the problem was solved or not (Read about the corruption issue with an incorrect command and thought it could have had something to do with my problem).

 

Anyway, I'm using a UNO board, so I guess that's the problem. Any workaround?

 

Forgot to add: Yes I can get the report from the board just fine and the values look all correct (Or at least the brightness looks correct, it's the only value I can change that behaves almost normally, it works 50% of the times). And loading the settings from memory using the dollar symbol ($) works fine 100% of the times.

 

 

Thank you for taking the time to help me.

Edited by Tripater
Link to comment
Share on other sites

I used the master branch too, don't worry, I just figured I wouldn't lose anything if I tried the patch branch to see if the problem was solved or not (Read about the corruption issue with an incorrect command and thought it could have had something to do with my problem).

 

Anyway, I'm using a UNO board, so I guess that's the problem. Any workaround?

 

Forgot to add: Yes I can get the report from the board just fine and the values look all correct (Or at least the brightness looks correct, it's the only value I can change that behaves almost normally, it works 50% of the times). And loading the settings from memory using the dollar symbol ($) works fine 100% of the times.

 

 

Thank you for taking the time to help me.

 

Always happy to help!

 

I haven't seen anybody use an Uno before. Easy way to check for what's going on:

Send a relatively long command (Like setting a whole row at once) and then ask for the config.

 

If the config matches exactly what you set, it's running out of RAM.

 

If the config doesn't match, but SOME of it matches, it's not hearing the serial comms or -maybe- having RAM issues, but less likely.

 

Always the Basic Check:

- What speed are you opening the comm port?

 

- How many fans and/or strips are you using?

 

Then more advanced indicates that sending a full config dump back to it might be a worthy test. Get the dump with ? and then paste it back.

 

If all else fails, the Pro Micro is < $12 on amazon.

Link to comment
Share on other sites

My goal is to have a software running in background where users can compose sequences of animations and that software let the animation switches at scheduled times/timespan/timeout.

 

I made a little change that closes serial port after the commands are sent; so you can do everything you need without closing and reopening the application :):

 

kubdotnet,

 

Is it possible to include for multiple comm ports? I am building with the Thermaltake Tower 900, so I will be using 4 on each side using 2 micro pro controllers. So it would be nice to either link the LED/fan modes (mirror), then send to each of 2 comm ports, or send them in sequence.

 

I will actually be using 12 of these fans total 8 x 120mm (sides), and 4x140 mm (top/back).

 

Thanks!

Link to comment
Share on other sites

A new version of the Custom Controller Firmware is available. Includes commands to set all the items of a single setting group at once, support for LL RGB fans (Including mixed LL and HD fans), and a few new modes including for strips. The inner hub and outer ring of LL fans are addressed as separate "fans", so can be set to different settings. The LL fans are offset by half a LED from the HD fans though, so the normal halves are no longer a thing. Working on that separately when I can.
Link to comment
Share on other sites

kubdotnet,

 

Is it possible to include for multiple comm ports? I am building with the Thermaltake Tower 900, so I will be using 4 on each side using 2 micro pro controllers. So it would be nice to either link the LED/fan modes (mirror), then send to each of 2 comm ports, or send them in sequence.

 

I will actually be using 12 of these fans total 8 x 120mm (sides), and 4x140 mm (top/back).

 

Thanks!

 

I'll try to take a look at this, shouldn't be too difficult.

Link to comment
Share on other sites

I'll try to take a look at this, shouldn't be too difficult.

 

Awesome! Thank you for the PC-side support!

 

If you'd like to coordinate on control schemes with the Firmware, let me know. Also, if there are any questions about the new features, let me know. The "Set a setting group all at once" may be useful to you.

Link to comment
Share on other sites


×
×
  • Create New...