Allows to locally use a Unipager/DAPNET transmitter, through DTMF tones, even without an internet/hamnet connection.
This is added on top of an existing unipager POCSAG audio transmitter. On the Rx path, a MT8870 is connected, which decodes DTMF tones. An additional Arduino takes care of translating this logic into Serial, and spits the decoded digits to the Raspberry Pi running unipager. A small python script then takes this info and transmits canned messages to unipager via a Websocket connection
You can send messages via DTMF by dialing:
#RIC*MessageNr#
You can set up to 90 canned messages. 91 to 99 have been blocked for "special" messages. So far, those have been implemented:
- 97: Restart Unipager (although I'd change it to something else, to keep people from always restarting unipager...)
- 98: Unipager status (server, callsign, connection status)
- 99: System status (CPU temp, IP Address)
If you enter 0 as a RIC, it will default to a predefined RIC you can set up beforeheand. This is just to avoid typing a long RIC when you're making tests :)
No additional libraries are required. Just wire the MT8870 as explained on the sketch, upload it and you're good to go. Confirm consistent DTMF decoding with the serial monitor. Connect the Arduino via USB to the Rpi, or directly through the GPIO (be careful about the logic levels!).
Install unipager and set it up the classic way.
Install pip and git:
sudo apt install git pip
Install required python modules:
sudo pip install websocket-client pyserial
Edit interface.py and change the serial interface if needed (by default: first USB serial adapter). If you're using directly the GPIO UART, you might need to disable the serial console or others, I haven't looked it up just yet. Edit the canned messages as your heart desires. Edit the default RIC (when entering RIC 0 in the DTMF request)
Start the script, it should now be ready to receive DTMF calls.