Much like this question, I am trying to interface a Raspberry Pi 3 Model B to an alarm system, but this time is is a GE NetworX NX-8V2. I have snooped on the control box with a voltmeter and it looks like when a sensor is tripped (i.e. a door is open, a motion detector detects motion) the corresponding pin goes from 0V to about 0.3V. What I would like to do is monitor the pins with my RPi, so I figure that the input voltages to the RPi will need to range from 0V to 3.3V in order to work with the GPIO pins.

However, I have a problem.

My idea is to use an op amp (I have a couple of LM2902N's lying around) to multiply the voltage. Using the op amp as a non-inverting amplifier, and choosing my resistors as shown in the schematic below, I should see a gain of 11, which should give Output = V0 * 11. When I simulate the circuit, it works exactly as I intend. However, when I implement the circuit on a breadboard the output stays at a constant 3.9V, regardless of if I implement the circuit as designed or disconnect the V0 input. (Another data point: when I tested with V1 set to 3.3V but everything else the same, the Output stayed at a constant 2.1V)


simulate this circuit – Schematic created using CircuitLab

Any ideas on why my circuit is behaving like this? (Or if you have another way of solving the problem, that would help too. Another idea I've considered is to implement a voltage comparator with Vref at 0.15V)


1 Answer 1


I don't have one of those alarm systems. However...

I have snooped on the control box with a voltmeter and it looks like when a sensor is tripped (i.e. a door is open, a motion detector detects motion) the corresponding pin goes from 0V to about 0.3V.

IMHO it is very unlikely that this is the full or the correct story, as there are much better options for a signal which must travel, reliably, perhaps over long wires, back to the control panel.

A door being open vs. closed is a binary state. If 0V = "door closed", there is no advantage to them choosing such a small change of 0.3V to represent "door open", when a higher voltage (with its greater noise immunity) could be chosen instead.

It is much more likely that there is a digital signal i.e. a set of pulses between 0V and some higher voltage (3.3V? 5V? 12V?) on that wire, not just an analog change between 0V and 0.3V (or perhaps it's an RS-485 or similar interface using 2 wires, and it's really a differential, rather than single-ended, signal). Unfortunately a voltmeter is the wrong tool to find out what is happening. It simply cannot respond quickly enough to fast digital signals and will show a low "average" voltage as a result, hence the low 0.3V that you see.

You need to use an oscilloscope (and, perhaps, differential probes or an isolated 'scope, in case alarm control box "Gnd" is not the same as "mains earth") to properly reverse-engineer what is happening on that wire. Also, if the sensor state is passed as a set of digital pulses, then depending on what you find, it may be non-trivial to interpret / decode that information. Proprietary codes and encryption would not be a surprise.

Summary: I strongly suspect that in reality, the signal from the sensor is not simply changing from 0V to 0.3V when the sensor changes state, as you're being misled by the limitations of using a voltmeter. Therefore, unfortunately, your plan to use an op-amp to amplify that signal will fail, due to the initial misunderstanding of that signal. :-( Use a 'scope instead of a voltmeter, to better understand what is going on.

A quick search suggests that some people use alarm panel "serial out" ports (where fitted) on similar, but not identical control panels e.g. GE NX-8E, to connect to things like a Raspberry Pi. If your panel has a serial port and if you're interested in that approach, then this could be something for you to investigate further.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.