Swiftech
Page 1 of 8 1234 ... LastLast
Results 1 to 25 of 176

Thread: Open source DIY TEC and Fan controller

  1. #1
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568

    Open source DIY TEC and Fan controller

    Right im gonna create a relatively simple TEC controller from off the self-parts, based around the Arduino UNO board. The idea is that pretty much anyone will beable to follow this thread and build the same controller, But of course change it to suite what you want.

    The cool thing about the Arduino is that you can program it in C++ (I will make the code available once done) and therefore anything is possible. All you need to do is buy the correct plug in boards and tell it what to do.

    The cost of this will be about $150NZD. I wont be selling these, you can just make your own. While im on the topic of selling things some of you guys will know I’ve shut down my TEC shop. It’s highly unlikely that I will ever return to that. However I do intend to make all my Solidworks drawings available to people to down load and they can choose to change it or simply take it to a milling machine shop and get them to mill one for you.

    For me quite running and Consistent running temperatures ( the point of having TEC’s ) is essential. I like to pic a hotside water temp and auto adjust the fan speed to keep the hot side at X value.

    Now I’ve had T-balancers for years however they haven’t ever worked very well in my opinion, As the fans would constantly hunt when given a target temp to achieve. Having the fans constantly changing speed was very very annoying so I will (already have) fix this while still maintaining responsiveness when a large load is applied and the temps start rising.

    To achieve this I wrote a VB application to simulate an inconsistent load and a radiator and fans trying to cool it. This has enabled me to create a pretty good logarithm(imo). In essence when the temp starts increasing the fan Duty increases with it and when the temps start falling the Duty also falls However the rate the duty falls is 20 times slower which prevents the bouncing. I’ve written this for the T-balancer and it works perfectly.

    TEC Temp Controller.jpg

    I have also implemented a MIN and MAX duty which will prevent the fans from automatically slowing down below or speeding up above this value. This has been done because some fans are just to impractically load at full power and some are already very quite at 50% so there’s no point in going below that. Also most fans wont run below say 25% duty and that really throws everything out when the app assumes the fans are always spinning.

    I have my min at 35 % and max at 94% so the fans are automatically adjusted between these 2 values.

    Now I’ve already completed the above and tested it by reprogramming the T-blancer, though I did it in VB not C

    TEC Temp Controller graph.jpg

    I of course will repeat the whole process for the cold side.

    At this stage I will probably have a humidity and ambient temp sensor, which will only be there for reference sake. In my opinion adjusting the cold side temp to just over dew point AUTOMATICALLY is pointless and therefore I wont be doing it. You guys can of course come along after and do that if you want. The reason im not doing this is I want consistent temps so I can have consistent over clocks. If the cold side was automatically adjusting all the time it would result in wildly different cold side temps based on changing humidity and ambient. I much prefer picking a cold side temp that is always over the dew point. This sometimes means it’s actually over the ambient temp. ie on a cold winters morning the plus side is that in cases like that the total system noise will be very very quite and only really working hard at the heights of summer.

    Im obviously going to be connecting a screen to display all the relevant information , which should be hot side temp , hot side duty , ambient temp, cold side, temp duty and dew point.



    UPDATE TIME
    25/06/2012


    Controller Arduino Nano v3
    http://www.dealextreme.com/p/nano-v3...-118037?item=8
    sku_118037_3.jpg


    Screen DFRobot I2C / TWI 4x20 LCD Module
    http://www.robotshop.com/dfrobot-i2c...cd-module.html
    dfrobot-i2c-twi-lcd-module-1.jpg


    Two of ZX-Thermometer Temperature Sensor thse for monitoring the Hot and cold side water temps
    http://www.robotshop.com/productinfo...-43&lang=en-US
    inex-zx-temperature-thermistor-sensor.jpg

    One of these DFRobot DHT11 Temperature and Humidity Sensor
    http://www.robotshop.com/productinfo...-64&lang=en-US
    dfrobot-dht11-temperature-and-humidity-sensor.jpg


    Some jumpers
    http://www.robotshop.com/productinfo...100&lang=en-US
    sfe-170mm-ff-premium-jumper-wires.jpg

    Thats all thats required to get the controller working


    Powering the Arduino AND Fan Mosfet with Lowpass filter (You HAVE to have a lowpass filter for the fans)



    Four 16v 1000uf Caps

    1 of these resisters PWR263S-35-R270F for the lowpass
    http://newzealand.rs-online.com/web/p/products/7332694/
    R7334704-01.jpg

    1 of these MOSFET's BUK9608-55 (The mosfet i will be using will be abit different to this one)
    http://newzealand.rs-online.com/web/p/mosfet/6531746/
    D2PAK-03.jpg


    Powering the TEC's Type 1
    TEC Mosfet with Lowpass filter the result is an analogy output (a change in voltage)

    The diagram is the same as the fan controller i have used 50v caps cos i was building this for 50v but if you want to control a lower voltage you can use lower voltage caps which will make them smaller

    Four 50v 2200uf Caps (yes they are big)

    3 of these resisters PWR263S-35-R270F for the lowpass
    http://newzealand.rs-online.com/web/p/products/7332694/
    R7334704-01.jpg

    one of these HEX MOSFET's IRLS3036-7PPBF (DO NOT JUST USE ANY OLD MOSFET)
    http://newzealand.rs-online.com/web/p/products/6887254/
    L0464362-01.jpg

    Powering the TEC's Type 2
    TEC Mosfet the result is a digital output (a change in Current)



    one of these HEX MOSFET's IRLS3036-7PPBF (DO NOT JUST USE ANY OLD MOSFET)
    http://newzealand.rs-online.com/web/p/products/6887254/
    L0464362-01.jpg

    Now like everything I’ve ever done it will change widely so we’ll see how it all turns out
    Last edited by Ultrasonic2; 07-14-2012 at 09:46 PM.

  2. #2
    Xtreme Member chaotic's Avatar
    Join Date
    Dec 2009
    Location
    ATHENS
    Posts
    100
    Nice one MikeWaiting for this!
    混沌とした アンモラル

  3. #3
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    Right so the original thermocouple sensors are having to go because there aren't enough inputs to support two of them. They were very expensive too . im going to a more basic Thermocouple amplifier that allows me to use 1/3 the pins and analogy pins instead
    of digital. the down side is i'l have to write a function to convert it's input from 0-1023 to temp.

    i have also source a cheaper humidity sensor
    So cost in usd excluding postage

    Arduino Uno Rev 3 (GENUINE!!) $18:60
    http://www.dealextreme.com/p/arduino...120464?item=11

    humidity and ambient $3:40
    http://www.dealextreme.com/p/arduino...121350?item=12

    thermocouple amp $7:99 x2 = 15.98
    http://www.robotshop.com/productinfo...-43&lang=en-US

    16x2 LCD $8.99
    http://www.dealextreme.com/p/lcd-key...cd-1602-118059

    mosfet for powering your fans and TEC's $6.99 x3 = 20.97
    http://www.freetronics.com/collectio...-output-module

    possible 48x48 display $24
    http://www.robotshop.com/productinfo...-83&lang=en-US

    http://www.robotshop.com/productinfo...166&lang=en-US

    $65.94 with 16x2

    Remember im tying to make this as simple for everyone else to recreate
    Last edited by Ultrasonic2; 04-25-2012 at 01:31 AM.

  4. #4
    Xtreme Member chaotic's Avatar
    Join Date
    Dec 2009
    Location
    ATHENS
    Posts
    100
    If i want to use a k type thermocouple...? do i have this option?
    混沌とした アンモラル

  5. #5
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    The original one will work with the k type but does not read negative numbers and has a resolution of 1c it also seems to have an update time of ½ second. Each board uses 5 pins for 10 in total there are only 12 pins on the board so that doesn’t leave any for the humidity and screen and PWM controllers.

    You could cut the number of pins required if you were prepared to ditch the humidity sensor and instead of using the thermocouple sensor as a direct pug in solder wires to them remotely . Alternatively you could add and extension board to increase the number of input/outputs. I of course don’t want to do this cos i want to keep it simple and the NTP sensor has may advantages anyway

    I was originally hoping I could do everything without soldering but im trying to cram to much in there now. I think it could be solder free if I ditched one of the channels. I may add a plug in breadboard shield to simply the soldering ad does need to be does for the sake of making it simple for people but this will increase it’s size and cost

    4 input sensors

    2 pwm outs

    Lcd screen

    4 input buttons

    The current method reads from -20c to 100c in 0.125c increments and is instantaneous reads however that not very practical for will problem in sert a 200 – 250ms delay (1/5 -1/4) second


    Additional features I may add is a VB app to read the my controller so you can log and graph everything. Yes I will include this VB code in my release file for people to further develop

  6. #6
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    i have decided to go with the following LCD which is a 20 character x 4 lines instated of the 16x2
    http://www.robotshop.com/dfrobot-i2c...cd-module.html



    i've decided to do this for a number of reasons. It's obviously bigger and will be able to display far more information. while i could have displayed all the data i wanted on a 16x2 LCD it would be hard for others to understand and look a bit "c r a p " using a single letter to denote a whole word. At the end of the day people will judge how good my end result is by how it looks so having a bigger screen will make it look better. To that end im not going to display the duty cycle of the TEC's and Fans as a number but as a horizontal bar graph which should add that extra bling

    it will be to large to be part of a shield ( plug right in over the Ardiuno ) so installation will be more complex however having the display remote is a good thing cos having to fit everything where i wanted wouldn't have fitted and would have looked pretty messy.It uses the ic2 (serial interface) which means far less Connections are required too, which is pretty cool and makes wiring it up simpler cos there's less wires.

  7. #7
    Xtreme Addict Kayin's Avatar
    Join Date
    Apr 2005
    Posts
    2,330
    For those of us with Arduinos, will you be releasing a PCB we can populate ourselves, or will it simply be something like EagleCAD files? I'm not sure where I would get a PCB made, but I can solder up anything out there. I have an Illuminato here, but it'll run any Arduino code just fine.

    Also, am I to gather that this is like the controller that Arqtic guy has with those very nice controllable pelt blocks that will just plug in to 12V? If so, I'm very interested in this.

  8. #8
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    Quote Originally Posted by Kayin View Post
    For those of us with Arduinos, will you be releasing a PCB we can populate ourselves, or will it simply be something like EagleCAD files? I'm not sure where I would get a PCB made, but I can solder up anything out there. I have an Illuminato here, but it'll run any Arduino code just fine.

    Also, am I to gather that this is like the controller that Arqtic guy has with those very nice controllable pelt blocks that will just plug in to 12V? If so, I'm very interested in this.
    I wont be realising a PCB or EagleCad files as i dont need to (or have them) i expect people to buy an Arduino UNO (and parts listed) and solder the parts to the UNO then Download my code then they're done. Simple :-)

    i'm not that familiar with their controller so it's hard for me to compare. The point of this is for people that love this kind of stuff and who are never happy with someone else product (like me) so they can add or remove parts and change the code themselves.

    in a nut shell this controller will control TEC's and fans to a set temp with ambient and dew point thrown in. You can control whatever end voltage you want. Im going to be controlling about 27volts but 12 will work perfectly too.

  9. #9
    Xtreme Addict Hell Hound's Avatar
    Join Date
    Oct 2007
    Location
    Chicago,Illinois
    Posts
    1,088
    Can you place it in a project box,then vfd will have resting place and removing unit as 1 piece is simpler.
    also when finished a rev. update should be done to decrease price and increase functionality.


  10. #10
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    i have no idea what this means
    ,then vfd will have resting place and removing unit as 1 piece is simpler

    right well i've ordered most of my parts now . im no longer using a Arduino UNO but now a Arduino NANO . the nano is smaller and costs less. the only reason why i was going to use the Uno was because you could get LCD shields for them but since im not doing that any more i thought i'd use the NANO instead.

    Eta on my stuff is 2 weeks

    i have further investigated the ambient temp and humidity sensor and unfortunatly it uses a stupid interface method meaning it's going to take about 1/2 second to retrieve the data. which to me is to slow so i'll probably sample this every minute or two to ensure it's not interfering in the responsiveness of everything else.

    parts.png

    http://www.dealextreme.com/p/nano-v3...-118037?item=3


    UNO V NANO
    Last edited by Ultrasonic2; 04-30-2012 at 09:25 PM.

  11. #11
    Xtreme Member
    Join Date
    Sep 2008
    Location
    Upstate N.Y.
    Posts
    220
    Quote Originally Posted by Ultrasonic2 View Post
    i have no idea what this means
    ,then vfd will have resting place and removing unit as 1 piece is simpler
    He is just trying to say that if the entire assembly could be mounted inside of a small plastic box (which from the looks of the size of the NANO is quite possible) commonly referred to as a job box you could then mount the LCD to the outside of the box and mount the rest of the electronics inside the box. Sort of along the lines of what you said earlier about making it external.
    Quote Originally Posted by chew* View Post
    Nonsense,

    There is no spoon.

  12. #12
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    Yes you could in my case im gonna sick all the working in gap between the back door and the motherboard and then route the LCD to the side door window. Because i dont look at the front of my case but the side door.

    But really the whole point of this object is to do all the hard work for everyone and they can make there changes as needed.

    SO

    i have finished the logic behind a target temp, converting the thermistor out put to a very accurate temp and workout dew temp based on ambient temp and humidity.

    The only problem is i's in VB not arduino so i'll have to figure out how to right it in that. it shouldn't be to much trouble

  13. #13
    Xtreme Addict Kayin's Avatar
    Join Date
    Apr 2005
    Posts
    2,330
    Arduino is mostly C. I think there might even be a VB to Arduino code converter out there.

  14. #14
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    yeah i could use a code converter, mind you thye might not work that well on VB6. BUT the whole point of this project is to get motivated about learning C

  15. #15
    Xtreme Addict Kayin's Avatar
    Join Date
    Apr 2005
    Posts
    2,330
    Ah, fair enough. Good reason, too.

  16. #16
    Registered User
    Join Date
    Sep 2009
    Posts
    85
    Quote Originally Posted by Ultrasonic2 View Post
    yeah i could use a code converter, mind you thye might not work that well on VB6. BUT the whole point of this project is to get motivated about learning C
    The Arduino community is very helpful if you post on their forum. The Arduino documentation is pretty straightforward too. I think you will find it to be a fairly enjoyable platform once you toy around with it a little bit.

  17. #17
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    Quote Originally Posted by plzdontbetaken View Post
    The Arduino community is very helpful if you post on their forum. The Arduino documentation is pretty straightforward too. I think you will find it to be a fairly enjoyable platform once you toy around with it a little bit.
    im currently finding i a real B i t c h and it reminds me why i do everything in VB as it's far less work ( which is the point of VB ) very basic things in C seems to be very painful. Im struggling to do basic rounding to X decimal places. simple as with VB

  18. #18
    Registered User
    Join Date
    Sep 2009
    Posts
    85
    Quote Originally Posted by Ultrasonic2 View Post
    im currently finding i a real B i t c h and it reminds me why i do everything in VB as it's far less work ( which is the point of VB ) very basic things in C seems to be very painful. Im struggling to do basic rounding to X decimal places. simple as with VB
    What is the purpose of rounding? Are you trying to display a pretty number? Does sprintf do what you need? (http://www.cplusplus.com/reference/c...stdio/sprintf/)

    You can use C++ on the Arduino. That may help you depending on how you want to go about your project.
    Last edited by plzdontbetaken; 05-01-2012 at 06:07 PM.

  19. #19
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    well i can add libs but im a little concerned that im not going to have enough space to fit all the necessary libs in the Arduinos memory. 32k is stuff all and i need libs for all the hardware im adding too.

  20. #20
    Registered User
    Join Date
    Sep 2009
    Posts
    85
    Quote Originally Posted by Ultrasonic2 View Post
    well i can add libs but im a little concerned that im not going to have enough space to fit all the necessary libs in the Arduinos memory. 32k is stuff all and i need libs for all the hardware im adding too.
    Yea that gets tricky for sure.

  21. #21
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    except for the rounding thing . i've finished my Dew point calculation function is c now and am doing my Temperature one

  22. #22
    Registered User
    Join Date
    Sep 2009
    Posts
    85
    It may be a good idea to use the provided helper functions while you are just getting started and put off the optimization until you really need it. Otherwise you are going to get frustrated dealing with all the annoying nuances of C at once since they are abstracted away in higher level languages.

  23. #23
    Registered User
    Join Date
    Sep 2009
    Posts
    85
    Quote Originally Posted by Ultrasonic2 View Post
    except for the rounding thing . i've finished my Dew point calculation function is c now and am doing my Temperature one
    Nice

  24. #24
    Xtreme Enthusiast Ultrasonic2's Avatar
    Join Date
    Apr 2008
    Location
    Auckland New Zealand
    Posts
    568
    i actually think part of my problem is i've been righting my c in "processing" as it was suggested it was closest to arduino but it would seem it's far harder than using ms visual studio . i just hope my visual studio code will work. i can't use the actual Arduino language cos i need an arduino for that

  25. #25
    Xtreme Member chaotic's Avatar
    Join Date
    Dec 2009
    Location
    ATHENS
    Posts
    100
    Any update?
    混沌とした アンモラル

Page 1 of 8 1234 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •