Ardiuno PWM LED fan controller idea - a big problem

Discussion in 'Electronics & Electrics' started by vladtepes, Jan 11, 2017.

  1. vladtepes

    vladtepes Member

    Joined:
    Sep 30, 2015
    Messages:
    1,188
    Location:
    Brisbane, Qld
    In my dual system build I have a number of fans.

    I want to make a fan controller which works independently of either motherboard so irrespective of which system is on, all case fans will operate.

    There are a number of threads / examples of PWM controllers on tehnet, so this is certainly possible.

    My BIG problem though is that I have lovely LED fans - specifically Thermaltake Riing LED fans.

    The LED control on these isn't simply a matter of sending a signal to a 'normal' addressable RGB LED. Instead the fans have microcontrollers on board. A signal is sent from the proprietary Thermaltake 'control box' to these microcontrollers which in turn tell the LED's what colour and mode to operate in.

    Thermaltake, of course, have refused to provide any information regarding the operation of this system, claiming it as a 'trade secret' (as if other firms don't offer similar products.... :rolleyes: )

    The matter is discussed here:
    https://forum.arduino.cc/index.php?topic=366625.0
    but evidently without resolution at that time.

    Even Thermaltake aren't offering a solution as to controlling multiple fans (ie more than 3, which is the maximum capacity per controller).
    http://community.thermaltake.com/in...ecting-multiple-rgb-riing-12-fans-in-x9-case/

    and what's the point of having a control box / boxes inside the case when you'd need to open the case every time you might want to change colour, or set it to colour cycling, or whatever.

    If anyone has advice on this it would be much appreciated.
     
  2. vladtepes

    vladtepes Member

    Joined:
    Sep 30, 2015
    Messages:
    1,188
    Location:
    Brisbane, Qld
    fan specs:

    [​IMG]
     
  3. merlin13

    merlin13 Member

    Joined:
    Apr 12, 2003
    Messages:
    1,418
    Location:
    back in BrizVegas
    Quick tickle on Uncle Google comes up indicating they're patented these, which'd account for their "It's Our Secret Squirrel, We're Not Going To Tell You"responses.

    So reckon you're up for one of three options:

    - put up with what they're doing;

    - ponder on dismantling the fans to bypass or even rip out their proprietary LED controller bits then Frankensteining aka roll your own to suit;

    - find someone with a CRO or ideally a data analyser to tap into the control signal lines and do some sneaky back-engineering. Which has been suggested elsewhere on the interwebbies btw.

    Disclaimer here - if you look and do what's behind Door Number 3 I probably wouldn't blab it about too loudly. Mainly 'coz first hit on a Google search was actually this thread, and Thermaltake just miiiiiight get a bit stroppy about it if you release any inner details on their patented stuff...
     
    Last edited: Jan 11, 2017
  4. Agg

    Agg Administrator

    Joined:
    Jun 16, 2001
    Messages:
    29,364
    Location:
    A Reported Post Near You
    At the heart of it all there must be an electric motor receiving a current. Can you bypass all the brains of the unit and directly provide that power yourself? Or rip out the brains and just put in a dumb motor of your own?
     
  5. vladtepes

    vladtepes Member

    Joined:
    Sep 30, 2015
    Messages:
    1,188
    Location:
    Brisbane, Qld
    Controlling the fans is doable - nothing proprietary in that - its just standard pwm. It's the LEDs which are the issue.

    I don't know anyone with a data analyser no. From what I've seen others efforts to date with CRO's have been unilluminating.

    It really is a PITA.
     
  6. rockofclay

    rockofclay Member

    Joined:
    Nov 10, 2002
    Messages:
    1,404
    Location:
    Melbourne, 3056
    Should be pretty easy to figure out with a soundcard scope. Just build your self an appropriate voltage divider so you don't blow your line input. A 1/15 ratio should do it, as the highest voltage you're likely to see is 12V and line ins can easily handle +-1V input.
     
  7. oRiCLe

    oRiCLe Member

    Joined:
    May 24, 2004
    Messages:
    168
    Location:
    Sydney, NSW
    not sure but couldn't an alternative be an opto-coupled or relay style power trigger from each board to the controller to turn them on, and then share the ground and pwm wires or something similar to control the speed?
     
  8. mtma

    mtma Member

    Joined:
    Aug 12, 2009
    Messages:
    4,334
    Did anything from what you found actually post captured data? I couldn't seem to find anything relevant. There's some guy on EEVblog who did inspect it but he never did get around to posting pictures of what he found. Anyway if it's clocked at 400kHz as he says then you won't catch it on a sound card scope.
     
    Last edited: Jan 11, 2017
  9. DarkYendor

    DarkYendor Member

    Joined:
    Feb 25, 2008
    Messages:
    3,024
    Location:
    Perth
    How many wires are there on the fan? Can you physically see where they go? Might be able to cut in to the fan wiring without affecting the LEDs.
     
  10. RobRoySyd

    RobRoySyd Member

    Joined:
    Jan 24, 2008
    Messages:
    7,751
    Location:
    Sydney
    The LEDs have 4 pins so it's a good bet they're "RGB Serial" LEDs.

    Two of the pins are power, one pin is serial data in and the other serial data out. Each LED is sent 3 bytes, one each for R,G and B. The last three bytes each LED receives contain its data, that LED holds that data, it doesn't pass it on its serial out pin. That's how each LED in the string is addressed.

    The code written for the "Neopixels" should work however there's a number of variants of the type of LEDs with different timing requirements. One could try a brute force approach. Better yet would be to use a digital storage scope. The data is probably only sent at start-up or when what the LEDs are to display is changed so a traditional CRO is not going to help.
     
  11. rockofclay

    rockofclay Member

    Joined:
    Nov 10, 2002
    Messages:
    1,404
    Location:
    Melbourne, 3056
    Ah, didn't catch that bit. Where did you find that nugget of info?

    EDIT:

    Got it, on the EEVBlog page claims the signal runs that fast. Seems far to quick for this kind of thing!? Cheap options would be an oldschool scope, or a diy LPT logic analyser. Maybe a bit of micro code to snoop on it?
     
    Last edited: Jan 12, 2017
  12. cvidler

    cvidler Member

    Joined:
    Jun 29, 2001
    Messages:
    10,656
    Location:
    Canberra
    400k is a common speed for I2C interfaces.

    I'd be surpised if thermaltake were to re-invent the wheel*, when there's already plenty of good options for this kind of task.

    I2C, SPI, SMBus, etc.

    good news is, if it's I2C or SPI, it's very easy to implement on arduino - as there's the hardware built in, and code libraries available.


    *not only would they have to make up their own control box and hardware, but their own LEDs, much easier/cheaper for them to just re-use one of the option already out there.
     
  13. RobRoySyd

    RobRoySyd Member

    Joined:
    Jan 24, 2008
    Messages:
    7,751
    Location:
    Sydney
    Not really. As they're designed so that 100s of LEDs can be wired up on a single serial bus to display moving images 400KHz is not fast.

    Data sheet for these LEDs: https://cdn.sparkfun.com/datasheets/Components/LED/COM-12877.pdf

    These LEDS have an integrated WS2812 controller chip. The only complication is there's also a variant of the WS2812, the WS2812b. Pretty easy to control these from an Arduino, code is already written.

    That's the easiest part. Then you need something to run under the PC's OS that communicates with the Arduino to setup what the LEDs should be doing. You'd also want the Arduino to save the values in its flash memory so the setup sticks after power down.

    [edit]

    I guess if talking to the specific LEDs in the fans proves to be too difficult to work out due to same re-invention of the wheel you could simply replace them with a known LED. They're cheap and readily available via eBay etc:

    http://www.ebay.com.au/itm/50Pcs-P9...593651?hash=item210c4251b3:g:w7kAAOSwFqJWrE~v
     
    Last edited: Jan 12, 2017
  14. vladtepes

    vladtepes Member

    Joined:
    Sep 30, 2015
    Messages:
    1,188
    Location:
    Brisbane, Qld
    Thank you all for your input.

    I confess that much of this talk of various oscilloscopes and data analysers etc is way beyond my level of comprehension....


    As far as the outcome I'm looking for Ibasically want to just create a fan controller, with a few buttons, whereby I can
    1: Set the fan speed (low, med, high for want of better terminology) AND
    2: Control the LED cycling / colour.

    As far as the LED issue is concerned, the functionality of the existing box is fine.... the only problems being:
    1. Accessibility (but I suppose that can be solved just using a remote switch)
    2. The box only controls up to 3 fans. I currently have 3 on the rad at the top of the case and one at the rear of the case. So currently there is no way to make them all colour cycle together.... The top ones are always at a different part of the cycle as the rear case fan.

    The fan control part is less than optimum with just a low/high option on the controller box, despite them being PWM fans.

    I wonder if some sort of hybrid arrangement is possible...


    Hmmm........
     
  15. azzachaz

    azzachaz Member

    Joined:
    Nov 5, 2003
    Messages:
    1,463
    Location:
    Canberra
    I vote for cutting the LED connections with the control box and doing it all yourself with the arduino.
     
  16. dakiller

    dakiller (Oscillating & Impeding)

    Joined:
    Jun 27, 2001
    Messages:
    7,337
    Location:
    Gippsland
  17. vladtepes

    vladtepes Member

    Joined:
    Sep 30, 2015
    Messages:
    1,188
    Location:
    Brisbane, Qld
    Yeah mate Arduino... as per the thread title :lol:
     
  18. dakiller

    dakiller (Oscillating & Impeding)

    Joined:
    Jun 27, 2001
    Messages:
    7,337
    Location:
    Gippsland
    You never mention it anywhere else though, and you aren't very clear in your question.
     
  19. RobRoySyd

    RobRoySyd Member

    Joined:
    Jan 24, 2008
    Messages:
    7,751
    Location:
    Sydney



    Those LEDs are controlled the same way. As it only takes one digital pin on an Arduino to drive a strip of LEDs there's almost no limit to the number of strips or in you case fan LEDs you could control. So if you have eight fans then you only need to use 8 outputs, any of the Arduino boards would do, well any of the 5V ones to keep things simple.
     
  20. rockofclay

    rockofclay Member

    Joined:
    Nov 10, 2002
    Messages:
    1,404
    Location:
    Melbourne, 3056
    Remember though, he's got to figure out the control schema for the leds first. Time to do a bit of snoopy snoopy. LPT to usb adapters are cheap!
     

Share This Page