The Purple Pager
Last update: 9th November 2010
Status: In Progress
Back in the mid-90s some students created a website about their school project. In the project they explored a pager (used by many people at the time!) and their aim was to modify it to output the pager network data stream to a computer. The pager was a purple colour, hence they named the project The Purple Pager. I remember being captivated by their web page and what they were trying to achieve, as well as impressed by the teacher who supported their work. I got hold of a second hand pager so that when I had time I could also have a go at reverse engineering it. That was about 15 years ago, and I still have the pager, and still remember reading the website. I may not have done anything with the pager but I have been interested in hardware hacking ever since.
Now I’m somewhat older and have a few more resources to hand I think it is time to finally do this project a little justice. Keeping up with the times the aim will be to interface the pager with an Arduino which will allow us to page the Arduino!
I am half way through this project and documentation is sparse. I’ll add it as I go. Hopefully it won’t take another 15 years.
First I used a logic analyser to probe the pager and find the data signal. Actually I just wanted to play with my new Open Source Logic Analyser. The pager uses the POCSAG protocol and this is encoded as 2-level FSK.
The next stage was to tap the data line and pipe it through the Arduino to a PC. The old data slicers we used for POCSAG decoding back in the day worked on real serial ports only and these are hard to find on modern PCs. They don’t work on USB-to-RS232 adapters on account of using the RTS and CTS lines which gets lost when the FTDI or Prolific chip in the adapter does the conversion to USB. So I’ve worked on turning the Arduino into a 2-level FSK data slicer. Essentially it chops the synchronous data signal into slices of 8 bits and sends the 8 bits asynchronously over the serial connection, i.e. it wraps them with start and stop bits. You can then receive and decode the data stream from the Arduino using software called PDW which now has the ability to receive RS232, as well as the original data slicer mode. PDW works on Linux under Wine too.
The final stage will be to implement a POCSAG decoder on the Arduino itself. I’m not sure how easy it will be but I’ll give it a go.