Introduction: Modify a 6 EUR Smoke Detector for Use With Microcontroller, Auto-dialer, Linking, and More

In any home or business, smoke detectors and central fire systems can be essential to saving life and property.  But what about when no one's there?  Large businesses can afford monitored systems with sprinklers, but home GSM-enabled smoke detectors can cost more than €160.  How about linking home smoke detectors together, or connecting a few to a micro-controller?

In this instructable I've modified an inexpensive, optical smoke detector for output to an Arduino to use as an auto-dialer (that is, when the detector goes off, a GSM module or phone line can call out to a programmed number or 112 emergency services*).  Since my PBX is in disrepair, I'll be using email instead.  I will be using this in a future home security system project.

*Note: While most countries (US included) allow automated calls to emergency services from auto-dialers such as these, the rules for using such techniques may vary in local municipalities.  Most countries also have laws which prevent custom telephone hardware to land-line systems.  Check with local law before connecting a custom system.

Step 1: Smoke Detectors - Background

Before we begin we should know a little about the types of smoke detectors available and how they work.
The one this instructable uses is optical.  When smoke enters the optical chamber (1), particles scatter light from the LED (5) onto the photodiode (4).  If a comparator determines the level of light at the photodiode is above a threshold, the alarm sounds.  While optical detectors are generally more expensive to manufacture, their cost has decreased and they have become increasingly common in many homes.  Most addressable detectors are photoelectric.

The second common type is Ionization detectors.  These units use a sample of radiative Americium-241 with an ionization chamber to detect the presence of smoke.  While these detectors are better for detecting a finer particulate smoke than optical detectors, they are more prone to false alarms.

Read more about detectors here:

Step 2: Tools and Materials

For this project you will need
- An optical smoke detector
- Small or medium gauge wire

for digital micro controller, loads of more that 100µA:
- 220Ω resistor.
- NPN transistor or MOSFET., relay with diode protection, etc.

and the following tools:
- Soldering iron and fine solder
- Screwdriver
- Pliers, wire cutters, snips
- Hot melt glue

Step 3: Disassembly

Begin by removing the plastic cover for the smoke detector.  Most are made without screws anymore and are held together by plastic tabs.  I used a flat head screw driver and pliers to pinch the three plastic tabs in and remove the cover.

After the cover has been removed, the circuit board should likewise be removed from the plastic base.  A few blobs of hot glue held the battery leads to the case, which were removed with pliers.

Step 4: Datasheet for the Control IC

Now that you've gotten the detector apart, inspect the board for any silkscreen points relating to I/O or AUX.  The bare side of the board showed such a pin, and upon further inspection it is shown to be disconnected by a missing R-16.  Sounds promising... surely it can't be this easy!  You'll want to find the datasheet for the control IC.  The particular chip this one uses is a CS2105GO-M12 (datasheet).

The I/O pin for this particular chip is #7, and sure enough, the datasheet detailed an alarm signal input/output pin designed to connect external units, emergency lights, and auto-dialers.  Perfect!

I found that all of the following chips have I/O on pin 7 (actually the exact same pinout!) so they should all work:
- BL59A10/BL59S10
- M75010/M75012
- A5358CA
- RE46C141/RE46C143
- MC146010/MC146012 series

The CS235 has an output latch on pin 3 (Vcc) which can source 100mA, but has no compensation for capacitance along long wires.  If you use this chip you MUST use a transistor buffer, MOSFET, or signal level converter.

If your chip does not have a latch or I/O pin, you'll either need to try a different model detector or experiment with wiring the base of a transistor to the detector's piezo output.

Note that I/O is sometimes referred to as "interconnect" in some datasheets.

Unfortunately, most of the datasheets I've seen for ionizing detectors do not have an I/O line or similar feature, however, if the 2/3 duty cycle horn signal is selected, a simple R/C circuit or some clever programming should be able to smooth the output into a usable high/low signal.

Update:  the A5350/A53560 series has I/O on pin 2.  The datasheet claims that interconnect is possible with up to 125 units.

Step 5: Modification

To limit current to and from the device, we'll need to add a series 220Ω resistor.  This can be added to the board or to external equipment, if you plan on linking all detectors together each device must have this resistor.  I opted to keep this external.

I had to pop off the pezio to solder the wires, and simply bridged R16's gap with solder.  Don't forget to add a wire for negative supply for common.

Step 6: Reassembly

To run the extra signal and ground wire, I cut a small square notch from the lip of the base plastic piece and secured it with hot melt glue, after zip-tying the two wires together.  Hot glue was reapplied to secure the battery clip.

And that's it!  You now have a battery powered smoke sensor for your next home automation, science project, or DIY security system!


Wanarnold made it!(author)2015-08-24

This is fun but you should have a proper smoke alarm for your house. And you should check it regularly

kulverstukas made it!(author)2015-01-03

I suppose you can make this detector become like a switch, to turn on something while it is detecting smoke. I'd like to make it turn on a fan while there is smoke in the room.

akeke%C4%8Dev made it!(author)2013-09-15

redxine hello, I'm still green in the RPI. Could you please send me the scripts and instructions on how to get into the lives of the smoke sensor BL59S10.

Thank you.

arduinosweden made it!(author)2012-09-10

Hi! Interesting article. There is a similar article at that might be of interest.

owendaniel made it!(author)2012-07-12

Great work!

What do you think about using the wiring to the piezo speaker as the I/O to a microcontroller?


redxine made it!(author)2012-07-13

Update: The datasheet says there's a sawtooth output on pin 12 of the chip. The output rating for the piezo is 16mA, 6.5V, with a period of 9.5 ms makes the frequency ~105 Hz, so a proper filter capacitor would be:

C = I/(2F*V).
C = 0.016 mA / (2 * 105Hz * 0.5V)
C = 0.0152 Farads

double check my maths though.

redxine made it!(author)2012-07-13

I haven't tested it yet, however since the pezio has to be driven that means the alarm output on the detector is putting out a 20-ish KHz sine wave, so it should just be a matter of wiring in a capacitor or diode to rectify the signal. I'd check the output on a meter or scope if possible before piping it into a micro though. I'd do it myself but I'm travelling and my workbench is packed away.


unclebuckbike made it!(author)2012-03-08

In am wondering if it is possible to wire a standard smoke alarm to a speaker/buzzer of a lower frequency. It is typical for people loosing their hearing to loose the high frequency first. For instance I cannot hear anything above 3000hz and very poor below that. If I could have a smoke detector below 2000hz I might hear it. As it is I can stand right under a ringing smoke alarm that is driving everyone else nuts and I don't hear it at all. The manufacturers make hearing impaired smoke detectors that are louder...blink a light or talk to you. but this is not going to wake me up if it goes at night. Can you provide any insight into this?
Thanks in advance.

redxine made it!(author)2012-03-09

Absolutely! It is simply a matter of modifying a detector with any of the chips listed in step 4 as per above and connecting the buzzer. However, since lower frequency buzzers will more than likely draw more than 100 mA, you may need a transistor or FET to switch the buzzer. I've attached a schematic for simple switching with a transistor or relay below. Be sure that the working voltage for the buzzer is close to 9V, otherwise an additional battery or external supply will be needed.

I will be adding this and more to a going farther step later, in addition to what to do for detector chips without an I/O pin (as soon as I find one!). I have only tested what's here with optical detectors, as they have become much cheaper and much more common here in Europe.

I hope this helps.
Edit:  didn't realize how instructables would resize the image.  Schematic is here:

About This Instructable




More by redxine:Modify a 6 EUR smoke detector for use with microcontroller, auto-dialer, linking, and more
Add instructable to: