House Alarm Internet Dialer for Aritech With Arduino

Introduction: House Alarm Internet Dialer for Aritech With Arduino

A very common Home and business Alarm used in many Europe countries are the Aritech series of alarm panels.

These were installed up to the early 2000 in their hundreds of thousands and many still exist in houses today - they are usually re-badged by the installers but they all have an easily recognizable keypad.

They are a fine system with many features - but, as they were developed before broadband, they lack the ability to connect to the Internet.

The image on this page is an animated image of the final system - it may not animate on mobile devices. Here is link to the animation


This project is about reverse engineering the alarm panel to add this missing functionality.

It will add the following:

  • Ability to contact the panel and set/unset/view logs using any browser from anywhere eg. A Mobile Phone
  • Have the Alarm system email you if the Alarm has gone off
  • Allow you to enter engineering menus and configure the alarm panel remotely.
  • Support CD34, CD62, CD72, CD91 and CS350 which are all the major models of this series.

Total cost of all parts will be much less than $20

Notes:

All photos and screenshots are original by myself (as per Instructables guidelines) - the code and circuit design were created by myself.

Step 1: The Plan

The plan was to get the Arduino to Emulate a Keypad.

The Aritech panel would think it was a standard keypad - but it would in fact be talking to an Arduino - this Arduino has no keypad or display - it instead has a webserver with which you can connect to over the internet.

The server delivers a website which uses websockets as the communication transport to give a very responsive emulated keyboard in html. Several key presses are buffered to give a response that rivals the original keypad.

The Arduino is installed at any point on the Aritech Bus - I placed mine inside the Alarm Panel cabinet - but you could attach to the Keypad end if your Ethernet connection is closer.

It is also possible to use an Ethernet to Wifi adapter if the Alarm Panel is a distance from any Ethernet connection - a wired Ethernet cable though, is much more preferable though for reliability.

Step 2: The Parts

The required parts list is:

  1. Arduino Uno R3 (amazon link £6)
    - ie. a standard arduino - clones can be bought from $5 upwards
  2. Arduino Ethernet shield (amazon link £7)
    - Another standard Arduino part - Amazon sell them for aprox $10 upwards
  3. DC-DC power supply (link or link) about $4
    Used to convert the Panels 12Volts to a stable 5Volts

The following are optional depending on which circuit you build

  1. Two Transistors BC109 (or any similar general purpose NPN transistors such as 2N2222 or 2N2369)
  2. Resistors as specified in the schematic
  3. Diode
    Any Diode (eg. IN4002 )
  4. Mini breadboard

You will also need the Engineer (Admin) Password for your Aritech Alarm.
If you don't have the password one option to consider would be to default the panel to factory settings and reconfigure it.

Powering the Arduino

The DC-DC power supply is the most critical component to get correct - don't be tempted to use cheap car 12V to 5V usb Adapters - the voltage of the cheaper adapters I tested contain a ripple voltage that can cause the Arduino to crash randomly.

I don't recommend using the Arduinos built in 9V socket when using the Ethernet adapter or using the Alarm Panels 5V power supply to power the Arduino - things will get hot! The DC-DC adapter specified above is very efficient and provides a very stable 5V without heating up - I apply this 5V to the 5V pin of the Arduino.

If you decide to power from a mains powered usb adapter (eg. phone adapter) and not the module above - you will need make sure this adapters output GND is connected to any of the Alarm Panels ground; as everything needs to share the same GND.

Breadboard Choice

I used a small mini-breadboard to prototype the system.

If you make it neat the breadboard is good enough to use as a solution - but after you are sure everything is working you may like to make up a soldered version using, for example, the small prototype shield shown in the last photo.

Step 3: The Build (breadboard Version)

Here are the two options to choose from.

1) Direct to panel.
This is the easiest method. Its very efficient and reliable. The only downsides are - it requires soldering 2 wires to the Aritech main board and some may not like soldering direct to the panel. Also, the two wires from the Arduino to the panel for this option should be fairly short (about 30 cm max is about right) so the Arduino will need be in or near the Alarm cabinet. This option is detailed on the next (optional) step.

-or-

2) Custom Arduino to Aritech Circuit

This involves creating a custom interface board to make the Arduinos outputs capable of connecting to the Aritechs 12v keypad bus. The circuitry is designed especially so that it will not interfere with any other keypads on the bus. It requires 2 transistors and a few supporting components. The wires can be as long as you like.

The circuit shown above is the interface required for the Arduino to connect to the 4 wire bus.

A photo is shown of the breadboard (second photo) for an idea on how to connect up - This breadboard was used for development- please refer to the schematic (first photo) when building up your circuit board or breadboard.

The Aritech panel uses a four wire keypad bus - you can connect to any point on this bus - eg. at either the Keypad end or the Alarm Panel end.

The third photo is added just for interest and shows a circuit simulator I used when designing the circuit. The goal was to keep the parts count to a minimum; where possible the same part types and values and to make sure currents were kept low so no unnecessary heat is produced.


Ask questions if stuck and I can try help - I've tested this on the several panels I own here (I've been picking them up in boot sales when I see them) - As always with these projects I cannot be not responsible for any damage.

Step 4: The Alternative Hardware Version (easy One Diode Version)

This is an alternative to connecting to the 4 wire keypad bus. You can wire the project directly into the Aritech motherboard.

This requires having to solder two wires to the Aritech panel - but the advantage that the whole circuit now becomes just the One Diode - no transistors, resistors or breadboard necessary!

Images above show the connection points for attaching the wires.

With this method you need solder two wires to the largest chip (named 78C17) on the panel and connect them to the Arduino Pins 0 and 1 - the Pin 1 connection to the alarm panel must have a diode with the striped end(cathode) of the diode going to the Arduino - the non striped to the alarm chip.

The Pin connection depends on the alarm model - refer to the images above for the connection.

If you find it tricky to solder to the Pins (they are a little tight) solder the back of the panel or you can look along the track route to find an easier spot to solder. Shown in the third image of this step is the connection points I used for a CD72/CD62. Secure the wires using tape, hot glue or if you look carefully at my board you can see I soldered a small loop of wire to hold my cable secure.

You still need to power the Arduino using the DC-DC converter module mentioned already (set to 5v).

The Aritech Chip is 5V - same as the Arduino - so they are perfectly compatible.


Some later panels (eg. some CS350) use a surface mounted chip (the chip is very small and square). For these, the previous circuit may be best - but if you wish to try you may find it possible to solder to another place along the track leading from the microchip. If you look up the pinout of the PD78C17GF chip in its datasheet - the pin names to connect to are are "PC0/TXD" and "PC1/RXD".


Some "solder braid" may be useful to have on hand to clean up soldering mistakes if you are not used to soldering and apply too much solder.

Of course make sure everything is powered off while soldering it - for your safety as well as your alarms'.

Step 5: The Software

The code is quite complex - it was a major effort, and many tricks needed to be employed to squeeze all this code (keypad emulator, HTML webserver, HTML pages, Email client, Websocket Webserver, DES encryption and Base64 libraries) all into the tiny Arduino 32K flash and ram space.

All the code is hosted here:

https://github.com/OzmoOzmo/CastleAritechArduinoRK...

I will update the project code every while - so be sure to Fork the project so you get notifications when there is an update.

Just download all the files (important: use the download zip button rather than one file at a time).

To compile:

Place them in the same folder - and open the .ino file in Arduino IDE.

There is a config file in the project config.h - this is where you set your IP address, your email address and other options. It is well commented with all the options to choose from.

Compile and Upload to to Arduino. You will need disconnect the Arduino completely from the Alarm panel to program it- as anything connected to the Arduino RX & TX (pin 0 &1) can block the usb programming progress.
Also its best not to have the 5V power supply connected to the Arduino And the USB connected to a PC at the same time as both will be trying to power the Arduino.

Developers

Customising the software

I've found a Leonardo or Mega to be good for debugging as you get two serial ports - one for connecting to the alarm panel and one for sending debug messages back to the PC. But for normal operation - these or an UNO are perfect.
An oscilloscope & digital signal analyser were great tools to decoding the protocols used - I may document more on how I reverse engineered the protocol if anyone wishes.

Step 6: Connection and Final Notes

Installing

To install this project - you need to tell the Aritech Alarm panel there is a new keypad on the bus - Enter Engineering mode and select the option from the menus to "Install RKP" (Install Remote KeyPad).
If you have wired everything up ok you should see a new keypad being registered. The display will show a K for each keypad the Alarm sees (eg. KK*** for two keypads). Accept and exit Engineering menu.

Each physical keypad is assigned an ID (0,1,2 etc) - the code has this project set to be the Second keypad in the system - if you already have two keypads in your installation, you can change the Arduinos' place in the config file to be third or fourth.

To uninstall at any time is easy- just enter Engineering menu, remove the Arduino and run the "Install RKP" procedure again.

Handy Tip: If the Alarm Panel sees a keypad not responding it will sound the alarm - so if you you want to remove the Arduino at any stage, to work on it etc. - please enter the Engineer menus while you do so - the Alarm will Not sound when you are in Engineering Menu - your neighbours will appreciate this tip also.

To Connect to panel. Browse to the IP address: Check the config for the address setting - in this version of the software I've defaulted it to "http://192.168.1.205:8383".

It works with most modern browsers and mobile phones.

External Access:

You can make this accessible from outside the home by port forwarding on your home router and optionally using one of the free Dynamic DNS services. Just consider increasing the security below.

Network Security:
Especially if you are opening up access externally to the house- consider these tips to increase the difficulty of anyone guessing your password.
Make sure the User and Engineer(Admin)Password on the Aritech Alarm Panel are not the default passwords.
At a minimum you should enable "Code Tamper" on the alarm panel that will lock you out for a minute after 10 or so bad guesses to prevent brute force guessing of the password.
Consider having an Alarm Panel password 6 digits long (default is 4 digits long)
You could also change the Port to some random number (default is 8383).

Future Work

I also obtained a "HKC Secure Watch" Security Alarm Panel - and I have ported this project to it. I also have a more generic version with limited functionality that should work on other brands of alarms. You can find these projects on my list of Instructables.

Let me know how you get on with it :)

Full Spectrum Laser Contest 2016

Participated in the
Full Spectrum Laser Contest 2016

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

5 People Made This Project!

Recommendations

  • Backyard Contest

    Backyard Contest
  • Maps Challenge

    Maps Challenge
  • Fruit and Veggies Speed Challenge

    Fruit and Veggies Speed Challenge

42 Comments

0
ambrose.clarke
ambrose.clarke

6 months ago

Quick update - The ESP32 version of this project now supports Alexa voice commands too...

bubble.jpg
0
jk787
jk787

Question 1 year ago

Hi
Someone may be able to shed some light here. I've completed building and connecting the project. The alarm panel is seeing the arduino as an additional keypad and I can open the web page. The only issue is the web page does not show any output from the panel (box remains empty). I have tried 2 different arduinos with the same results. I have also built a temporary second unit on a breadboard and I have verified all cabling but still get the same results. Any suggestions greatly appreciated.

John

Just to add, I've been tinkering with this for a while this morning and am getting the following from the console:
(index):1 WebSocket connection to 'ws://192.168.1.199:8383/sock/' failed: Error during WebSocket handshake: Unexpected response code: 404
(anonymous) @ (index):1
ready @ m3GB3M:26
L @ m3GB3M:33
favicon.ico:1 GET http://192.168.1.199:8383/favicon.ico 404 (File Not Found)

I have changed the IP address as .205 is already in use on another piece of kit. I also seem to have an issue in that the Arduino is not appearing in my router (F2000) list of connected devices even though I can ping the 192.168.1.199 and can open a web page at that address. May not be related but just in case!

0
ambrose.clarke
ambrose.clarke

Answer 6 months ago

Please see my post above the two new ESP32 version if you want to try it - it may solve that problem for you.

0
jk787
jk787

Reply 6 months ago

Hi Ambrose

Many thanks for the response. I'll try it out and let you know how it went.

Cheers

John

0
ambrose.clarke
ambrose.clarke

6 months ago

Hi - I uploaded two versions to github if anyone would like to test...

1. Latest version for Arduino UNO
- it works well with latest Chrome Browser, Edge etc,
- Has support for using keyboard when on a pc.
- Some small fixes
- By default Email is Off - since Arduino cannot communicate with modern SMTP servers anymore since they all went SSL.

https://github.com/OzmoOzmo/CastleAritechArduinoRKP


2. A rewritten one using using an ESP32 Board (a more powerful, but cheaper device that works with the Arduino software)
This version of the code supports
  • Sending Emails via Gmail servers!
  • WiFi (not ethernet - no ethernet shield needed)
  • Better diagnostics
  • Has Favicon support
  • LCD Display

https://github.com/OzmoOzmo/CastleAritechArduinoESP32

For the ESP32 version - I tested on a "D1 R32" which looks exactly like a Arduino UNO - and a Wemos Lolin32 which is an ESP32 with built in LCD display.
I am still testing on all the panels I have - but all seems ok so far. Let me know if you anyone tries it and has any difficulty with it.


