OT: How to determine a serial protocol

Translate This Thread From English to

Threaded View
Not robotics related, but you guys are the right ones to talk to about
this.
I'm working on a security system project.  I plan on replacing the
Moose Z1100e central control unit with one of my own design but want
to keep the keypads.  They communicate using an unknown serial
protocol.  There's no info on the web about this protocol.  Both the
central control unit and keypads are functioning, so I can monitor the
serial lines.  I am considering using my dual channel storage scope to
monitor the send and receive lines, except 2 things I'm concerned
about - the limited capacity of the storage scope (one screen worth of
data) and the fact that Ch 2 on my scope is flaky.
Does anyone have any other ideas?  Has anyone done a uC project to act
as a logic analyzer?  I would like to do this without spending alot of
money (which would probably be a first for me).

BRW


Re: OT: How to determine a serial protocol



Sure: stuck a computer in the loop, and log what's coming in the serial
port.  If you don't know the baud rate, then just try different rates
until you start getting reliable data.

There are actually two variations on this: (1) use the computer just to
eavesdrop on the communication, in one or both directions; (2) make the
computer a man-in-the-middle, listening on one port and repeating
whatever it hears out the other port.  You might start with (1) and then
switch to (2) when you think you have the right baud rate, as that'll
confirm it.  Then you can start decoding what it hears, and use the
computer for experiments (having it inject your own commands into the
system) to check your understanding.

Best,
- Joe

Re: OT: How to determine a serial protocol


This is a good idea. You might use your scope to figure out the baud
rate. While you have the scope hooked up, check the voltage levels, they
are likely not RS232 levels. RS485 is a common signalling standard and
proprietary current loops are also common. You may need to make a level
shifter to get the computer to accept the signaling.

Something to think about is the ESD issues with security systems. I have
built a few and the ESD stuff is a pain, and the highest priority for a
security system to me is reliability. A flakey security system is worse
than none. A possibility would be keeping the Moose panel and
programming it to signal your computer through relay or optoisolators.
Maybe sniffing the signaling to the front panel would work too.

Good Luck,
Bob



Re: OT: How to determine a serial protocol


You can do exactly this with a freeware serial terminal program called
RealTerm (http://realterm.sourceforge.net/ ) It will not only allow you
to forward data between COM ports and a telnet server, it also
displays ANSI, ASCII, HEX and INT and handles I2C ( I haven't played
with the I2C yet).

-Robotguy



Re: OT: How to determine a serial protocol

On Mon, 18 Jun 2007 13:17:11 -0700, BRW


You might look at making a "Sound card Oscilloscope" something
like below. You could record the input to the sound card as a
wav file, then open it with a decent .wav file editor to see if
there is a recognizable pattern.

http://www.allaboutcircuits.com/vol_6/chpt_4/12.html
http://www.dxzone.com/cgi-bin/dir/jump2.cgi?ID428


Re: OT: How to determine a serial protocol


    Actually, there is, and the cross-posts to other groups have
produced an answer to the original poster's question.

    There are even companies who sell gear to upgrade Moose systems.
The Moose line disappeared after two mergers, and there's a sizable
installed base of orphaned gear.  There's a support forum for the
things at

http://www.diyalarmforum.com/board/index.php?board .100;sort=views;desc

                John Nagle

Re: OT: How to determine a serial protocol


Thanks everyone for the advice. Thanks John for the link to the DIY
alarm forum.  It's looks like a great source of support.  But I was
not able to find any discussion about the serial protocol.  You
mentioned cross-posts to other groups had yielded an answer.  Which
group?  I only posted to this one.

BRW


Re: OT: How to determine a serial protocol


With your scope, you might be able to identify:
- voltage levels
- base frequencies (pulse widths and spacings)
- larger patterns (do pulses come in groups of e.g. 8 or 16?)

If you're lucky, these will correspond with a well-known protocol (e.g.
RS232 or I2C).  Then you could hook in a computer or microcontroller and
capture test data until you identify the patterns.

Good luck,
Daniel

Site Timeline