jjwbruijn / POCSAG_FLEX_Modem

A 'universal' pager modem
11 stars 2 forks source link

POCSAG/FLEX Modem

A complete project for receiving pager data, and transmitting POCSAG/FLEX data to old pagers.

Caution:

Parts required:

How it works

The modem uses a RF4463F30 wireless module (NiceRF) https://www.tindie.com/products/nicerf/rf4463f30-1w-wireless-transceiver-module/ . Inside is an Silicon Labs Si4463 and a PA, and you can use it to broadcast pretty far-ish. Haven't checked the output yet, but it is a pretty cheap module and you may need to add output filters to avoid splatter on other frequencies. The module allows frequencies up to 1050 Mhz, this should cover (nearly?) all pager bands. While the modules may be optimized for specific frequency bands, they will happily transmit outside of their optimum band. Range will be severly reduced though.

The modem supports:

Technically the module should be capable of transmitting ERMES data too; I haven't implemented this due to the absence of any working ERMES networks, and I don't have any ERMES pagers in my collection. I'd love to implement ReFLEX (two way paging), but I can't find ANY relevant data/protocol info. There's some stuff in Motorola patents, but it's hard to find anything meaningful.

POCSAG is easy and straightforward; it's not synchronized and the pagers listen regularly. The length of the POCSAG preamble is pretty long, and the pagers will happily sync and receive info. They will display a little antenna symbol if they don't see any pager traffic for some time.

The Motorola FLEX protocol is a synchronous protocol; this has a major drawback: if a pager is sync'ed to your network, it will remain synced until it times out, not receiving a couple of frames. This means:

To help keep pagers happy, the modem will regularly send empty/idle frames on frequencies/frames that have been used to send messages to pagers.

The modem is capable of syncing-up to existing FLEX pager networks, and send on their frequencies, in their timeslots. I've never tested this, and neither should you.

How to use

For RX purposes there's somewhat of a web-interface, at /index.html, but you'll need to fill in the IP address of the device in main.js. this is what it looks like )

Adding Frequencies

The RF4463 in the modem uses config files generated by the WDS utility ( https://www.silabs.com/documents/login/software/WDS3-Setup.exe ) Click 'Simulate Radio', and select the Radio Configuration Application for the RF4463. You can use the included XML templates as a starting point, just add the frequency and hit 'Generate source'. Name it following the naming convention used by the other files in the folder, and use the included php-file to generate a rfconfig.h-styled file to use in the firmware.

Note: Not all frequencies need to be added; if you entered the channel spacing correctly, the firmware will find the channel based on the base frequency setting and spacing.

Tips and tricks

Limitations

Disclaimer

Errata

TODO