#8 or 16 Zone Sensor Panel

455 messages · Page 1 of 1 (latest)

sacred moat
#

This board replaces your old alarm panel board and allows ESPHome access to all the wired sensors which were connected to your old alarm panel. This is especially useful for controlling lights and for sensing movement in your home if you have PIR sensors in your old alarm setup.

The features of this board are:

  1. 8 supervised zones on the main board. Zone supervision means that a 2K ohm end of line resistor is required in each zone. This allows both opens and shorts to be detected in the loop.
  2. Utilizes the existing 16.5 VAC alarm transformer which came with your existing alarm panel.
  3. Supports a 7 AH lead acid backup battery, and it keeps the battery charged. Adjustable float voltage.
  4. Siren output (2A max).
  5. Pluggable terminal blocks for power and sensor inputs.
  6. 0.9A auxillary power output on 3 sets of terminals.
  7. TVS diode protection on all sensor and power inputs.
  8. Optional 8 supervised zone expander board for Zones 9-16
  9. Uses WT32-ETH01 ESP32 module with wired Ethernet instead of wifi.

This board is currently in development and test See below for board pictures

Disclaimer: I'm calling this a sensor panel for liability issues and the fact that you have to write additional yaml code to create an alarm system.

noble flume
#

Nice, with my new addition of an alarm_control_panel to ESPHome (hopefully will be released in the next ESPHome) all the automation happens on the ESP 🙂 so it could be a drop in replacement... if you have any spare pins that support UART you could add have an option to add a GPRS module so SMS messages can be sent to mobile if you're worried about HA being the brains for notifications...

sacred moat
#

I saw your work, and that was one of my motivations for doing this. Uart is supported on GPIO16 and GPIO17 but the signals are currently 12V so that remote keypads and other things could be supported in the future. Maybe an adapter board with a 12V level shifter, a pi pico chip with 2 UARTS and a GPRS module is in order?

sacred moat
#

Here is a screenshot of the sensors currently supported in the hardware. 1. 16 zone sensors 2. AC Failure. 3. I2C Zone expander interrupt. 4. Voltage monitor for the auxillary power bus. 5. Voltage monitor for the battery. 6. Voltage monitor for the Siren output. The voltage monitors are wired to the ESP32 ADC pins.

teal path
#

could i use 3 of these to get 24 zones?

sacred moat
#

@fathom helm b Yes but that would be an expensive way to go. The board + 1 expander has 16 zones. There's an 8 pin connector with I2C and the voltages to add an additional 8 zones, but the board would need to be designed. I have to get the main board development completed before I can make these boards fully available, and then go on to design additional boards.

bronze folio
#

Why don't you consider using a WT32-ETH01 module? That would give a perfect option with Ethernet.
It's a good module, very reliable.

sacred moat
#

@bronze folio Thanks for asking. The number of pins is significantly reduced due to the Ethernet RMII interface and it's clocking requirements. It would be better to consider this as an external interface like what I mentioned with GPRS. This of course would have to be considered after development on the main board is completed.

bronze folio
#

You could simply use I2C expanders so you don't need as many direct pins on the ESP

#

What can be seen in your screenshot above can be easily done with a WT32-ETH01

subtle kiln
sacred moat
#

@bronze folio Expanders are how I currently implement the zone expanders (PCA9554) Other thoughts: Not everyone is going to have wired Ethernet available to connect to the board, and I'd rather not use a third party module and be locked in to that solution. The best solution would be to not use a module and implement Ethernet directly on the board, but that requires a significant amount of effort which will delay releasing the board.

#

@subtle kiln Full isolation isn't necessary as the keypads would share the same power source as the sensor panel. The 12V signalling level is a standard in the security industry (SIA). It also costs less than an isolated transceiver and can be implemented with a mosfet, diode, resistors, and a schmitt trigger.

subtle kiln
bronze folio
# sacred moat <@576409708999737344> Expanders are how I currently implement the zone expanders...

