1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Modding DIY Microprocessor controlled WC Monitor/Controller

Discussion in 'Modding' started by jebk, 16 Nov 2014.

  1. jebk

    jebk New Member

    Joined:
    18 Oct 2014
    Posts:
    46
    Likes Received:
    2
    I'm not sure if this counts as a mod or not, but I thought people might be interested to see an early stage of a DIY Arduino controlled Watercooling control station.

    The general idea is to get 3 channels of fan output and 1 for pump with the speed of all of them independently controlled dependent on water/ambient temperature differences.

    Its presently more or less finished on breadboard (code works, just need the output stage building).

    General idea is you load into a monitoring screen like this:
    [​IMG]
    [​IMG]

    then use the rotary encoder (twisty looking thing in the middle top of the photo) to load and navigate a series of menus which allows you to configure things like fan turn on temperature, temperature you want to be at full load by, turn on speed etc.

    (I'm going to add a couple of additional parameters here, things like a max water temp override that sticks everything to full at a certain water temp regardless of ambient).

    I've put a video of me navigating the menus (and losing the knob off the encoder) here

    Its presently out of the case and not running an output stage pending the arrival of more inline thermistors (i'm using ordinary ones as substitutes for now), but you can see the % output to use to the right of the screen.

    If anyone is interested let me know and I'll be happy to share the code and schematics so people can make their own.
     
  2. MarkVarley

    MarkVarley Member

    Joined:
    12 Sep 2014
    Posts:
    320
    Likes Received:
    13
    I'm very interested in this, I've been meaning to put some time into developing something along these lines.
    Will the fan speed increase steadily as the temp rises between start and max temp?
    That's one feature I had specifically in mind.

    Sent from my GT-I9505 using Tapatalk
     
  3. Xlog

    Xlog Active Member

    Joined:
    16 Dec 2006
    Posts:
    547
    Likes Received:
    37
    Out of curiosity, how are you getting temperature values - linear, B function or full on Steinhart–Hart equation?

    Feature suggestion: forced PC shutdown then the pump fails.
     
  4. jebk

    jebk New Member

    Joined:
    18 Oct 2014
    Posts:
    46
    Likes Received:
    2
    At the moment it's linear, but it controls duty cycle not fan speed. You could feasibly re write the routine to either give a more exponential response (which would probably give a more linear fan speed) or even to map between a desired fan speed and a given duty cycle.
    Stienhart Hart. The menu library (m2tklib) is pretty big, so i didn't want the extra space required by a lookup table.

    System shutdown is a possibility, probably by sitting a relay in parallel with the power switch, however I use a pwm pump so the idea is to leave rpm sensing with the motherboard. I'd trust that more than anything I built!
     
  5. Xlog

    Xlog Active Member

    Joined:
    16 Dec 2006
    Posts:
    547
    Likes Received:
    37
    Had that setup, one day I got home and found my PC boiling :rolleyes:.
     
  6. jebk

    jebk New Member

    Joined:
    18 Oct 2014
    Posts:
    46
    Likes Received:
    2
    Bit of an update on this, my code sucks hard. Although it works its unreadable and inelegant. I'm in the process of pulling it to bits and starting over with some sensible approaches (not declaring 4 identical menus that use nearly 1/4 of the available ram for example).

    For anyone thats interested the fritzing for the hardware side (excuse the awful breadboard diagram, cba making it neat) is here http://fritzing.org/projects/arduino-based-water-cooling-controlerr

    and the code for version 0.1 is the master branch on github https://github.com/keithjeb/WCController

    Input on either greatfully recieved.
     
  7. jebk

    jebk New Member

    Joined:
    18 Oct 2014
    Posts:
    46
    Likes Received:
    2
    I've now updated the code to actually makes some logical sense, it should allow for an arbitrary number of Inputs & Outputs (although you're limited by numbers of pins of course). It will also store settings across resets (bit of an oversight!)

    Specifications for the controller are:
    • Upto 4 Input Sensors (6 if you don't need i2c)
    • Upto 6 PWM controlled outputs (2 capable of high speed for voltage control without noise)
    • Control of each output channel by:
      • Reference to degrees above ambient at any sensor
      • Reference to Ambient
      • Settable maximum temperature (will go to 100% here regardless)
      • Manual Speed Control
    • Ability to switch off outputs (only if using voltage control, otherwise it will do 0% PWM which doesn't switch off most fans).
    • Ability to specify minimum duty cycle for each fan.
    • LCD Readout of 4 temperature sensors + output speeds for first 4 fans.
    • Full speed output if arduino fails.

    I'm still waiting on a second set of inline sensors to start in system testing but based on breadboard the code appears to be pretty robust. Once thats done its time to get some boards made up (probably perfboard it, but might get some boards drawn up if anyone else wants one - it'll more than likely be a shield for an arduino micro, but if I can get it round a mini to save space I will.)

    If anyone can think of anything else useful I should be adding let me know. Unfortunately exact RPM monitoring isn't possible. (or at least not on more than 1 channel) due to the number of pins I have that can do it.
     

Share This Page