Announcing the "ST_Anything" Arduino/ThingShield Project


We need some more information… Most likely, you will need to tie the GND on the Arduino to the GND on the existing security panel. This will then allow both systems to have a common reference voltage. Again, please be sure the voltages are both 5V DC TTL level before connecting the two systems together. If the old alarm is running at 12V or 24V DC (or AC!!!) then you’re going to need to build a circuit similar to what Ken Washington showed earlier.

When you say you’re measuring +5v and +2.5v, we need to know exactly where you have you voltmeter leads attached. Is this completely at the old alarm panel? Or are you measuring voltages at the Arduino?

NOTE: Do NOT connect both the Arduino +5V and GND to the old Alarm Panel. You should only connect the GND on both systems together. If you were to connect both +5V and GND between both systems, you will start flowing current between the two power supplies, as there is no way both systems are at the exact same voltage. (If the old security system does have a decent +5VDC power source, you could actually use it to power the Arduino. In that case, you would remove the dedicated Arduino power supply altogether.)


The 5v and 2.5v are when the leads are in contact with either of the two wires from the sensor in the existing security panel. One of the wires goes into a numbered port and the other goes into a “COM” port that is tied to all the other “COM” ports.

I haven’t measured the voltage at the Arduino.

Which ground do i tie to the existing security system? Does it matter? Are we thinking the Ground for the existing system is the “COM” Port?

quick update

I connected the Adruino Ground to a ground post on the existing system. Right now its not connected to anything, but it seems to set a reference point. When I measure voltage its the same from wire to security system ground as wire to arduino ground.

Here is where its weird now. if all sensors are closed the voltage for each sensor sits around 2.1V. When one door is open it reads 4.6v while the remaining sensors read 0.6v.

When all sensors are closed smarthings goes haywire opening and closing doors at random. with one door open it stops and will (sometimes) read the correct door as open, sometimes a random door. But every other door will function perfectly as long as one other door is already open.

I have the trigger set at High, so my thought is that the system idleing at all closed 2.1-2.2v is the threshold for “High”. Is there a way to redefine “High”?

I installed the iOS app and everything works perfectly, so it appears this is an android issue.

Thanks for your assistance, looks like I am off to troll the android app portion of the forum.

Thanks again,

1 Like


There is no way to redefine the voltage level for HIGH on the Arduino. Have you tried setting your voltmeter to AC to see whether or not the old alarm panel might actually be using AC voltage instead of DC? Just something to verify.

It sound to me like you’re going to have to follow Ken’s additional circuit, or some thing simile, to get the old alarm system’s signal level shifted to the Arsuino’s TTL 5V requirements.

Without being able to see the schematic of the old alarm system, it is very hard to troubleshoot from here.


Wiring diagram you say…

It’s definitely DC,not sure what to do now

Ok, use your voltmeter on DC and measure the voltage between COM and one of the ZN terminals with the corresponding door or window sensor open and closed. Based on the wiring diagram, if the system is DC voltage based, you should see either 0 volts or some positive voltage.

Then repeat the same test with your voltmeter set to AC voltage. I am curious what these readings are. If the system is DC based, the AC readings should be ~0 VAC regardless of the door/window sensor state.

Based on the fact that the system has a 12VDC battery backup, it stands to reason that the system is probably DC based. You might even be able to power the Arduino from the 12VDC battery. Most likely the alarm panel board has an AC transformer to DC voltage rectifier circuit as well as a DC battery charging circuit.

If the system is 5VDC based, you should be able to connect the Arduino GND to the alarm panel COM. Then connect an Arduino digital input pin to a ZN terminal on the alarm panel. If the system is 12VDC based, you’re going to need to create a voltage divider circuit for each zone, or use a transistor design like @kewashi.

Between COM and ZN the VDC reads 2.5v closed and 5.2v open. VAC reads 0 across both.

I have it hooked up with the trigger set to High, but the contacts are reading Closed weather they are open or closed. I tried setting the trigger to Low but the same thing happens just reversed.

3V required to trip the trigger states and I would think that this should work.

I’m currently tying into port 22,24,26,28 and the GND at the base of the same row.


EDIT: Here’s a thought that my baboon-like-skull just had. Everything running into the COM ports has a 5600ohm resistor tied to it. (also listed on the wiring diagram) Perhaps i also need to run a 5600ohm resistor from my Arduino GND to the COM port?

OK, we’re getting somewhere… At least it seems like we are dealing with a 5VDC circuit, so that’s very good news. Can you please determine which of the 4 “Typical Zone Circuits” wiring diagrams your house is wired with?

Also, can you please disconnect one of the Zone wire pairs altogether from the alarm panel/Arduino and measure the resistance between the pair the zone wires with all doors/windows on that zone closed, as well as with one or more doors/windows on that zone open?

It almost seems like there must be another resistor somewhere in the circuit. for the voltage to be cut in half when all sensors on a zone are closed.

I believe its the “normally closed contact with EOL resistor”

I removed a wire pair.

Closed it read ~5600ohm
Open I couldn’t get a reading.

Alright I’ve posted a few conflicting voltages that I blame on me cross-wiring things really weirdly. This are the current (ha) readings. All reading are from the appropriate ZN port to COM

Everything Closed - All zones read 2.5v

One Zone Open - Open zone reads 5.5v all other closed zones read 2.5v

Two Zones open - Both open zones read 5.5v all other zones read 2.5v

Thanks for holding my hand

Unless I’m missing something, all you have to do is connect your Arduino digital input directly across your switch. Be sure to get the polarity right. COM or resistor side should be tied to GND.


HOLY, COW. it works.

tied my ground in before the resistor and the system is up and running,

Now to figure out the multiplexer


1 Like

Nice team-work everybody!


Hello ogiewon,

Just wondering if you ever implemented Mysensors? Being based in the UK. I don’t have access to The Smartthings shield.

Best wishes.


No, I never did get around to incorporating MySensors. However, it would not have helped you as my original thought was to still use the ST ThingShield to do so.

Thank you.

@foggy take a look at this thread which demonstrates using an Ethernet shield to communicate with ST through the HUB. No ThingShield required.

1 Like

@ogiewon - Have you seen this? It’s interesting, though I’d love to see what people can use this for without going through the cloud. The Beta IDE might prove to be something in the future…

@Jason_Fay - This does look very intriguing. There has been some success by others in direct bi-directional Ethernet communications between an Arduino (with Ethernet Shield) and the ST Hub v2. I have even built a small proof of concept sketch based on that work and verified it for myself. I may spend some time adding Ethernet support to ST_Anything at some point in the future.

Check out this post by @Charles_Schwer
1 Like