Home‎ > ‎

Simple Paging Encoder

This page shows how to build a simple, very low cost two-tone paging encoder.  To make this work you’ll need to be able to program PIC microcontrollers.  There are a ton of resources on the web to get you started in PIC programming.  

About Two Tone Paging

Two-tone paging is a signaling format commonly used on VHF and UHF analog radio systems.  The paging radio sends out audio tones that the pagers or receivers listen for.  When a pager receives the correct tone sequence, it will alert.  Normally, two audio tones with a specific timing sequence are used, hence the name “two-tone” paging.  Different radio vendors have traditionally used different tones and timing sequences.  Modern radios can usually be programmed to work with any tone or timing sequence.  To learn more about the different paging formats and associated tones, see the following pages.

Info  on multiple formats:


Motorola QuickCall II format info:


What is a Paging Encoder?

A paging encoder is nothing more than a fancy audio tone generator.  It generates the audio tones with the correct timing and sends them to the transmitting radio.  It also keys up the radio via the push to talk (PTT) line.  Commercial paging encoders (such as those made by Zetron) are very flexible.  They can encode multiple formats (Motorola, GE, etc.), and some can be programmed from a computer.  They have many features that make them great for dispatch and communication centers. 

Sometimes, though, all we want to be able to do is send a single paging tone.  While a commercial encoder could certainly do this, it’s kind of overkill because we wouldn’t use 90% of the features that the encoder offers.  This page explains two different ways to make a simple paging encoder/terminal using a PIC microcontroller.  Since the PIC chips are getting incredibly inexpensive, you can make a simple paging encoder for well under $20.  It won’t have the features of a commercial encoder, but if you have a simple system this might be all you need.

Method 1 - Radio Generates Tones

Many two-way radios can be programmed to send out paging tones without the need for an external encoder.  The Motorola GM300 is one example.  However, to send the tones, you must be trained in how to use the radio to send them.  It takes a few button pushes in the right order to make it work.  If only a few people ever use the radio that’s not a big deal, but if you have a lot of people that might need to send the tones and they’re not all trained, you might want a simpler method of sending pages. 

This is the situation I was faced with.  I needed to make sending tones as simple as possible.  Since there were four possible tone sequences that needed to be sent, I decided that having four buttons (one for each tone sequence) would be the easiest possible way to make sure that anyone could send the tones.  All they would have to do is press the correct button. 

Another feature that the Motorola GM300 has is called channel steering.  There is an accessory connector on the back of the radio with some programmable I/O ports.  These ports can be set up to change the channel of the radio remotely, without using the front panel buttons.  One of these pins can also be set up to send an alert (a page) when it is activated.

So what does this have to do with paging?  Well here’s what I decided to do.  I programmed five channels into the radio (Motorola calls them “modes”).  All five modes are on the same frequency.  Channels two through five, however, are each set up to transmit a different two-tone page.  The radio is programmed so that the page is sent with the “external alert” pin is activated. 

The radio is normally on channel 1.  When one of buttons is pushed, however, the PIC microcontroller “steers” the radio to the correct channel (2 through 5) and activates the external alert pin, which causes the radio to send the page.  The PIC waits until the page is done sending, and then returns to channel 1.  A schematic of my circuit is below, and the assembly code for the PIC16F684 can be found here. (open it in a text editor to view the code)

 This method requires some tricky radio programming, but it allows me to send pages without interfacing with the radio audio circuit. This was an advantage for me because the radio in question was part of a cross-band repeater system, so tying into the audio circuit would have been a little more complicated than normal.  Since this circuit doesn’t actually generate audio tones, it’s not a true paging encoder.  It’s more of a radio remote control circuit.  To see how to use the PIC to directly generate the paging tones and make a true encoder, read on!

Method 2 - PIC Generates Tones

If you have a radio that isn’t capable of generating paging tones by itself, don’t worry!  You can use the PIC microcontroller to generate audio tones.  There are several ways to do this, and I’ll try to explain a couple of them.  How you do it is up to you.

The easiest and quickest way to generate audio tones with a PIC is to simply turn a digital output on and off at the frequency of the tone you want to generate.  This results in a 5 volt square wave.  We would then run this signal through a capacitor to remove the DC offset, and send that signal to the radio’s audio input line.  See the example schematic below.

As an example, if we wanted to generate a 600 Hz tone, we would first calculate the period of the tone.  1/600 = .0016667.  Since we want the square wave to be “on” for half of the period, we would turn the output “on” for 833us, and then “off” for 833us.  We would repeat this for as long as we want the tone to be generated.  Some code for generating tones using this method on a PIC16F684 can be found here.  (open it in a text editor to view the code)

Since the generated signal is a square wave, it is made up of signals at the frequency of interest (600 Hz, for example) plus its odd harmonics (600*3 = 1800, etc.).  This results in a “dirty” signal, since we’re generating signals other than the one we really want.  However, I’ve found that it is “good enough” to activate Motorola Minitor III pagers.  A simple RC filter at the audio output would go a long ways towards cleaning up the signal by filtering out the higher frequency harmonics.  Your mileage may very.

To generate a pure audio tone, we’ll need to generate a true sine wave instead of a square wave.  This can be done by using what’s known as a resistor ladder.  The resistor ladder lets us use four PIC outputs to generate 16 different discrete voltage levels.  By turning on the correct outputs in the correct order, we can generate a stepped sine wave that is much “purer” than a square wave.  A full tutorial on how this all works can be found at KE4NYV's site.  An example schematic is shown below.

Building an Encoder

No matter which method you use for generating the tones, building the encoder is a fairly simple matter.  Once you have the PIC software written and the chip programmed, all you have to do is put it in a a box, wire up some switches and power, and you should be in business.  Of course if you wanted to get really fancy you could put a serial port on your encoder and write a computer program to change the tones without reflashing the PIC.  I didn't get that fancy...my PIC is hard coded...if I want to make any changes I'll need to reflash the PIC.  Here are a few pictures of my encoder.

Outside  View:

I used momentary switches that have guards on them to prevent accidental alerts.  I also added a 1 second debounce in the PIC software as an added safety measure.  It would be pretty hard to accidentally set the tones off! 

Inside View - DB9 Connector is for all I/O lines, including power:

Front Panel:






The front panel was created using a technique described here. Basically I printed out the front panel on my inkjet printer on sticker paper, and then covered it with vinyl contact paper to keep it from smudging. It looks pretty good, although the contact paper has some faint lines in it.