Jump to content
Corsair Community

Arduino RGB Custom Controller: More or obsolete?


Charixfox
 Share

Recommended Posts

It's been a long, exciting journey from the origin of the custom RGB LED controller for the HD120 RGB fans in the thread at http://forum.corsair.com/v3/showthread.php?t=165029

 

There have been ups and downs and excitement and failures and a lot of people doing wonderful things.

 

Now there are LL fans and two new devices on Corsair's side, the LNP and Commander Plus, and Link is finally starting to catch up with Doing Things with the lights.

 

So the time comes to ask:

Is there enough interest for me to continue development on the firmware for a custom controller, or do the capabilities of the two Corsair items and Link make it obsolete?

 

Mind you, I'm going to continue to use it myself no matter what despite having ... huh... five LNP's now. Sheesh. But further development of the firmware beyond personal desires would primarily be to make more interesting things, more capabilities, and more potential for it to be more user friendly.

 

Just... it would still require some help on the computer side. ^.^; Firmware is fine, but my computer-side-software skills are sorely lacking.

 

I'll take claims of obsolescence into account, but requests to continue hold the weight to get continuation.

Link to comment
Share on other sites

Well Charixfox I personally like the HD120/HD140 Series fans a lot. The LL Fans are nice, but I think there is still room to improve on them to replace the HD series.

 

You have added a great deal of functionality to fans/strips that were already beautiful.

 

I look forward to see what comes next!

Link to comment
Share on other sites

Well Charixfox I personally like the HD120/HD140 Series fans a lot. The LL Fans are nice, but I think there is still room to improve on them to replace the HD series.

 

You have added a great deal of functionality to fans/strips that were already beautiful.

 

I look forward to see what comes next!

 

Interestingly enough, the current firmware is able to handle LL fans too. ^.^

 

Just weird that the LL fans center each quadrant on the main axes rather than splitting them down the main axes. Instead of having "corners", the fan has "sides"

 

Existing firmware development goals if it continues are:

* Run-time configuration of the fan types, quantity, and order

* Raw HID based control

* Real time Per-LED control (For live software control)

* A firmware update installer.

* (Maybe) Hardware-based group control. (Better software would remove the need for this)

 

So there are some things to do. ^.^

Link to comment
Share on other sites

I would love to see this get developed further! I like that there is so many more possibilities with your firmware to customize every led if you want. Hopefully there is enough interest to keep you updating this, I am excited to see what it could do!
Link to comment
Share on other sites

With the release of the icue, this was the first thing that came to mind. I just got my Arduino a couple days ago.

 

Though as I think CUE is generally is the best tool I have seen, I think this might actually open a new door. While there are some people who scream Corsair, not everyone has all of their products. I have 3xHD-120s and Lux RGB Keyboard, though I have other products that use RGB that Corsair isn't even the market for. As iCue can digitally control individually addressable LEDs on a strip, I think it would be great if we could leverage the Arduino to act as a "DAC" to convert the digital signals to analog PWM, so we can control different Analog RGB devices as different logical channels.

 

i.e. Plug Arduino into LNP/RGB Hub set Corsair 10 LED lighting strip or HD-120 in iCue, then have the Arduino convert the Digital signal into 10xRGB PWM signals.

 

Then again maybe the a simple controller could be setup by putting a bunch of WS2811 ICs in series.

 

I still consider myself a noob, though I was planning on making a controller with an Arduino or a Raspberry Pi, it would be fun to work on this with someone else. Plus you don't have to worry about making a stupid interface, which IMHO is always the hardest part as you need a lot of error checking.

Link to comment
Share on other sites

  • 1 month later...

It appears the wiring on the HD120 is different now. the one i just got to use for my 3d printer enclosure (controlled by an arduino) has 4 cables on the power for the fan and 4 for the led's rather than the 3 for power, 4 for LEDs.

 

any idea what the pinout for this would be ? (or the way to work it out)

Link to comment
Share on other sites

It appears the wiring on the HD120 is different now. the one i just got to use for my 3d printer enclosure (controlled by an arduino) has 4 cables on the power for the fan and 4 for the led's rather than the 3 for power, 4 for LEDs.

 

any idea what the pinout for this would be ? (or the way to work it out)

 

Unless someone else can correct me, if I am wrong, but the HD-120 has always had 2x 4pin connectors. The 4th pin is PWM control, I think the SP-120s are 3 pin (ground, 12v, RPM/tach), compared to the HD-120 which are (ground, 12v, RPM/tach, PWM)

 

 

PWM and RPM are optional, if you just use the first two pins, it will run at full tilt. The TACH/RPM gives the fans RPM, which can be used to help manage the speed. Some can use voltage to manage the speed, while others use PWM, which uses 12v full time, but pulses the 12v, which is more efficient and allows for lower fan speeds. I am assuming that you don't have PWM or Tach for your 3D printer and might be even using some adapter. What 3D printer do you have? I got a Micro 3D in a charity auction this past Xmas for $80. It is cool, though would like something a bit bigger, maybe with a heated bed.

 

full.png

Edited by solarity
Link to comment
Share on other sites

PWM fans will not spin when only voltage is applied. They must have a PWM pull-up signal as well.

 

Steady 12v should be applied to the 12v line.

 

25khz PWM signal at 3.3 or 5V must be applied to the PWM line in order for the fan to spin. Notably, the signal can be "100% duty cycle", which means just a steady 3.3-5V applied, in which case the fan will spin at full speed.

 

 

For more information, see:

http://www.formfactors.org/developer/specs/4_wire_pwm_spec.pdf

Link to comment
Share on other sites

Unless someone else can correct me, if I am wrong, but the HD-120 has always had 2x 4pin connectors. The 4th pin is PWM control, I think the SP-120s are 3 pin (ground, 12v, RPM/tach), compared to the HD-120 which are (ground, 12v, RPM/tach, PWM)

 

Totally correct dude.... both plugs have always been 4 pin on the hd series fans..

Link to comment
Share on other sites

PWM fans will not spin when only voltage is applied. They must have a PWM pull-up signal as well.

 

Steady 12v should be applied to the 12v line.

 

25khz PWM signal at 3.3 or 5V must be applied to the PWM line in order for the fan to spin. Notably, the signal can be "100% duty cycle", which means just a steady 3.3-5V applied, in which case the fan will spin at full speed.

 

 

For more information, see:

http://www.formfactors.org/developer/specs/4_wire_pwm_spec.pdf

 

Hrmm, this is interesting, I was trying to find an answer no this, though it seemed most people said that if you don't use the PWM, then it would run at full speed. I found some beefy 10mmH20 Delta fans at work that were going to be e-wasted. I was wondering why I couldn't get them to spin, I was using an older 20pin ATX PSU. So I guess by plugging the PWM directly into the 5v of the PSU, 12v to the 12v, and ground to ground, it should work as well?

Link to comment
Share on other sites

Unless someone else can correct me, if I am wrong, but the HD-120 has always had 2x 4pin connectors. The 4th pin is PWM control, I think the SP-120s are 3 pin (ground, 12v, RPM/tach), compared to the HD-120 which are (ground, 12v, RPM/tach, PWM)

 

 

PWM and RPM are optional, if you just use the first two pins, it will run at full tilt. The TACH/RPM gives the fans RPM, which can be used to help manage the speed. Some can use voltage to manage the speed, while others use PWM, which uses 12v full time, but pulses the 12v, which is more efficient and allows for lower fan speeds. I am assuming that you don't have PWM or Tach for your 3D printer and might be even using some adapter. What 3D printer do you have? I got a Micro 3D in a charity auction this past Xmas for $80. It is cool, though would like something a bit bigger, maybe with a heated bed.

 

full.png

 

I've got a prusa i3 mk3. Built a custom enclosure and got an arduino to power the enclosure.

https://www.thingiverse.com/thing:2862044 building these electronics to go in the enclosure.

 

https://ibb.co/kTb8D8

https://ibb.co/nzjjmT

Thats the enclosure and the motherboard that got the arduino and everything plugged into for the fan, (will also have a bunch of WS2812B led strips attached to the LED outputs.

The plan was to have those in order with it going from the data out on 1 strip to the data in on the next and with the fan either first or last in the strip. The motherboard has a 3A 5V convertor and I've got another 3A 5V converter that will run to feed the second half of the lights.

 

The motherboard has 4 ports for the PWM of the fan and i got that going but seemed to be limited to 500rpm so will have to look into the software there to see if thats currently limiting it. (Worked this out as it was just supplying 5v not the 12v since was plugged in via usb for the arduino not the 12v adaptor for the whole thing, so now can control it between 700-1700rpm using the touch screen.)

 

Can I have the HD120 LED's run by just 3 pins on the motherboard ? (5V Power, data from motherboard to fan and ground) From my understanding the Data out on the fan would be used to connect it to the next led if i added more on the end of it right ?

Edited by nibennett
Link to comment
Share on other sites

I was right. managed to get the led's running on it now as well. when i first took the cables out of the holder had them the opposite way so 5v was getting ground and ground was trying to supply power in the instant till i realised wrong and turned it off.

 

https://ibb.co/grYm0o

 

Now to work on the software effects for the lighting on it and the 3x LED strips that will be connected once its all in the enclosure

 

Just wondering can i have a different effect on the fan to the other LED strips if i wire them to seperate data outputs on the arduino or limited to the one effect across all the leds in my ws2812b strip ?

around 50 led's in the 3 strips, (18, 18, 14) and 12 in the hd120 for the fan.

 

I.e. if they can be separate could control all 4 strips to have different things on them.

(Or filament bay as one thing, the 2 strips in the printer section another thing and the fan a 3rd different thing.)

I know i do still have 4 potential outputs on the arduino nano that using that i can run the lights data outputs from.

Edited by nibennett
Link to comment
Share on other sites

Just wondering can i have a different effect on the fan to the other LED strips if i wire them to seperate data outputs on the arduino or limited to the one effect across all the leds in my ws2812b strip ?

around 50 led's in the 3 strips, (18, 18, 14) and 12 in the hd120 for the fan.

 

I.e. if they can be separate could control all 4 strips to have different things on them.

(Or filament bay as one thing, the 2 strips in the printer section another thing and the fan a 3rd different thing.)

I know i do still have 4 potential outputs on the arduino nano that using that i can run the lights data outputs from.

 

You can either run each fan/strip on separate outputs (Not efficient code-wise) or you can daisy-chain them and address them in series. That is, Fan 1 is LEDs 0-11, fan two is 12-23, and so on. The fourth pin on the fans' LED connection is the data coming from the far end of the LEDs on the fan and to be sent to the next fan.

Link to comment
Share on other sites

You can either run each fan/strip on separate outputs (Not efficient code-wise) or you can daisy-chain them and address them in series. That is, Fan 1 is LEDs 0-11, fan two is 12-23, and so on. The fourth pin on the fans' LED connection is the data coming from the far end of the LEDs on the fan and to be sent to the next fan.

 

Sounds like in series is the way to go. Wire them all in order as per original plan, then define as different series through the led number.

Link to comment
Share on other sites

  • 8 months later...
Any update on this project? Did you ever get the leds addressed in series using one data-output pin? Would you mind sharing your code?

Hi Alex!

 

Are you asking about my code as the original poster, or are you asking about nibennet's 3D printer enclosure project?

Link to comment
Share on other sites

  • 4 months later...
It's been a long, exciting journey from the origin of the custom RGB LED controller for the HD120 RGB fans in the thread at http://forum.corsair.com/v3/showthread.php?t=165029

 

There have been ups and downs and excitement and failures and a lot of people doing wonderful things.

 

Now there are LL fans and two new devices on Corsair's side, the LNP and Commander Plus, and Link is finally starting to catch up with Doing Things with the lights.

 

So the time comes to ask:

Is there enough interest for me to continue development on the firmware for a custom controller, or do the capabilities of the two Corsair items and Link make it obsolete?

 

Mind you, I'm going to continue to use it myself no matter what despite having ... huh... five LNP's now. Sheesh. But further development of the firmware beyond personal desires would primarily be to make more interesting things, more capabilities, and more potential for it to be more user friendly.

 

Just... it would still require some help on the computer side. ^.^; Firmware is fine, but my computer-side-software skills are sorely lacking.

 

I'll take claims of obsolescence into account, but requests to continue hold the weight to get continuation.

 

 

Hey there! I'm new to this forum and I recently built a new rig with two Corsair HD fans. The thing is though, I didn't buy the twin/triple packs that come with the controller. Now i'm stuck with lightless fans, and I'm wondering how compatible these fans are with the motherboard ARGB pins.

 

I've got some experience with Arduino LED strips myself, and does the RGB work the same way on motherboards (for ARGB) as the typical Arduino Data pin? I saw this simple CoolerMaster ARGB splitter that connects to a mobo's ARGB slot, and I was wondering if this could be a possible workaround to my current problem.

 

It'll be great if anyone has tried this before and could shed some light on this.

Link to comment
Share on other sites

Motherboard ARGB using WS2812B just like the Corsair fans. There is an adapter for Aura motherboard to 3 pin Corsair, which would go to a fan hub. It would also be possible to do a single adapters from motherboard RGB to 2 Corsair fans.
Link to comment
Share on other sites

Motherboard ARGB using WS2812B just like the Corsair fans. There is an adapter for Aura motherboard to 3 pin Corsair, which would go to a fan hub. It would also be possible to do a single adapters from motherboard RGB to 2 Corsair fans.

Thanks for the information!

 

I decided to take a risk and did some manual testing on the fan RGBs myself, and yes it is really the WS2812B LED strip. Works exactly like how I used these strips for other purposes, just that my Asrock MOBO won't control it. I think it's due to the software/firmware issue of the native RGB controller though.

 

For reference if anyone wants to know the exact pinouts of the RGB headers on the HD140 fans

 

Top View (the protruding part that clicks/latches is on the top) (not sure how to describe)

 

https://imgur.com/a/sy9ccfq

sy9ccfq

 

1. 5V (Red wire)

2. Data Out (This can be left unconnected or to the Data In on the next LED strip). (Green wire)

3. Data In (Data out from computer/source connects to this)

4. GND (Black wire)

 

*PS terrible formatting of post - and after more testing I realised that the Data In and Data Out pins were actually reversed (probably a nifty little trick to prevent users from using standard ARGB ports on their mobos)

Edited by mofuzzy
Image not included
Link to comment
Share on other sites

 Share

×
×
  • Create New...