Today is going to be a strange one — something I didn’t know the innards of before I took it apart. This is a shared learning exercise I suppose.

This Carbon Monoxide (CO) detector has been replaced since it started to show an error on the display. Having something that doesn’t detect CO any more makes it a waste of an outlet. I kept it around so I could take it about and see what makes it tick.

The innards seem simple enough. There’s the display in the middle on a pedestal. A bunch of discrete elements are sitting around the display, no doubt part of the LED driver circuit. The interesting thing is the tube on the main board and the think attached to the front cover.

One of these is the alarm, one of these is the buzzer. I’ll get to that later.

The rest of the board is pretty vanilla:

The two big ICs are PIC microcontrollers. A PIC16CR54C-04/P108 is next to the LED and a PIC16CE625-04/P sits on the upper right (this one had a sticker that I carefully removed). Neither of these are powerhouses of processors. They both run with 20MHz clocks. The PIC16CE625 has 3.5K of memory and 128 bytes of EEPROM on board that presumably holds the history and calibration of the device. The PIC16CR54C has 512 words (12 bit not 8 bit words oddly) of ROM and 25 bytes (!) of RAM. It has 12 IO pins which make it ideal to run the display.

The power supply on the lower right is a transformer to take the live voltage (120V nominal) and step that down to something in the 12V range. From there there are a couple of diodes and a capacitor it make a lumpy DC and a 5V voltage regulator 7805 is a very normal and common 5V supply.

I first started taking apart the metal tube thing:

(Low budget teardown — I just pried it off of the board)

Cutting off the white heat-shrink left me with a nondescript tube and some desiccant. This got me really curious. This is branded KIDDE which is the parent company for Nighthawk which made the detector. Could this be the detector itself?

Let’s see what’s inside, shall we?

We see a sudden and curious transition to what seems like a sink. This is because as I was taking it apart I noticed that my fingers were starting to get wet (!). This is a problem because one type of CO detector runs with sulphuric acid. Ummm…

Inside the tube, once empty of whatever liquid was nothing at all. One contact was connected to the shell, and the other was attached to what looks like a carbon disk attached to an insulator. Odd. It has nothing to indicate what this thing can do.

Shifting back to the thing in front:

After prying the black cover off I found this. The main chip on there is a HCF4049UBE which is nothing but an inverting hex buffer (6 NOT gates). This while assembly is connected to the main board with only two wires. Odd — very odd. My first guess at this was this was the buzzer.

This even looked vaguely piezo-electric as well.

Looking up the datasheet on the EFM-290ED confirmed the status of this as the buzzer.

If this is the buzzer, the metal tube has to be sensor. Looking up the wikipedia article on the subject leads me to think this is an electrochemical fuel cell that senses the presence of CO. I’m still curious how this works since it seems to be completely sealed. Googling on the part number from KIDDE didn’t lead to any hits either so it’s probably a proprietary part.

I do know that there’s an op-amp sitting between the sensor and the bigger processor. That 8-pin chip is a MCP608 op-amp. The data sheet claims this is a fairly high-precision part which would make it a good fit for something like a sensor.

In many ways this really leads me to more questions… the hows and whys of this thing. Some parts I understand like the driver for the buzzer, power supply and display. The sensor on the other hand… More research will be needed.

Next time I’ll try to reverse engineer the sensor block of the device and report back how this thing (might) work.

[smugmug url=”http://photos.vec.com/hack/feed.mg?Type=gallery&Data=19703795_7VXzs7&format=rss200″ imagecount=”100″ start=”1″ num=”100″ thumbsize=”Th” link=”lightbox” captions=”false” sort=”false” window=”true” smugmug=”true” size=”L”]