Skip to content

Instantly share code, notes, and snippets.

@ebo
Forked from darconeous/kidde-interconnect.md
Created April 13, 2020 06:47
Show Gist options
  • Save ebo/4f1f395dd9fbdad24616e0d5676558f9 to your computer and use it in GitHub Desktop.
Save ebo/4f1f395dd9fbdad24616e0d5676558f9 to your computer and use it in GitHub Desktop.
kidde-interconnect

Original "dumb" smoke detector interconnect sounds the siren on all interconnected smoke detectors when a 9-to-12 volt (referenced to neutral/white) direct-current signal is continuously present on the signal wire (red). This still how pretty much all interconnected smoke alarms indicate a fire condition.

However, modern interconnected detectors are capable of detecting carbon monoxide and other conditions. When these conditions are signaled, they must be identified as something other than a smoke alarm by the other detectors. Ideally, any dumb smoke detectors sharing the interconnect signal should ignore these signals, even if they weren't designed with such multiplexed-signaling in mind.

Kidde came up with such a mechanism in 2000 and apparently patented it (6,791,453; Now possibly expired...?). While I think a patent on something like this is pretty silly, in this case, it is good news for us because it means we have some documentation!

Multiple types of interconnected alarms

From the abstract (emphasis mine):

Presented is a communications protocol for use by interconnected hazardous condition detectors, such as smoke and carbon monoxide detectors for use in dwellings and other structures. This communications protocol provides conventional signaling to indicate the presence of a smoke condition necessitating the generation of a smoke temporal pattern by all interconnected detectors. The protocol further defines a signaling method by which conventional smoke detectors that are incapable of providing temporal patterns other than that required for a smoke alarm condition will not be sent into an alarm mode of operation upon receipt of a signal other than the conventional smoke alarm signal. This communications protocol defines a pulsed signal to indicate a non-smoke alarm condition that is of a duration that will not trigger the conventional smoke alarms. To allow for the transmission of multiple hazardous conditions alarm notifications, as well as the transmission of additional hazardous condition detector control signals, the communications protocol utilizes a multi-bit signal transmitted via the conventional single signal I/O wire of currently existing interconnect wiring. Through the use of an 8 bit alarm signal, multiple hazardous conditions may be signaled as well as operating modes such as test, hush, reset, low battery, etc. Also presented are smoke, carbon monoxide, and combination hazardous condition detectors that utilize the communications protocol presented herein.

So their protocol has two big features:

  1. Allows an 8-bit alarm-type indication to be expressed on the signal wire. This enables supporting interconnected devices to be able to detect such conditions as being distinct from a smoke alarm.
  2. Such non-smoke alarm indications are structured in such a way as to not cause dumb interconnected smoke alarms to sound when a non-smoke-alarm signal is expressed on the signal wire.

Unfortunately the patent does not include a table of codes and their associated meanings, other than 10100101 meaning a carbon-monoxide alarm. However, it does cover the basic theory of operation and protocol encoding. The information in the patent seems to cover more than enough to allow the sufficiently-motivated to reverse engineer any undocumented details.


Ideally we would have a device that would have the following connections:

  1. Interconnect Signal (RED)
  2. Interconnect Neutral (WHITE)
  3. Interconnect Hot (BLACK)
  4. Power: 0v DC (Ground)
  5. Power: 9v-14v DC (Power)
  6. Input: Trigger Smoke Siren (Active Low, high-z input)
  7. Output: Smoke/Fire Alarm (Open-Drain, Active Low, 20mA max)
  8. Output: Carbon Monoxide Alarm (Open-Drain, Active Low, 20mA max)
  9. Output: Trouble (Open-Drain, OK:Low, Trouble:Float, 20mA max)

Ultimately we have two zones: The hot zone and the safe zone.

Hot Zone

In the hot zone, we would have connections for the black, white, and red lines for the smoke alarms, as well as a small power supply using passive components that gives us 9v and 5v. We use the 5v output to power an ATTiny, which monitors the signal (RED) line. The ATTiny has three pins that it uses to drive optoisolators.

A lot less stuff needs to be on the hot zone side, largely because we need this thing to work properly when the power is out. That means the only power we can depend on is the 12v input. We will need to have some sort of isolated 9-12v to 9v power supply for signaling. If we are going to do that, we might as well have an op-amp input for the red wire, so that we can be high-z (safer).

Safe Zone

In the safe zone, we have connections for a power supply input (9v-12v), as well as connections for three outputs and an input, which are connected to the optoisolators.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment