Nas200 heat issues

Discussion in 'Cisco/Linksys Network Storage Devices' started by Treah, Oct 22, 2009.

  1. Treah

    Treah Addicted to LI Member

    I was wondering how many of you guys have modified your Nas200 to solve the heat issue with the original case. And if so if you could direct me to some simple solutions. Ive tried to look around a bit but cant think of anything that wouldn't require me to custom build something. I am more looking to modify something. I'm trying to get the heat issue under control as it seams my little nas200 just wont take the heat any longer. AKA system becomes completely unresponsive after a few hours of use.

    By the way jac thanks so much for the custom firmware its a blast and I am messing with it hardcore now. I could have built my own but you have done so much work on it already might as well not reinvent the wheel so to speak. I hope to use yours to make custom file system images and see how much i can push out of my little box.
  2. jac_goudsmit

    jac_goudsmit Super Moderator Staff Member Member

    If you don't want to open your box and void the warranty, your options are pretty much limited to taking the back plates off and mounting a big fan there, but I doubt that it will benefit you because you're not going to get much airflow. Alternatively you can replace your hard disk by "green" models that are designed to reduce heat. I have one Seagate that gets so hot that the stock fan can't keep it cool, and one Western Digital 1TB Caviar Green that barely gets lukewarm and would probably do just fine with the stock fan.

    If you DO want to do some hardcore Dremeling, google for "NAS200 install fan" (without the quotes) and you will probably find some articles including my fan mod (with pictures!).

    You are welcome. I didn't really do any difficult magic stuff. I just:
    • Enabled telnetd on Busybox (this was the hardest part because it didn't work because of a bug)
    • Built Dropbear under Gentoo and added the binaries and the startup script to the image
    • Changed the startup scripts so that it was possible to run my own startup scripts
    • Later on, made a small change to the kernel that made it start /init before (or instead of) /etc/init.

    Anyone with 15 years of Linux experience could have done it really :wink:

  3. Treah

    Treah Addicted to LI Member

    Hehe I actually ended up modding mine since I was pretty sure I was not in warranty anymore. Below is some of the pictures from it. Its pretty sweet now note that in the close up pictures I don't have the fan connected properly. The connection from the nas doesn't seam to have enough power to run a fan with LED's but im not sure. I completed this in a day and it was a royal pain but I did learn alot from doing it. I opted to keep the original top part since it has the indicators for what the front led's are for. I have the fan running off the HDD power so its on all the time. I dunno if this will cause any issues or not time will tell. I have the sata drive connected directly.
    If anyone wants any more info feel free to post here or if you want more pics check them out on the google pics page.


    And this is where it is sitting and running


    Here is the nas next to a Lenovo s10e for scale. If you don't know how big a s10e is its about 10.1 inches across.

    Here is the link to the album.
  4. mdsilva

    mdsilva Addicted to LI Member

    I did the custom box + huge fan thing as well, I run the fan on low voltage and have a "shutup fan" script that only turns on the fan when one of the drives is hotter than a set tempreature. Drives run quiet and cold.

  5. jac_goudsmit

    jac_goudsmit Super Moderator Staff Member Member

    LOL! Well, Congratulations on the first (published?) NAS200 case mod that's this extensive.

    The reason this is ironic is that you basically took off the part that everyone likes: a compact sexy case with easily accessible drive bays, and kept the part that everyone hates: the motherboard. Like doing a brain transplant by replacing the patient's body.

    Awesome! :thumbups: :clap: :bow:

  6. Treah

    Treah Addicted to LI Member

    LOL Jac yeah.

    But the drives are still very accessable and its only slightly larger then the original. Admittedly I could have just tossed the motherboard and put a micro one in there but then what fun would that be. And im one cheep SOB I refuse to toss anything if it still works ( or i can make it work) .

    This whole mod cost me 28 bucks + the fustration to find somone in Phoenix to cut the plexi for me since Homedepot wouldent.

    Ill probably do another better mod on it later when im not burried in schoolwork.
  7. traflaz

    traflaz Addicted to LI Member

    I would really like to have such a feature on my NAS. Any chance you could share that script? (I am not really familiar with linux...)

  8. mdsilva

    mdsilva Addicted to LI Member

    put this in a script and point to it from a rc.d file. (also use at your own risk. This works for me because my nas mod has a big fan)

    # device takes about 3 min to boot so lets sleep for first 5mins
    echo 'device takes about 3 min to boot so lets sleep for first 5mins' > $LOG_FILE
    sleep 300
    # stand by after 5min (12 = 1 min)
    echo 'set drive standby time to 5mins' > $LOG_FILE
    hdparm -S 60 /dev/sda >/dev/null 2>&1
    hdparm -S 60 /dev/sdb >/dev/null 2>&1
    while true; do
            # not sure what this does, might as well kill it...
            killall CheckHDDPower >/dev/null 2>&1
            killall CheckHDDDrive >/dev/null 2>&1
            #### is being used ####
            used="`netstat -ne | grep tcp | wc -l`"
            if [ $used -eq 0 ]; then
                    #### Spin down drive if nothing is connected to it ####
                    LOG='Spinning down drives'
                    hdparm -y /dev/sda >/dev/null 2>&1
                    hdparm -y /dev/sdb >/dev/null 2>&1
                    #### check temps ####
                    hda=`/usr/sbin/smartctl -A /dev/sda | grep 'Temperature_Celsius'`
                    hdb=`/usr/sbin/smartctl -A /dev/sdb | grep 'Temperature_Celsius'`
                    hda=`echo ${hda#*-} | sed 's/ *\([0-9]*\)/\1/g'`
                    hdb=`echo ${hdb#*-} | sed 's/ *\([0-9]*\)/\1/g'`
                    #### get highest temp ####
                    if [ $hda -gt $hdb ]; then
                    #### work out fan mode  ####
                    if [ $temp -gt $MAX_TEMP ]; then
                            LOG="FAN:ON  hd1:$hda hd2:$hdb max fan temp:$MAX_TEMP"
                            LOG="FAN:OFF hd1:$hda hd2:$hdb max fan temp:$MAX_TEMP"
            echo $LOG > $LOG_FILE
            #### do it for a minute with 5 second gaps ####
            Set_Led $mode
            for i in 1 2 3 4 5 6 7 8 9 10 11; do
                    sleep 5
                    Set_Led $mode

    Attached Files:

  9. traflaz

    traflaz Addicted to LI Member

    I've set up the script on my machine. However, I've ran into a problem, which I think is caused by these lines:

    hda=`/usr/sbin/smartctl -A /dev/sda | grep 'Temperature_Celsius'`
    hda=`echo ${hda#*-} | sed 's/ *\([0-9]*\)/\1/g'`
    This outputs something like this:


    which is too long and causes problem with a comparison later on. I just need the first two characters, the temperature itself.

    I've tried to use ${VAR :OFFSET :LENGTH }, or rather specifically

    hda=`echo ${hda :0 :2}`

    and it doesn't work!! What can I write to keep just the first two characters?
  10. Treah

    Treah Addicted to LI Member

    Awesome pic of your mod. After you mentioned that you also modded your nas I was curious as to what it looked like now. I see you also opted to keep the top part like me.
  11. mdsilva

    mdsilva Addicted to LI Member

    The top part is what this forum is all about :wink:
  12. mdsilva

    mdsilva Addicted to LI Member


    try this:
    $ hda=`/usr/sbin/smartctl -A /dev/sda | grep 'Temperature_Celsius'`
    $ echo $hda
    194 Temperature_Celsius 0x0022 125 084 000 Old_age Always - 25
    $ echo ${hda#*-} | sed 's/ *\([0-9]*\)/\1/g'
    see if you get something like "194 Temperature_Celsius 0x0022 125 084 000 Old_age Always - 25" in the first line
  13. traflaz

    traflaz Addicted to LI Member

    I've managed to make it work in the end.

    The first line of that code gave me some extra information at the end, after the current temperature. Something like that:

    194 Temperature_Celsius 0x0022 059 066 000 Old_age Always - 30 (Lifetime Min/Max 0/21)
    And after the sed thing I still had this:

    So I've added an extra line in the script:

    hda=`echo ${hda%%(*}`
    And now it works. I do notice that the temperatures are usually quite high. I might need to install one of those BIG fans!:wink:

    Thanks for the help guys!
  14. mdsilva

    mdsilva Addicted to LI Member

    Hi traflaz, 30 is a good temp :) for hard drives
  15. traflaz

    traflaz Addicted to LI Member

    Yeah... but usually I get temperatures more in the 50-60 range, with the fan running. But I guess it was like that before I've checked it and set up the script...
  16. traflaz

    traflaz Addicted to LI Member

    There is one last kink in the script I am trying to work out, but I can't seem to be able to fix it.

    When the drive is cold (below the set temperature) and I access it (either read or write) the fan keeps starting and stoping over and over. It's as if the script stops it, but something else starts it again? Do you guys have that problem?
  17. jackito

    jackito LI Guru Member

    The problem is that Linksys modified the Linux kernel to start the fan after a few access to the drive.
    So the only way to stop this ANNOYING "feature" is to find this code in the Linksys custom kernel, remove it, compile a new one, create a new firmware image and update the NAS200 firmware.
    Pretty simple ah? :tongue:
  18. traflaz

    traflaz Addicted to LI Member

    Oh, bleh...
    Anyways, thanks for the help!
  19. asadou

    asadou LI Guru Member

    Nas200 heat issues solved

    Thanks jac for your firmware!

    Here is my hardware "tuning" to fix the heat issue. I got rid of the tiny 30mm fan and placed a 60mm fan instead. It required some careful cutting with a sharp cutter. I enlarged all holes in the fan area to 2.5mm to allow the fan to work properly and opened ALL holes on the other side with a 1.5mm drill bit so that air would flow through the drives. Because this new fan takes some more current than the previous one, and i don't know the current rating of the transistor, i fed the fan power supply to a small relay coil and used the relay contacts to power the fan from the HDD 12V supply. Additionaly I placed a LM317 variable voltage regulator to be able to adjust the speed of the fan, the trimming screw is easily accessible from one of the holes in the front of the case and still hardly noticed.

    I have a single 1Tb WD Caviar green drive that was running at 52 deg C and is now stable at 38 with the fan running at full speed, not too noisy fortunately. Will try putting down the speed and see how the temperature settles.

    Attached Files:

  20. Treah

    Treah Addicted to LI Member

    Nice mod. I like how it fits well into the original case. I have yet to read the temps on my drive im guessing your doing this with either an external temperature sensor or with smart stuff. I do know that the nas is alot more stable when you cool it down tho. I hope others will get creative with the fixes :p.
  21. asadou

    asadou LI Guru Member

    I'm just using the SMART sensor reading
    /usr/sbin/smartctl -A /dev/sda
  22. jac_goudsmit

    jac_goudsmit Super Moderator Staff Member Member

    :clap: :bow: :thumbups: That is a most excellent fan mod! Very nicely done and I love the trim pot in the front panel :cool:

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice