Diagnosis in a Complex World

Submitted by WardCunningham on Sat, 2012-01-21 20:45

After two years of service my outdoor air temperature sensor blinked out last week. Moisture was the culprit as shown here:


Various readouts in my SensorServer system lead me straight to the problem through a half-dozen layers of software. How cool is that?

Honestly, I'm more interested in how we know and trust complex measurements than knowing the temperature outside.

My SensorServer software worked so well that I prepared a Keynote presentation explaining each diagnostic step along the way. I meant to post it here, but damn, low battery led Keynote to throw away my presentation. That makes Apple the weak link, no?

I see a lot of broken systems in our future. A robust world will depend more on diagnosis and recovery than on the out-of-the-box usability that has made Apple famous.

Sun, 2012-01-22 01:45    [Permalink]


I recently bought a 4-foot length of two layer heat shrink. It reportedly has an interior melt layer that forms a liquid tight seal. I haven't tried it yet, but outdoor DS18S20's and the like were the reason I got it. Small pieces available for loan ;-)

I have an outdoor DS18S20 on the Orbduino that's been there for 1.5 years now with no signs of wear, it has (single layer) heat shrink protecting it. Of course, the hs will slow down the reaction time slightly, but for outdoor temps, that should be fine.

Besides heat shrink tubing (a fast and easy option), another option is [http://en.wikipedia.org/wiki/Potting_%28electronics%29 potting] the sensor in an encapsulant. For this application, I think regular one-part silicone RTV or caulk could be used, or standard epoxy. Ideally, [http://www.dowcorning.com/content/etronics/etronics_enc_si2.asp?DCWS=el… a proper electronics potting compound] would be used.

I am working with a system using the Dallas 1 wire sensors in a refrigeration unit. Humidity regularly takes them out. The first batch was encapsulated in an epoxy and suffered a high failure rate. This was compensated for this by using multiple sensors and better sealing. The other problem with the 1 wires came to light when one failure would take the bus down with it. The current redesign uses an 8 port i2c to 1 wire converter the DS2482-800 which isolates them and lets the arduino hardware do more of the work.

The data sheet for the device at http://datasheets.maxim-ic.com/en/ds/DS2482-800.pdf There is also an arduino library for the ds2482 at https://github.com/paeaetech/paeae.

I am pleased that not only does it bus isolation and the ability to detect shorts, but it also cuts out bitbanging the bus in software. I was especially happy to be able to initiate the readings in parallel and read them back later in relatively clean way. The sample code for the Arduino Library has been mangled (by html filtering), and is unusable. So I have attached one that works and also reads the temp sensors here (http://dorkbotpdx.org/files/ds2482.tgz)

Sat, 2012-02-04 22:14    [Permalink]


Thank you Russell for the sample of two-layer heat shrink. That is the long-term solution. I've stowed it in close proximity to the reinstalled sensor because the reinstallation is only slightly better than the original. I had heat shrink around my original installation with a good seal around the device. The moisture apparently found its way along the three runs of #22 hookup wire I used to extend the package leads. My reinstallation doubled the length of heat shrink from 1-1/2 inches to 3 inches hoping to slow moisture diffusion. I added to that a few inches of Scotch 33 electrical tape and made sure that the 1/2 inch pipe that holds the sensor away from my house was at a down slope so that the wad of compromise was out of direct weather. I thought it ironic that my sensor went out within a week of hearing about Don's trouble with moisture. Like Don, I run several separate 1-wire busses. I expose this fact in the lower levels of my JSON signaling, a choice that simplified my failure diagnosis.