@sacred moat having a pluggable module with the main MCU is an advantage from the user's perspective:

  • the module can be replaced plug and play for faster recovery in case of software/hardware failure of it (eg for serial flashing you don't have to dismount the entire board - you can even keep a preflashed spare module in the drawer as a cold backup)
  • once newer MCU models appear, replacing the entire board is not necessary, one can only redesign the module with a new MCU
    Just my two cents... I'm designing a board for central heating with a lot of I/O and these are my major reasons why I prefer to keep flashable parts on replaceable modules.
sacred moat
#

@bronze folio. Thanks for your thoughts. That module is $12.00 USD The ESP32 WROOM32's can be had for $3.72 USD.

bronze folio
#

I think the ~9USD difference is worth the flexibility and the Ethernet feature
(also a sidenote, Ethernet PHY design a bit harder due to high EMI sensitivity, this one is ready to go...)

#

I'd even make a dual -row socket on the board, to be able to accept both WT32-ETH01 and WEMOS/NodeMCU

sacred moat
#

I will consider it. Maybe a dual population strategy. I did several ethernet designs in when I was working, and EMI on ethernet ports was always a problem,

bronze folio
#

Any chance for more zones? 32-64 inputs?

sacred moat
#

They won't fit on the board due to all the window comparators required. There's an 8 pin connector with the I2C and bus voltages to connect to a future expander.

bronze folio
#

Great. Wonder how many expanders could we use?

#

To increase input numbers

sacred moat
#

That is limited by the I2C bus capacitance and the number of available I2C addresses.

#

There are 8 I2C addresses for the PCA9554A and another 8 for the PCA9554

bronze folio
#

Oh, that's plenty.

sacred moat
#

I ordered a couple of WT32-ETH01's to evaluate.

bronze folio
#

Do you plan to make for selling too?

sacred moat
#

It will not be open hardware. I will be selling these as a partial kit where you have to solder on 2 pushbutton switches for EN and BOOT. This way I can avoid FCC/CE certification requirements as I am not the final assembler.

bronze folio
#

Put me on the list

runic cypress
#

@sacred moat have you seen this package
https://www.ti.com/lit/ds/symlink/ads7128.pdf
8 Channels
8 configurable I2C addresses
Analog and GPIO (In/Out ability) Since your board is not really directly an alarm it could do both reading sensors and triggering output to anything.

runic cypress
#

These level terminals are slick been waiting for them after seeing the more expensive wago ones knew eventually there would be a knock off.

sacred moat
#

Hi NonaSuomy. The problem with those terminal blocks is you have to disconnect all the wires to remove the board. I use pluggable connector blocks so that removing and reinstalling the board is less of a pain. All the wires remain connected on the detached connector block. That TI part is interesting, but overkill for alarm zone sensors. I use window comparators (2 LM339 sections per zone) to handle the 2K ohm End of Line Termination resistors. This way, reading a zone's status is easier and quicker then selecting an ADC mux and starting a conversion. I can read 8 zones in one I2C transaction which helps reduce the number of transactions on the I2C bus.

cloud charm
#

Why does the number of transactions matter?

sacred moat
#

Because if you have a lot of zones (say 64 of them), then you saturate the I2C bus with transactions. When you read one bit at a time this would mean 64 separate transactions for each bit. If you can read 8 bits at a time, then only 8 transactions are required.

runic cypress
# sacred moat Hi NonaSuomy. The problem with those terminal blocks is you have to disconnect a...

Interesting thought with the terminal blocks for board development. I was just thinking about end of the line ease of use for common user no micro standard screwdriver required. How does it send that comparator information through the digital PCA9554 i2c chips? What about people that have a multitude of EOL and Double EOL resistor values are you saying they have to rip all their existing embedded contacts out of their walls to change the value to 2K or you can detect other common values (1KΩ、2.2KΩ、4.7KΩ、5.6KΩ、6.8KΩ) with that method as well?

sacred moat
#

The comparators check to see of the voltage on the line is in a midpoint range. If it is above or below that midpoint range, it is treated as a violation. The comparators output a digital signal when the PCA9554 can handle. About the N-terminated EOL circuits. I hadn't planned to support those as they aren't in widespread use. In fact a lot of installations don't even use single terminated zones in residential installations. What you run into with multiple voltage levels are problems with noise immunity on zones with long lengths of wire. This is especially true if the resistors start getting above 2K. 1K and 2K are the standard values used in the industry.

sacred moat
#

OK that's new to me. I used Ademco/Honeywell value of 2K because that is what the alarm panel used replaced. Maybe they use higher volages now on newer panels to avoid the noise immunity issues.

#

1K was used on DSC panels.

runic cypress
#

Yeah was just giving you a heads up as I saw some people complaining where they had to change the resistor values out for another products and damaged all the paint around the trim etc causing more time waste.

#

food for thought.

sacred moat
#

For the round door sensors you can use an x-acto knife to minimize the paint damage.

runic cypress
#

A lot of the newer alarm system can auto detect end of the line resistor values.

#

Some make you manually set it

sacred moat
#

Yeah, that would require an ADC.

runic cypress
#

"Zone 2 uses a 3K resistor, and zone 10 uses a 6.2K resistor."

#

What part do you use for TVS?

sacred moat
#

SMF14

runic cypress
#

Thank you

#

Great job btw!

#

That top stacked board is the expansion module for more zones?

#

What does the Mzef241 do is that your window comparator?

runic cypress
#

Do you happen to know how an end of the line resistor would work for bell/horn/strobe/output device?

runic cypress
#

How do you "sense" that while just dumping power for those things to go off?

#

Are your "1A auxillary power output on 3 sets of terminals." supervised?

sacred moat
#

Q: That top stacked board is the expansion module for more zones?

#

Yes

#

That board adds another 8 zones

#

Q: What does the Mzef241 do is that your window comparator? Mzef241 is not a valid part that's probably some internally used chip ID

#

Q: Do you happen to know how an end of the line resistor would work for bell/horn/strobe/output device? No it isn't full supervision. What I did instead is hooked up one of the ESP32 ADC inputs to the siren output. If someone shorts the the siren leads PTC fuse will open, and the lack of voltage at the siren output would be detected (You must have a fully charged battery for this to work properly as the short circuit current is greater than what the AC supply can provide) . What it won't detect is someone cutting the bell wiring. In order to implement full supervision, you'd need a circuit to measure the resistance of the EOL resistor in the bell periodically while the alarm isn't sounding. This would add cost and complexity.

#

Q: Are your "1A auxillary power output on 3 sets of terminals." supervised? They are protected in the same manner as the siren output. Please note that the current is 1A total on all 3 sets of output terminals.

sacred moat
#

LM339 Quad Comparator

runic cypress
#

Thank you

#

Do you know why they use 16v VAC?

sacred moat
#

That's an old doorbel voltage standard in the USA

runic cypress
#

Is there a point to it?

#

did they tack it into the door bell transformer?

sacred moat
#

Well, 16.5VAC is comes out to 23VDC when you rectify the voltage peaks. If you want to have some headroom for charging the battery then you'd want an input voltage high enough to handle low line conditions (100 or 200VAC) and still charge the battery. This was done by linear regulators on Ademco panel I have.

runic cypress
#

Did you basically clone the power circuit from that Ademco Panel?

sacred moat
#

Nope. I designed my own switcher.

#

That's my intellectual property 🙂

runic cypress
#

Do you do PCB design for your day job?

#

It's a switchmode power supply?

#

I thought it was just a buck converter

sacred moat
#

Day job? I'm retired, but I worked as an EE 🙂

runic cypress
#

I'm running my contacts to the ads1115 from the 3v3 on the PoE board will I eventually hit a wall or blow something up doing this?

#

So far I have 4 (Door) contacts running on it with no issues.

sacred moat
#

3V3 is very a low voltage for external wiring. I'd be worried about noise immunity. The LM339 circuit I use runs off the battery voltage and the LM339 is powered by a higher voltage from the switching power supply so that you don't violate the common mode range of the LM339. The LM339 needs a power supply higher than the maximum input voltage it will see.

runic cypress
#

that's the board

#

Would you use even lower resistor for 3v3 for EoL to prevent the noise you were talking about using higher resistor values since I am currently using this configuration

sacred moat
#

Lower resistors will help but they aren't panecea and have diminishing returns. Higher voltages are the solution to the problem. You have to figure that if anything gets induced in the wiring . For voltage induced with fast rise times and short durations, an lowpass RC filter can take care of these and the TVS diode will limit the maximum voltage anyway.

runic cypress
#

For tvs diodes do you just tack them at the closest point to your input or is there more to a circuit for them?

sacred moat
#

They need to go as close to the input connector as possible, the PCB trace should route through the TVS cathode pad and then to the input of your circuit. The TVS diode anode should be solidly connected to the PCB ground plane, or the return for your circuit. For 3.3V you'd need to select a TVS diode which can protect that input. Also, you should have the RC filter between the TVS diode and the ADC input. The nice thing about the LM339 comparators is that the return is at DC ground and nothing floats.

runic cypress
#

What would an RC filter look like for between the tvs and the adc is there a component that does that?

sacred moat
#

Series Resistor followed by capacitor to ground

runic cypress
#

Any specific values you would suggest?

I was reading that the ADS1115 pins should be left floating or tied to VDD as they leak current tied to ground.

sacred moat
#

So the RC filter should have a low resistance and high capacitance then. Any leakage to ground should be small, but you need to check the datasheet to be sure. But if your pins can float in certain situations you could also buffer them with op-amp followers. THis does add complexity though.

runic cypress
#

https://www.ti.com/lit/ds/symlink/ads1115.pdf

10.1.3 Input Protection
The ADS111x are fabricated in a small-geometry, low-voltage process. The analog inputs feature protection
diodes to the supply rails. However, the current-handling ability of these diodes is limited, and the ADS111x can
be permanently damaged by analog input voltages that exceed approximately 300 mV beyond the rails for
extended periods. One way to protect against overvoltage is to place current-limiting resistors on the input lines.
The ADS111x analog inputs can withstand continuous currents as large as 10 mA.
10.1.4 Unused Inputs and Outputs
Either float unused analog inputs, or tie the unused analog inputs to midsupply or VDD. Connecting unused
analog inputs to GND is possible, but may yield higher leakage currents than the previous options.
Either float NC (not-connected) pins, or tie the NC pins to GND. If the ALERT/RDY output pin is not used, leave
the pin unconnected or tie the pin to VDD using a weak pullup resistor.
#
pplication Information (continued)
10.1.5 Analog Input Filtering
Analog input filtering serves two purposes:
1. Limits the effect of aliasing during the sampling process
2. Reduces external noise from being a part of the measurement
Aliasing occurs when frequency components are present in the input signal that are higher than half the sampling
frequency of the ADC (also known as the Nyquist frequency). These frequency components fold back and show
up in the actual frequency band of interest below half the sampling frequency. The filter response of the digital
filter repeats at multiples of the sampling frequency, also known as the modulator frequency (fMOD), as shown in
Figure 41. Signals or noise up to a frequency where the filter response repeats are attenuated to a certain
amount by the digital filter depending on the filter architecture. Any frequency components present in the input
signal around the modulator frequency, or multiples thereof,
#
Many sensor signals are inherently band-limited; for example, the output of a thermocouple has a limited rate of
change. In this case, the sensor signal does not alias back into the pass-band when using a ΔΣ ADC. However,
any noise pick-up along the sensor wiring or the application circuitry can potentially alias into the pass-band.
Power line-cycle frequency and harmonics are one common noise source. External noise can also be generated
from electromagnetic interference (EMI) or radio frequency interference (RFI) sources, such as nearby motors
and cellular phones. Another noise source typically exists on the printed-circuit-board (PCB) itself in the form of
clocks and other digital signals. Analog input filtering helps remove unwanted signals from affecting the
measurement result.
A first-order resistor-capacitor (RC) filter is (in most cases) sufficient to either totally eliminate aliasing, or to
reduce the effect of aliasing to a level within the noise floor of the sensor. Ideally, any signal beyond fMOD / 2 is
attenuated to a level below the noise floor of the ADC. The digital filter of the ADS111x attenuate signals to a
certain degree, as shown in Figure 21. In addition, noise components are usually smaller in magnitude than the
actual sensor signal. Therefore, use a first-order RC filter with a cutoff frequency set at the output data rate or
10x higher as a generally good starting point for a system design.
sacred moat
#

Ah yes, those pesky ESD diodes... That is the issue with a lot of IC's it seems. You DO want some protection on those ADC inputs any short to a voltage greater than 3.3V will burn out the ADX111x. 1. The ESD diodes aren't perfect and have leakage current which could affect your measurements. 2. You have to be very careful not to to exceed the power supply rail plus 0.3V typically, and this includes fault conditions./

#

Anyway have to sign off for the night. Nice chatting with you.

runic cypress
#

Have a good eve sleep well.

#

Thank you for the information.

sacred moat
#

NP

bronze folio
sacred moat
#

My board supports a serial interface similar to Ademco/Honeywell ECP at the hardware level. I haven't written any software for it, or designed an arm/disarm terminal board yet. That is a future project.

bronze folio
#

Is it 3.3V or 5V level?
Could we connect a Wiegand panel to it?

sacred moat
#

Signalling is 12V not 3.3V or 5V. This isn't compatible with the weigand signaling levels. Weigand readers don't seem to be multidrop capable. Also, weigand readers dont have displays which is a problem.

runic cypress
#

they seem to be running the device at 12v but logic level of the esp for the wiegand data lines

sacred moat
#

Thats the problem. The logic levels on my board are 12V.

sacred moat
#

Updated PCB

runic cypress
#

What are the jsts hooked to?

sacred moat
#

A test system

bronze folio
#

when can it be purchased?

sacred moat
#

Not sure. There's still quite a bit of work to complete. I have another revision of the board coming. It will need to be tested, then installed and run as a panel for a while to ensure everything is OK. Also need to create the documentation.

sacred moat
#

Here's a picture of the sensor panel in the test platform

runic cypress
sacred moat
#

The test board simulates normal, open and shorted zones. It can measure the power rails with an accurate ADC. It simulates the battery in a system. It also has an electronic load to load the battery, aux and siren outputs to any current from 0-2A. This is the reason for the large heat sink.

sacred moat
#

Getting ready to install the prototype in my house. Here's a screenshot of the settings in homeassistant.

sacred moat
#

Picture of the installation

bronze folio
#

Nice

sacred moat
#

Arm/Disarm Keypad breadboard. This uses the 5 pin serial interface connector pin the sensor panel and allows the existing wire run to be utilized to support up to 4 keypads. It uses an STM32 blue pill for the keypad processor. 4 wires are used on the 5 pin connector +12V, GND, Rx Data and Tx Data. The reason for this prototype is to allow the alarm system to be armed and disarmed independently of Esphome and Home Assistant for redundancy.

bronze heath
#

Why not just reuse an existing alarm keypad

bronze heath
#

Take an alarm panel attach the EOL and measure voltage

#

It'll be like 6Vish

#

Zone Doublers actually use 2 different resistors that add up to the normal EOL

#

But if you break the connection on one of the resistors it'll be a different voltage than if the other was broken

#

A direct short is tamper

#

Most alarm panels use what is basically a bunch of multimeters

bronze heath
#

It's RS-232 Like

#

This lets you send custom information to the 6160/6150

#

This is monitoring FROM the panel

#

This is being controlled by an Arduino

sacred moat
#

Existing alarm panel keypads use a proprietary protocol and a microprocessor with ROM which cannot be changed. I don't want to be stuck with someone else's proprietary protocol which cannot be changed. Having control of the firmware and the hardware and the hardware eliminates these issues.

#

Regarding Honeywell signalling levels to the panel from the keypad. They are 0-12V (or to whatever battery voltage is present). My sensor panel is the same. The keypad always is listening and will only transmit status and codes when asked to by the sensor panel, and they are polled in succession periodically to make sure they are still connected. The conversion from 3.3V serial to 12V is is simple. The driver consists of 2 small mosfets and a pull up resistor to battery voltage. The receiver is a non inverting schmitt trigger with a series resistor and clamping diode.

#

The plan is design my own board and use something like this enclosure on Aliexpress.

bronze heath
#

Both for DSC and for Honeywell

#

The reason I suggested it is because I'm doing a similar project

sacred moat
#

That's true.

bronze heath
#

And the quality of the keypads are quite great honestly

#

I spent forever trying to find a good DIY generic keypad that use something like RS485

#

ELK makes one that's actually really cool

sacred moat
#

But you are limited in what type of information can be displayed.

bronze heath
#

You can put any text you want

sacred moat
#

I want to use a 4 line display.

bronze heath
#

Ah

sacred moat
#

2004 or 12864 graphic displays are what I had in mind.

bronze heath
#

Well it was just a suggestion since I just came off of this path for DIYing My alarm system

#

For a little while I did use the Honeywell keypads

sacred moat
#

Any suggestions are welcome. How did you do your interface to the 12V signalling used?

bronze heath
#

Alternative version

#

And ground isolated

sacred moat
#

You used SCL and SDA? Those are I2C pins not serial. I believe the Ademco system used 4800 baud with even parity.

bronze heath
#

1.5 stop bit

#

And yes I do because it requires a modified software serial library

#

It's bit banging

#

This is because the serial protocol is not standard

sacred moat
#

You can't use a hardware uart....

bronze heath
#

Nope

#

It's because of the way they do addressing

sacred moat
#

Interesting.

bronze heath
#

I mean you can actually but you're going to get overrun errors and stuff like that whenever it does addressing

sacred moat
#

My protocol uses 8 bits no stop bits and and 8 bit CRC.

bronze heath
#

The reason they do this is so they can have flow control

#

Despite the fact they only have two wires

#

And it's actually really really cool

#

To signal that a keypad has something to send during the pulling period The keypad will send a one to set a bit in the address by

#

Byte

#

So if every keypad sends a 1

#

They all stack up next to each other to make a byte

#

00000010 000000001

#

Whenever it's there turn to send since they are sending over the same wire they combine basically

#

00000011

sacred moat
#

Ah, wire-or fashion. Anyway, I don't think a bit banging solution would be workable with ESPHome on a WT32-ETH01. It would need a dedicated processor.

bronze heath
#
Address 16 - 11111110 (inverted on the wire looks like 00000001) Address 21 - 11011111 (inverted on the wire looks like 00100000) Together on the wire they look like a single byte of 00100001 0x21

In order to get perfect AND logic from multiple devices sending pulses at the same time, they must pulse a start bit and no data (0xFF) twice before sending their address bit mask. When the line is pulled low for more than 12 ms, and a keypad has some information to transmit, this pulsing should synchronize with the rising edges from the panel.```
sacred moat
#

A RP2040 might be able to do it though.

sacred moat
#

ESP32

bronze heath
#

Because this works on an Arduino Mega

#

Lol

#

It does not take any processing power at all

sacred moat
#

Albeit with timing restrictions due to the bit banged uart 🙂

bronze heath
#

I've done it with an ESP8266

sacred moat
#

WIFI interrupts may be tricky though.

bronze heath
#

See I will not put anything like that on Wi-Fi

#

But here you go

#

Lol

sacred moat
#

True, but Ethernet may have the same issue with interrupts.

bronze heath
#

Oh trust me you're fine

#

That is for reading from the system

#

This is to act like the system so you can talk to keypads

#

Or if you want, I also use the Relay Modules, Zone Expanders since they are nice, and even the Keyfobs and Honeywell 6800 RF sensors

#

Since you can capture and control all that

#

My alarm keyfob works my pool and my garage

#

I also like the fact that everything is UL listed

#

You might like some stuff inside it

#

But here's the fun reason why I kind of suggest this also

#

You can still make your own keypads but having the ability to use other ones just gives you variety

#

It wouldn't be hard to make a library that allows you to communicate with any of them from the same device

#

I've actually considered making something that immediately converts The various kinds of communication protocols on these keypads into RS-485 Modbus

#

And/or adding lora

#

Oh yeah I forgot to mention the serial is also typically inverted on keypads

sacred moat
#

Thanks for all the links. Will look at them. UL listing is good, but it won't apply unless the whole system has UL listing. For ESP home builders that isn't going to happen. My board also has external I2C. I could make a converter for the existing keypads using the RP2040.

bronze heath
#

This is because it's quicker to drain a wire and refill it with power than it is to start from nothing and then pulse because the pressure from having the entire wire saturated actually causes the signal to be more sharp on the rises and falls

#

Also a keypad would have to draw power from a 12 volt line and then send it instead of just pulling to ground

#

So 12 volt is 0 and 0 volt is 1

sacred moat
#

My 12 volt system idles at 12V to conserve power.

bronze heath
#

Yeah they rest at 12V

bronze heath
#

I'll be honest with you it's honestly not a very stable chip

sacred moat
#

Because it had fPGA- like I/O processors

#

Those might be able to be used to implement the special 1.5 stop bit signalling.

bronze heath
#

You don't actually need to

#

By the time you hit that half stop bit

#

The extra half doesn't matter because the panel has stopped listening

#

The stop bit delay is 208us

#

You just gotta use a 104us delay

#
#define ONE_BIT_DELAY              delay_us(208)  // ~one bit delay @4800 baud
#define ONE_BYTE_DELAY             delay_us(2030) // ~one byte delay @4800 baud
#define DELAY_BETWEEN_POLL_WRITES  delay_us(1015) // measured delay between polling writes
#define LOW_BEFORE_WRITE_DELAY     delay_us(4060) // time to drop transmit before regular writes
#

And funny enough there are times where there is no parity

#

And sometimes the baud switches to 2400 for some specific stuff

#

But that's actually for all the really advanced additions

#

These 3 devices connect to a DSC or Ademco panel and are meant for DIY

#

One is a cloud-like service with some minor local controls

#

One is entirely over USB

#

The other RS232

#

The two bottom ones which are USB and RS232 try to parse the messages for you

#

So here's where it gets really funny

#

So as it turns out this specialized RS232 like protocol is not honeywell's

#

It's Microchips.

#

Addressable Enhanced Universal Synchronous/Asynchronous Receiver/Transmitter

#

It's part of the Microchip special hardware features

#

Truth is these Honeywell panels were actually way ahead of their time

#

They had X10 Automation Support

#

The original Z-Wave/ZigBee

sacred moat
#

Weird. I had the Eyezon and I didn't like it for many reasons it being cloud based was the major detriment, and the other was honeywell off delays. Why did you use optoisolators to drive the keypad bus?

bronze heath
#

Yeah the eyezon I don't like

#

The other 2 are Alarm Decoder

sacred moat
#

I had the alarmdecoder too. It was not the best solution either.

bronze heath
#

If you put it in debug mode

#

It was just straight print the messages

#

As they are received

#

So it basically is your diy ECP to Serial

#

Diag Mode 77 by hitting @ then 77

#

The other cool thing about it is that it can do the modem functionalities

#

Because the panels are actually programmed over telephone wire

#

A Voice Capable modem is required

#

But they can also be programmed over the ECP but it needs to be sent as a modem connection

#

The alarm decoded firmware has the ability to do this

#

You actually had to originally pay for the Compass 2.0 driver

#

This is really cool because you can actually send your alarm system information over WebSocket

#

And just interface with it wirelessly or over the network

sacred moat
#

Regarding: So in the event that the device fails it doesn't take everything with it. Why is this an issue? If a keypad fails, and grounds its TX line, that would be detected as trouble.

bronze heath
#

That also breaks UL Regulation regarding life safety equipment

sacred moat
#

I use mosfets and the pullups are on the sensor panel. If you lose power to the keypad, the mosfet will be High Impedance.

bronze heath
#

It's actually really if there's a short or something

#

The trouble notification should be sent whenever the end of line resistance is broken

#

Or

#

Whenever they don't respond to polling

#

Which is the best way

sacred moat
#

My 12V output is current limited with a PTC fuse on the sensor panel

bronze heath
#

It's not about that it's just potential interference with communications from other devices

#

It's to ensure that all stops are made to make sure that any notification of critical nature makes it to its destination

#

Unmolested

#

Don't want that thing spazzing out and sending a bunch of noise

sacred moat
#

If theres a fault on my 12V bus, then the driver code will report trouble

bronze heath
#

Well of course it's just another means of safety

bronze heath
#

It uses an NPN and PNP Transistor

#

Cool thing about that is it'll invert the logic for you

#

So you don't have to in the code

#

Hah here it was the cool ELK keypad

sacred moat
#

That's similar to my circuit, but I use an N-channel mosfet and a small pullup. Another N-channel mosfet prior to the driver is used to invert the signal. Your circuit has a Pnp channel pulling up to 12V and a pulldown resistor.

#

That is cool!

bronze heath
#

RS-485

sacred moat
#

Is the protocol documented?

bronze heath
#

Action never looked into it now that I am I'm sort of disappointed and sort of not

#

It seems only just very very very very very recently there has been an effort to actually spearhead the documentation of this protocol

#

I always love the timing of these things

#

The day I look into it is the day it's made

#

However I'm kinda ok with it because ELK is the ONLY company that makes a good alarm panel

#

They make this which IS FULLY documented

#

And it sends everything over network

#

And LOL I recognize that Ethernet port

#

It's a Webserver on an Ethernet port

sacred moat
#

I've seen those, but they seem to have a lot of limitations on what you can do with them.

bronze heath
#

You should see some of the newer ones

#

This is basically the newer polished one

#

The pro versions of these run Linux

#

Ties in Z-Wave

#

Wait

#

The listen in interface doesn't require jank Proprietary crap

sacred moat
#

Thanks for all of the information. I need to digest it all.

stable sparrow
sacred moat
#

I am aware of them.Their product has been out for a while. They don't have some features my board has, and they are charging $229.00 for it. My board will cost less and include features missing on theirs.

sacred moat
bronze heath
#

$229 for that is stupid

#

Oh my god

#

Id rather use this

#

And could get the ones that just monitor inputs

#

Yeah one of these

bronze heath
#

Why did you pay for that?!

#

If you were not using their firmware

stable sparrow
sacred moat
#

@bronze heath The Chinese are flooding the the market with lots of generic interface boards. Kincony IOT has quite a few with ESP32 devices. An alarm system could be built using these boards, but it will be a multi-board solution.

sacred moat
bronze heath
#

I started mounting everything on DIN rails

#

And having everything work off RS-485 means I can daisy chain them easily

#

Not to mention... the Honeywell and DSC board are just PLCs themselves

#

The ESP32 based stuff is jank though

sacred moat
# bronze heath I like to use the PLC board

Before the Internet was around my house had RS-485 boards for irrigation control and for sensing things. My other two products (Sprinkler Controller, and DC Monitor) are in enclosures which mount on DIN rails. The sensor panel can mount on DIN rails too as it will fit in a LK Shiny Enclosure LK-PLC31 (Aliexpress) if the lip material is removed around the external connectors. I didn't offer it this way due to the case modifications required, and it really should be in a metal enclosure with the lead acid battery. Enclosure link: https://www.aliexpress.us/item/3256804740888325.html?spm=a2g0o.productlist.main.1.767333deEaR4xJ&algo_pvid=92a795d6-0640-4326-bd96-83e9bbc94348&algo_exp_id=92a795d6-0640-4326-bd96-83e9bbc94348-0&pdp_npi=4%40dis!USD!3.93!3.93!!!28.50!!%402101e9d416934491962511058e711c!12000033164215029!sea!US!0!A&curPageLogUid=b7G6c9wGulOz

bronze heath
#

Yeah this is the route I'm looking to really commit to myself. I really like the idea of being able to segregate each module to its specific application physically However I love the idea of also being able to tie them all together to the same microcontroller and or ultimately the same automation system (if I end up directly attaching it to whatever that may end up being at the end of this)
Another key feature for me if you even want to call it that, is that I can attach all of these modules together along with whatever controller in a P2P manner without relying on networking. This makes maintaining things easier and less chance of something glitching or whatever.

#

And should I elect to use a controller per application instead of relying on one client server (ie ESP32) or Controller (ie pi), it would be easy to make those additions

#

Which I might for redundancy

#

Ive had my eyes on this

sacred moat
#

For those looking to get a board. The 4 boards I had for sale on Tindie have sold out. It will be 2-3 weeks before I receive more.

bronze folio
#

4 days and sold out

#

Please ping me so I can purchase one please

bronze folio
#

How about zone expansion options?

sacred moat
# bronze folio This is the compatible enclosure?

I'm only supporting 16 zones and this is probably not going to change for a while as I'm quite busy juggling multiple things. The only option available right now is to purchase multiple 16 zone units. This will be the case until I have the bandwidth to design the expansion module. Please clarify what you mean by enclosure. In previous posts, I mentioned there is a DIN rail enclosure available which the board will fit in after the lip material has been removed. I recommend that the board be installed in a steel alarm panel enclosure due to having a lead acid battery connected to it.

bronze folio
#

Just to be clear, the Tindie listing title says it's 8 zones

sacred moat
#

@robi There's an option to purchase the 8 zone internal expander, but it isn't showing due to the board being sold out. It's an additonal $49.00

#

Where are you located on the planet?

sacred moat
bronze folio
#

I see you ship these from US. That will also impose quite an amount of import tax and VAT 😦

sacred moat
# bronze folio I'm in EU

You'll have to pay tax and vat when you receive it. Shipping internationally is also very expensive. The US has a pretty steep "gravity well" when it comes to shipping costs. What country are you in? I can add the shipping cost for that country.

bronze folio
#

Yeah I see. I'll see if I can get a friend of a friend of mine who lives in the US to help

bronze folio
#

There are tons of models, combined with rfid tokens or fingerprint sensors.
They can be set to just output the buttons as pressed, or the token strings via serial

#

@sacred moat do you think your board would be able to employ such a panel? D0 and D1 pins are between 4.4 and 5.6 volts on these. The panels themselves usually need power between 6 and 14 volts

bronze folio
sacred moat
# bronze folio <@620259259363491840> do you think your board would be able to employ such a pan...

No. The board supports battery voltage level signalling on J102 and would be incompatible with Weigand panels. The pinout of J102 is documented in the WIKI.The original intent of this connector was to support a keypad that I was going to design, and sell, but recent information has shown it might be possible to build an adapter board to connect to J102 and use Honeywell 6160 keypads for arming and disarming.

sacred moat
#

The LK-PLC31 needs to be modified to remove the lip so the edge connectors don't interfere.

#

This board should really be mounted in a steel enclosure due to the battery though.

bronze folio
#

But you say you won't be making it?
I would have had a few suggestions, like the type of the LCD display to be chosen (the ones they send from Aliexpress by default are English-Japonese character set, for English-European version you need to specifically search/ask)
See HD44780UA00 vs HD44780UA02

bronze folio
bronze folio
#

DSC seems to be more universal in the aspect of supporting non-English caracters, not 100% though

sacred moat
sacred moat
bronze heath
#

If you run into any issues let me know, I've probably hit every quirk with the things

sacred moat
#

I have a 6160 coming, and also have 2 6139's.

bronze heath
#

One other thing i need to also figure out is making use of the 6160RF for Honeywell 6800 Series stuff

sacred moat
#

The 6139 is obsolete, but that's what my original alarm installation had back in 1998. The 6139 is built better IMHO.

bronze folio
#

Would 6165 (slim version) also work?

bronze heath
#

I have one of those myself

#

They are the same as a 6160

#

Just different looks

bronze folio
#

There's also Ademco brand, is it the same?

bronze heath
#

Yes

#

Honeywell Ademco was the original

#

It's now Resideo

#

You also have Honeywell Home

#

Resideo and HHome branded stuff is the same between them, just intended for Pro vs Consumer

bronze folio
#

When you get the chance, can you test if you can display diacritic characters with these? Eg unicodes like É ő ű á ö ü í

cloud charm
#

Maybe not unicode, it might be one of the extended ascii sets.

bronze heath
#

Sadly that's a nope on anything but the English alphabet, special characters and numbers

bronze folio
#

That's a pity for the non-English part of the world

bronze heath
#

My Honeywell 6164US just came in

#

I need to start working on getting that functional

#

Has 1 Relay and 4 Hardwired Zones

#

Was costly though

bronze heath
#

TALK ABOUT COINCIDENCE

#

The 6164US has other language support

#

I may have your answer

#

It is only prompts but the display supports other diacritic characters

#

So you could add other languages to whatever you use it with

bronze folio
#

Hmmmm

bronze heath
#

It is expensive

#

I paid $299 for it

#

Although I'm loving it already

#

I had a garage relay setup on another extension panel coming off the keypad on the other side of the wall to the garage door entry

#

With the relay on the keypad and the additional zones to monitor garage door open/close state, it works perfectly

#

Now if only they had an RF version on top of it

#

6164SP is Spanish

sacred moat
#

I have code which can get keypresses, and send messages to a Honeywell 6160 keypad. The code runs on an STM32 blue pill. The STM32 will act as a translator from the ESP32 to the timing sensitive Honeywell ECP protocol. I eventually may make an interface board to connect the SP8 to Honeywell Displays. Needs more testing and code on the ESP32 side to talk to the blue pill. Here's a picture of the display.

sacred moat
bronze heath
#

@sacred moat how's it coming along with your keypad integration

sacred moat
#

Just made the prototype printed circuit board and shipped it off to be fabbed.

#

I have more firmware development to do. Need to write the ESPHome driver for the SP8 and implement the code on the STM32 to talk to it.

#

Board fab will take 2 weeks, so plenty of time to work on firmware

bronze heath
#

I found this interestingly enough

#

But their firmware is not open source sadly

runic cypress
bronze folio
#

@sacred moat It came to my mind that a nextion display could also be used very well as a control panel.

#

The display has its own controller and communicates with ESPHome via Rx/Tx UART.

#

Nextion has a GUI editor where anyone can design any UI they'd like, display states and touch events are all recveived/transmitted through UART.

#

Serial Port Mode is 3.3V/5.0V TTL. Could this connect directly to the alarm board? Are there free pins left for such?

bronze folio
#

It even has 8 free IOs, and a speaker out so beeps etc. could be implemented
IOs could be used as extra zone binary inputs near the panel.

bronze heath
sacred moat
#

That could be done, but like Rouing says that's a whole new project. I'm sticking with the Honeywell/Residio displays for now.

sacred moat
bronze heath
#

AlarmDecoder needs a huge overhaul

#

And this could be it.

sacred moat
#

Here is a picture of the Ademco Keypad Adapter for the SP8 alarm controller board.

#

Here is a picture of a Honeywell keypad conected to the board

bronze heath
#

Not sure if you would find it useful

#

The panel will accept 5V On its receiving

#

So long you are close enough

#

The same goes for the keypads

errant slate
#

Man this entire thread has been a good read

#

I’ve been attaching a logic analyzer to the comms between the keypad & alarm panel so I can attempt to reverse engineer the basic comms

#

Thankfully, my alarm is one of the older ones with unencrypted communications

#

There’s a lot of different solutions to replacing/augmenting alarm panels 😆

sacred moat
# errant slate Man this entire thread has been a good read

I'ts a messy protocol. Very timing dependent. The code I wrote implements it using a modified version of the software uart for the ESP32 as well as precisely timed delays using the interrupt for the software UART. I think the Ademco engineers had to make these trade-offs though so that keypads could be polled quickly and efficiently.

errant slate
#

Mine is the localized version of the Crow Runner (Arrowhead Elite S Lite, basically the same thing)

bronze folio
#

Wait! Ademco = Crow?