Screenshot 2021-01-24.png
0
ambrose.clarke
ambrose.clarke

Reply 6 months ago

<bumping to top of posts>

0
abbrafab
abbrafab

Question 7 months ago

Hello Ambrose,

thank you for your answers to my previous messages. I still need help. I couldn't achieve this using the FULL method. Like you adviced, I'm now trying with the soldering methods (less connections but with 2 soldering and 1 diode). I'm pretty sure I did everything like asked but... as soon as I connect the "-" of the 5V (out of the LM2596), the siren alarm turns ON and I get the following message in French on the keyboard : "Defaut alim" (which means "Power default"). If I turn my power switch ON (in other words, if I connect the "+" 5V out of the LM2596 to the Arduino 5V) as soon as I connect the "-" 5V too, the siren alarm turns ON but the Arduino turns ON too. I guess it means the connections of the Arduino are good. I don't understand. I'm lost. Any idea please of why I'm getting this message on the keyboard?

I did as many intuitive logical tests as I could do with my very little experience without getting the answer. You can find all the pictures and testing videos of my project here : https://drive.google.com/drive/folders/1iq8YJts1j...

I'm begging you. Please help

Fab

0
ambrose.clarke
ambrose.clarke

Answer 6 months ago

Please see my latest post above - hope it helps.

0
jimi100
jimi100

7 months ago

I have been using this on my cd92 pannel no problems.
But i can not get it to work on my cd95 pannel, it gives me te pannel version at start up v6.29
But in the rbd menu no keypad is found. Is there anyting in the programming i can try ??.
I am not great with arduino so any help is welkome.
i changed the layout a bit.

rkp.jpg
0
ambrose.clarke
ambrose.clarke

Reply 6 months ago

Please see my latest post above - it may help.

0
jk787
jk787

Question 1 year ago

Hi. I am approaching the software side of the Aritech internet dialler project and am wondering how to keep the arduino running while disconnecting it from the pc. Is it OK to connect panel power to the circuit after starting the code executing, but before disconnecting the USB lead? Also, in a power fail situation, if the battery runs flat, am I correct in assuming the arduino must be reconnected to a pc to kick start the process again. Regards and thanks in advance. John.

0
ambrose.clarke
ambrose.clarke

Answer 1 year ago

Hi- You can power the Arduino from the 5v and gnd pins (best option) or via the usb plug(ok) or 9v barrel jack(not good - gets hot).
The code stays in the Arduino flash memory even when power removed. Last code loaded will run again immediately power is reapplied. Once code is uploaded to it No PC is required to boot the Arduino. If you use the 14v from the panel as described above it will be powered from the alarm battery in the event of a brownout.
Great you are working on the software- remember that you only have only about 15milliseconds to reply to any of the alarm panels requests or it will give up waiting and report an rkp error - so avoid any long delays or slow libraries in any new code you write. All the best.

0
jk787
jk787

Reply 1 year ago

Many thanks for the reply.. I'm tinkering with email settings at the moment and will let you know how it goes. Really useful stuff on here. Keep it up!!

0
abbrafab
abbrafab

1 year ago

Is it right to say connecting to the GND of the Arduino / connecting to the B of the panel is the same? I guess yes but not sure.

--> In your diagram Q1 is connected through the ttransistor to the B of the panel.
--> In your new wiring example, the same transistor is connected to the GND of Arduino

GND Arduino = B panel = 0v ?

0
ambrose.clarke
ambrose.clarke

Reply 1 year ago

Thanks - Hopefully the new diagram helps - it can be breadboarded as shown or soldered following that layout to some stripboard.
and yes - all the grounds are connected together - all the black wires in the diagram - B is the panels ground. Thanks for checking it over. All the best.

0
abbrafab
abbrafab

1 year ago

Hi Ambrose.

Thanks for the adding of the full wiring picture. This is perfect. Very easy to do it now. I can't wait to get all the stuff to do it... Thanks again.

abbrafab

0
abbrafab
abbrafab

1 year ago

Hello,

Thank you Ambrose for your answer to my first post. I regret you didn't answer at the second one 13 days ago. Sorry too for my ignorance. I really do my best but I'm a newbie in electronic (but not so dumb).

I already ordered all I needed to adapt it to my CD72. Still expecting for it. For now, I'm trying to do a global diagram of all the connections and to understand it.

As you can see in attachments, there are 2 pictures :
- one with all the infos concerning the CD72,
- one other with the diagram I did.

Please, can someone (Ambrose or some other skilled guy) answer to my questions?
1) Does a transistor have a "direction"? With other words, can I connect the 3 pins of it just like I want? (I guess not but then, please tell me how to know how to connect it.) On my global diagram, I wrote "2N2222 at one of the outputs of the transistor. Is it correct? Is the 2N2222 one of the 3 pins of the transistor?

2) Is my global diagram correct?

3) In the picture with the infos... in the lower left corner, I see a diagram I just can't understand. Is it useful? Can I just ignore it? It seems it needs a condo of 10nF but this condo wasn't on the list of the items needed. So Iwonder if it's useful or not and if yes, than how to add it to my global diagram.

4) In the picture with the infos... in the upper left corner, there are some other diagrams. I guess the last on the right is only useful to understand all the arrows going down need to be connected to the GND (=to the "B" of the CD72 in my case). Is that correct? What do I need to do with the other diagrams?

Finally, I promess as soon as I'll finish this project, I'll share my (very small) experience here. I hope to be helped and helpful for the others in the future.

Thank you in advance.

Sch&eacute;ma g&eacute;n&eacute;ral - infos.jpgSch&eacute;ma g&eacute;n&eacute;ral.png
0
ambrose.clarke
ambrose.clarke

Reply 1 year ago

Hi - Ill try answer all the questions:
1) yes - the transistor has three legs - labeled B,C & E - that must be inserted correctly. Transistor can be damaged by inserting wrong (usually it will get hot once and then might not work again). So good to have a few spares :)

2) 2N2222 is the name of a transistor that seems to be easier to get in USA - BC109 is the one you bought - both work in this circuit the very same - just check online for the pinout of the transistor you have - legs are in a different order for each transistor number.

3) You can ignore - its only needed if you want to play with the circuit simulator LTSpice I have in one of the screenshots - it adds to the emulator, some realistic capacitance (unwanted interference) from the long wires that happens in real life - so we can test if the circuit will work in real world conditions. Ignore that screenshot and go with the main circuit you have posted above.

4) yes - same as in (3) these tell the circuit emulator the voltages it can expect - you can ignore the LTSpice screenshot and just go with the screenshot you have posted above.

5) your circuit diagram - I didn't get to check it all - but you have both the diode method and full circuit there - you should only have the one method connected.

ie. You don't need build the whole circuit to get it working - you can connect the arduino directly to the panel using two wires and a diode - no transistors and circuit board needed - works exactly the same.
it might be good first step to do to make sure you have that part working (arduino, software, psu and internet).

All the best.

0
abbrafab
abbrafab

Reply 1 year ago

Hi, I cant't thank you as much as you deserve it. Thanks again but in my ignorance, I still need some infos about the 5th question. You say if I'm right, mi diagram isn't good because it's a combiantion of the 2 methods. Than, I got it wrong because I thought the versions/methods were :
1) soldering in the back of the panel (no diode)
2) or through ports 20 & 21 (for the CD72) and then no soldering but with a diode.

If I understand you good, I'm totally wrong...

You say I can test in a first step with only : arduino (with the software), power supply, and internet. I have the impression this is exactly what I'm doing. I don't understand what is wrong in my diagram because I use :
- an arduino,
- the LM2596 as 5V power supply for the arduino and the shield from the 12V from the A & B from the panel,
- the shield ( I suppose this is what you mean when you say "internet"),
- and for sure the CD72 panel.

I think (not totally sure because I'm far from being a pro) the global diagram is following exactly yours. Doesn'it? When you have 5 minutes, P L E A S E invest it to check my diagram and/or modify it.- beacuse I really can't figure out what's wrong on it or what I can do diffierently (maybe with less materials/risks).

I have the goal to achieve this project and I just can't drop it before it's going to be achieved and 100% functional. I love it! Thanks again for the help you already gave and I hope for the one you are going to give until I achieve it.

abbrafab

0
ambrose.clarke
ambrose.clarke

Reply 1 year ago

Hi - no problem, you were doing well to translate step 3 to that diagram - What I was suggesting was though, is you can skip all step 3 altogether - and just do Step "Step 4: The Alternative Hardware Interface (super Easy Version)"

So - editing your block diagram you sent - it would look like attached. That's all you need. no resistors, no transistors.
Let me know how you get on !

Edited.LARGE.png