Measuring Hard Drive running temperature

Moderators: adafruit_support_bill, adafruit

Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/
Locked
User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Measuring Hard Drive running temperature

Post by tommynar »

I'm building a Raspberry Pi NAS box. I will have 2 2.5" 4Tb drives in a 3D printed case. I have some fans running through it, but the drives do not self report their temperatures. The intention is to monitor overheating and sound an alarm, much like the big guys (Dell, HP) do on their servers.

So, using an ADS1115 analog to digital I2C converter with two LM35 temperature sensors I have the following questions:
  • 0) Should I measure in more than one point on each drive >
    1) How short should the leads from the sensors to the ADS be ? The longest may be 6".
    2) Are there any wiring I should NOT route them near (power, SATA power, SATA data, USB cables) ?
    3) Where would it be best to make the physical connection to the drives (metal case, drive motor covering, one of the drive ICs) ? Can I just hot glue (top, not bottom of sensor to drive) that point ? Should I put thermal paste between the sensor and the drive ?
I'm thinking I will look at the specs of the drives and set two thresholds at say 50% of max temp and then do a self shutdown at 90% of max temp.

I have 40 years of computer and electronics experience (spent 5 years at Cal Poly Pomona in California).

The current prototype is using PI 4 and USB3 drive cables (8" long) to the drives. The next project will be using the X828 cages in a larger case design.
Thanks.

Tom

Would anyone be interested in looking at my 3D models and commenting on them ?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Measuring Hard Drive running temperature

Post by adafruit_support_bill »

0) Should I measure in more than one point on each drive >
The (impractical but) ideal location would be internally close to the primary heat sources. Next would probably be the aluminum chassis - since that is likely to also be the primary heat-sink for those sources. There will be some temperature gradient between the source of the heat and the point where you measure it. If you have access to a thermal camera it would show you where the hot spots are.
1) How short should the leads from the sensors to the ADS be ? The longest may be 6".
2) Are there any wiring I should NOT route them near (power, SATA power, SATA data, USB cables) ?
6" should not be a problem with good cabling. Shielded or twisted pair will help reject any EMI. SATA and USB cables are probably already shielded, but it is still a good idea to keep your distance from other wiring in general. Don't bundle them together. If they need to cross, do it as close to a right angle as possible to minimize nose coupling.
3) Where would it be best to make the physical connection to the drives (metal case, drive motor covering, one of the drive ICs) ? Can I just hot glue (top, not bottom of sensor to drive) that point ? Should I put thermal paste between the sensor and the drive ?
My guess is that the manufacturer is using the aluminum chassis as the primary means to conduct heat from the core of the drive. But there may be other localized hot-spots on the surface. As mentioned above, a thermal camera is probably the simplest way to locate those.

Thermal tape or thermal adhesive is probably the simplest way to mount the sensors. https://www.adafruit.com/product/1467

User avatar
gtoal
 
Posts: 7
Joined: Thu Jun 13, 2019 8:56 pm

Re: Measuring Hard Drive running temperature

Post by gtoal »

tommynar wrote:I'm building a Raspberry Pi NAS box. I will have 2 2.5" 4Tb drives in a 3D printed case. I have some fans running through it, but the drives do not self report their temperatures. The intention is to monitor overheating and sound an alarm, much like the big guys (Dell, HP) do on their servers.
I ran a pi with a WD PiDrive outdoors in the South Texas heat for the best part of a year and monitored the enclosure (strapped to a beehive) with a sensor like yours, but to monitor the drive itself I located the hottest part with a cellphone FLIR camera and attached a DS18B20 probe to it - allows for a much longer cable (and multiple probes as we had two more inside the beehive itself). Btw the WD drive handled the heat and humidity pretty well. It's now in my home but still working well. I think at the worst of summer we got up to something like 130F, but that's from memory, I wouldn't swear to it in court.

G

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

Thank you for the response. Tells me what I should look for.

Buyer Beware: I purchased an Amazon Refurbished WD drive. It arrived today (2 days from order placed) and it is DOA. What's the old term for the "continuous clicking failure" ? I forget.

I'll go to MicroCenter tomorrow and buy one that works.

Tom

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

Well, I'm confused. I'm trying to read the LM35 to obtain temperature, but the voltages coming back from the ADS1115 are not as expected. Please see the following: 1) hardware setup, 2) Python code & 3) results of reading. I hope this formats OK. I removed all comments and blank lines from the PY to make it easier to read. When the console is showing the progress, I put comments in square brackets. I held the sensor between my fingers-and the values go DOWN, when I let go, they go UP ??? I put 3.3V on ADS channel 0 as a comparison, and it appropriately shows 3.3V.

Circuit:
Raspberry PI 3b+ running Raspian
ADS3115 connected to 3.3V and I2C signals
LM35 connected to +1 and ADS port 1

[Python code being executed (under Python3)]

import time
import board
import busio
i2c = busio.I2C(board.SCL, board.SDA)
import adafruit_ads1x15.ads1115 as ADS
print('Reading ADS1x15 values, press Ctrl-C to quit...')
from adafruit_ads1x15.analog_in import AnalogIn
ads = ADS.ADS1115(i2c)
while True:
chan = AnalogIn(ads, ADS.P0)
Temp1C = (chan.voltage+0.5)*100
Temp1F=(Temp1C*1.8)+32
print("P0:Analog: (raw){:0.3f} (voltage){:0.3f}, C {:0.1f}, F {:0.1f}".format(chan.value,chan.voltage,Temp1C,Temp1F))
chan = AnalogIn(ads, ADS.P1)
Temp1C = (chan.voltage+0.5)*100
Temp1F=(Temp1C*1.8)+32
print(" P1:Analog: (raw){:0.3f} (voltage){:0.3f}, C {:0.1f}, F {:0.1f}\n".format(chan.value,chan.voltage,Temp1C,Temp1F))
time.sleep(5.0)


