I'd like to convert some of my PC case fans to be compatible with Corsair's RGB system to fit with other case fans.

Corsair has an RGB fan hub that allows you to connect RGB fans to it, then connect that hub to an RGB controller. I plan on using this to connect all my LEDs.

For the RGB controller I plan on using an Arduino Uno, because I like the idea of being able to program my own pattern. So the Arduino Uno would take the place of the RGB controller switch that gets connected to the LED hub.

Corsair's RGB fans are just WS2812B LED strips. However their strips have a data in and out connection.

So after one fan or strip does its function, the next fan or strip in the series does it's function, and so on.

So i'm curious how i'd use stock WS2812b's in this system. I already know which molex connector the hub uses, but I'll need to somehow populate the "data out" wire going to the hub.

A teardown of the Corsair fans themselves show the D/Out is right next to the D/In, so i'm wondering if these are proprietary strips or if they're just tapping into the D/In.


So essentially I'm going to wrap an existing case fan with a strip of WS2812b's, and connect them to the RGB hub with a molex connector, but I need to know how I'd turn the standard 3 wire WS2812b into a 4 wire connection that includes a data out wire.

  • 1
    \$\begingroup\$ Questions on how to do this or that with proprietary equipment are generally off topic hence why I've voted to close this question. See this guidance. \$\endgroup\$ – Andy aka May 9 '19 at 11:44
  • \$\begingroup\$ Usually WS2812b LED strips have 3 wires 'in' and 3 wires 'out'. You just connect the outs of 1 set to the ins on the next. \$\endgroup\$ – HandyHowie May 9 '19 at 11:58


simulate this circuit – Schematic created using CircuitLab

Figure 1. Connection diagram.

All the chips have a data in and data out. A stream of data is fed into the first chip, it intercepts the first 24 bits and then passes on the rest. The second chip intercepts the next 24 bits and passes on the rest, etc.

The series connection is done internally on the strips. You'll have to do it yourself for your application.

See the WS2812B datasheet for details.

Update after looking at the picture. (Embedded pictures save us having to follow links to understand the question.)

enter image description here

Figure 2. The connection details.


simulate this circuit

Figure 3. Rather unusually, these short strips have the DOUT wire brought back to the start of the strip. This enables the connections to be all made at one end.

So, for these connect the 5V+ and GND of all strips in parallel and DOUT of one to DIN of the next so that all the strips data lines are in series.

  • \$\begingroup\$ Doesn't each LED process the LAST 24 bits of data they receive and pass on the rest? \$\endgroup\$ – HandyHowie May 9 '19 at 12:11
  • \$\begingroup\$ Thank you. If I want to do these in a series I need to either daisy chain strips of LEDs, or tap into the d/out if I wrap them around something like a case fan. \$\endgroup\$ – Jiffywhip May 9 '19 at 12:19
  • \$\begingroup\$ @Handy: How would it know when the last bits arrive? There is no message length in the protocol header. The protocol is quite genius. On reset pulse catch and store the first 24-bits you see (and don't pass them on) then pass on the rest. \$\endgroup\$ – Transistor May 9 '19 at 12:21
  • 1
    \$\begingroup\$ @Jiffy: No you can't "tap into the d/out". Each DOUT feeds the next DIN and the last DOUT is unterminated. Please unaccept my answer until all your questions are answered. It will encourage other answers and you may gain some other insights. \$\endgroup\$ – Transistor May 9 '19 at 12:22
  • \$\begingroup\$ I have previously written a driver for Microchip PICs. From my memory it worked the way I described, but after reading the datasheet again, maybe I remember incorrectly. I will check again. \$\endgroup\$ – HandyHowie May 9 '19 at 12:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.