We can also see Idle codes - empty blocks 01111.0111, they does not have any useful information. In our example we have 2 strings of this type.
If a string starts from «1», it contains the message body. The address itself (capcode) is stored is the pager, and if it does not match, the pager will ignore the message. Then, as we can see in the manual, if the string begins from «0», it contains the recipient address. The message itself contains the blocks Batch-1… Batch-N, each block is starting from the unique sequence FSC. The header contains a long block «10101010101», it's used to «awake» the pager from a sleep mode.
The POCSAG manual is available in PDF format, lets check the data structures description.
Now we need to find, what each part means. First, lets split the data into 4 byte blocks. Output - proper bit sequence (in a string format), that contains our message. Its also easy, we know the length of each bit, if the data sum is positive, we'll add «1», otherwise «0» (finally was found that a signal needs to be reverted, so 0 and 1 were replaced). The last step - we need to translate wav file to the bit sequence. speed = 1200Īs we can see, its not perfectly match (transmitter and receiver have slight different frequencies), but its definitely enough for decoding.įor long signals we will probably need automatic frequency correction algorithm, but for this sort of signals its not critical. Lets also add markers to verify that all bits are on proper places. Lets find a zero crossing position - its the begin of the bit sequence. We have 24000 samples per second bitrate wav file, so the keying speed is 1200bit/s. But it will be too long to do it manually, its time to automate the process.Īfter enlarging the graph, we can see that each bit has a 20 samples width. Loading wav-file as a Python data array: from scipy.io import wavfileĪs we can see, its easy, and even «with the naked eye» we can draw bits in Paint, its easy to distinguish where is «0» and where is «1». With HDSDR we will save a signal in WAV format. Lets take a laptop, rtl-sdr receiver, and get it.įrequency shift keying is used, so we'll set FM. Receiving a signalįirst, we need a signal for decoding.
FLEX is a bit newer (was made by Motorola in 90th), it can work with up to 6400 bit/s speed and can use both FSK2 and FSK4.īoth protocols are in general very easy, and about 20 years ago PC-decoders were made, that can decode messages from a serial port of sound card (there are no encryption supported, so all messages can be read by anyone). For transmitting FSK (frequency shift keying) method is used with a 4.5KHz frequency separation.
Both standards are pretty old, POCSAG was made at 1982, it can support 512, 12 bit/s speed.
There are two basic standards of messages transmitting - POCSAG (Post Office Code Standardization Advisory Group) and FLEX. The receiver is very lightweight (both literally and electronically), and can work up to a month from 2 AA batteries. Messages are transmitting continuously «as is», one after another, and the pager is getting the message if its number (so called Capcode) is equal to the device internal number. Its a one-way communication, without any sort of confirmation, so the network cannot be overloaded - it just does not depends from a number of users. The paging communications network has some advantages, that are sometimes important even now: Main infoįor people who forgot the principles or was born after 2000x, I'll remind the main ideas shortly. For people, who owned a pager before, and want to know how it works, this article will be useful.