[while holding LM35 between my fingers]
P0:Analog: (raw)26239.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)3141.000 (voltage)0.371, C 87.6, F 189.6

P0:Analog: (raw)26237.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)2984.000 (voltage)0.373, C 89.1, F 192.3

P0:Analog: (raw)26240.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)2999.000 (voltage)0.378, C 87.2, F 188.9


P0:Analog: (raw)26237.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)3112.000 (voltage)0.383, C 88.4, F 191.1

P0:Analog: (raw)26238.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)3090.000 (voltage)0.386, C 88.2, F 190.8

P0:Analog: (raw)26239.000 (voltage)3.280, C 378.0, F 712.4
P1:Analog: (raw)3125.000 (voltage)0.391, C 88.7, F 191.7

[???Values went UP when temperature should have gone DOWN]
^CTraceback (most recent call last):
File "drivetemp.py", line 29, in <module>

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Measuring Hard Drive running temperature

Post by adafruit_support_bill »

What voltage do you measure from the LM35 with a multimeter? If you post some photos showing how you have everything connected, we can take a look.

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

When I measure the sensor, the voltage does not register any voltage (says 0). While the Pi reports the ASC measures <.047. When I connect the DMM, that measurement drops significantly (< .01). So I think my DMM is putting too much of a load.

I attached photos of the circuit, including a post-it-note schematic (sorry if its' hard to read). The proto board I am using is also setup with the SDA/SCL to a connector for my OLED display, so the SDA/SCL signals are daisy-chained from there to the ADS.

Thanks for looking at this...

Tom
Attachments
The blue wire on the connector for A1 goes to the left lead of the LM34, as shown in the schematic (top view of to-92). The ADS is not plugged into socket so that the wires on that side can be seen (+3.3, Gnd, SDA, SCL).
The blue wire on the connector for A1 goes to the left lead of the LM34, as shown in the schematic (top view of to-92). The ADS is not plugged into socket so that the wires on that side can be seen (+3.3, Gnd, SDA, SCL).
20200810_180029.jpg (228.91 KiB) Viewed 58 times
The 3 pin connectors on upper left are connected to +3.3, GND and A0/A!. (white wires)  I c oonnected A0 to 3.3, which gives the results above.
The 3 pin connectors on upper left are connected to +3.3, GND and A0/A!. (white wires) I c oonnected A0 to 3.3, which gives the results above.
20200810_180020.jpg (248.4 KiB) Viewed 58 times
20200810_175955.jpg
20200810_175955.jpg (87.71 KiB) Viewed 58 times

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Measuring Hard Drive running temperature

Post by adafruit_support_bill »

When I measure the sensor, the voltage does not register any voltage (says 0).
Are you measuring with the sensor in the circuit?

With everything connected and powered up, measure the voltage between GND and A0 on the ADS1115.

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

Yes, tapping off A1 of the ADS while LM35 in circuit. A0 has the 3.3 V on it (and it shows 3.27V on the DMM).

I will try reading the LM35, not connected in the circuit.

I ordered some LM36's (or are they LM38's) from Adafruit and will try them in this same circuit, just in case CN didn't send me very good product (I bought 2 different batches from 2 different vendors).

I also ordered a BME280 from Adafruit, just to see the difference. Wiring will be a little more difficult (2 hard drives are stacked above each other).

Tom

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

I was able to get two BME280's to work, using 0x76 & 0x77 I2C addresses. It will take 4 wires now, but I have an idea to use 5 so I pass the address lead (S0?) at either ground or 3.3 to tell the sensor which to be. I bought some thermal tape to attach them to the drives.

I wish I could have gotten the ADS1115 to work with the LM devices, but I will wait till I get the Adafruit LM's to persue that direction.

Thanks for your help.

Tom

User avatar
tommynar
 
Posts: 29
Joined: Sat Jan 19, 2019 1:22 am

Re: Measuring Hard Drive running temperature

Post by tommynar »

I finished putting the drive array together (will post pics & stuff if people want). Putting a 40MM fan on the rear of the case (air flow OUT) over the drives brought the "running open case" temperatures of 85 & 92F, to "closed case with fan" to 79 & 80 F. That's quite a drop in temperature.

One problem though, the 3.3V regulator on the PI 4 won't drive an OLED and two BMP280's. I received timeout errors talking to the OLED in the I2C bus. So I added a 3.3V 1A regulator to the prototype board sending power to the 3 devices. My whole case is powered by a buck converter, I just couldn't get simple regulators/5V bricks to work reliably (probably heat!). I've got a circuit so I can measure total current, under 2 Amps for the PI 4, 1.3" OLED, 2*BMP280, 2*WD 2.5" 4Tb (shows as 3.7Tib under Linux) drives.

The AMP measuring board is really easy: Male 5.5/2.5 power connector, ground to 5.5/2.5 female connector, 2 pin 2.54" male pins between +12 supply and +12 provider. Leave a jumper on pins for normal use, pull it off and connector your DMM in the circuit to measure your current (start with 10 AMP test so you don't blow out your meter).

>>---GND-------------<<
>>--+5--o o-----------<<
^^^ jumper here or DMM leads

Tom

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Measuring Hard Drive running temperature

Post by adafruit_support_bill »

Good to hear that is working for you. Thanks for the update.

Locked
Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/

Return to “Adafruit Raspberry Pi® accessories”