I had a need to find a few outputs that I did not have on my Ademco Vista 20P. I needed to trigger some logic outputs when the system was armed away and also when my garage doors are closed. The triggers are for my home automation system, an Arduino.
Of course you can add more relay outputs with more hardware, but for a number of reasons (not wanting to wait for them, added cost, added power draw), I decided to see if I could find them in my 4219.
If you look at the Ademco 4219 vs 4229, you have the same PCB, but the 4229 has 2 relays. It is not uncommon for manufacturers to delete parts or cripple functionality to maintain fewer unique parts. So I decided to investigate if the 4219 could be upgraded to a 4229.
I have a few older 4219 units, these are all thru-hole PCBAs and have copper traces only on the bottom. The top of the board is tan. The current units they are shipping (not discussed here) have green solder mask on top & bottom of the PCB as well as surface mount parts.
This is the Ademco 4219 Wired Zone Expander, notice the empty area on the right side.
This is the Ademco 4229 Wired Zone Expander Relay Board. This board has a few differences
- Adds 2 relays
- Adds 2 resistors for each relay
- Adds 1 zener diode for each relay (acfross coil)
- Adds 2 TO-92 devices for each relay
- Adds a jumper near 28 pin microcontroller
You can tell the PCB is identical, with the exception of missing parts and different ink stamp of the part number.
One key assumption is that the firmware is identical, because that is how I would do it. So I started on the path of mapping out the pins on the microcontroller, which is the 28pin chip on the center of the board. I was able to find out which 2 pins would drive the relay.
So I took a photo of the PCB front and back, mirrored the front image so they line up and proceeded to guess at what the components were while I traced the connections with a multimeter and looked at the photo of the 4229 above.
I quickly found that the relays were driven from pins 19 & 21 of the microcontroller and they went thru a couple of TO-92 devices, likely a pair of transistors to drive the relay coil to ground. See my notes above.
But, I wasn’t done there, I noticed a missing jumper on the board above the microcontroller. I pinned that to be a simple 0 ohm jumper to ground on pin 2 of the microcontroller. On my 4219, pin 2 is floating. So I assumed this jumper needed to be installed to identify the PCBA as a 4219.
So I proceeded to add the jumper and a small screw terminal (0.1″ spacing) on the 2 pins for the relay.
So after a bit of programming of the Vista *79 & *80, I got it to work. When I actuate the relays on this board, I get 5V on the pin. When it is inactive, I get 0V. My home automation controller device has a 5V logic level input, so now it knows when the alarm is armed away.
Things to be careful about
- Whatever you connect these outputs on this panel to should be on the same 12V power supply, and on the same 0V GROUND.
- These are logic level outputs, so do not attempt to sink any current or drive any devices, not even an LED. Only connect to high impedance inputs, if you don’t know what that means, you should not do this. There are no specs for this chip that I found, so assume it can only sink/drive 1mA and you should be fine.
- You are likely violating any approved use of this board, do not do this for any critical alarm functions or in any life safety applications. I use this expansion board for home automation use, not for any security.
To go further, I could proceed to identify the part numbers used for the transistors and actually add the relays and the circuit components to drive it to fully transform my 4219 into a 4229. I might do this one day, but for now I’m good with the outputs I have.
Because of this hack, my SmartThings home automation system now knows when my alarm is armed away and if any of my garage doors are open.