Difference between revisions of "Radio Group/Pager"

From Nottinghack Wiki
Jump to navigation Jump to search
(Created page with "We are (uhhh... Aaron) planning to run a small pager/POCSAG transmitter from Nottingham Hackspace. This will have a maximum transmit power of 0.1w")
 
m (add break before mqtt topics section)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
We are (uhhh... Aaron) planning to run a small pager/POCSAG transmitter from Nottingham Hackspace. This will have a maximum transmit power of 0.1w
+
{{project
 +
|primary=[[User:Asj|Asj]]
 +
|type=member
 +
|created=27/03/2024
 +
|location=Screen Printing Area
 +
|repo=[https://github.com/AaronJackson/rfm69-pocsag/ GitHub]
 +
|status=Complete
 +
|image=File:MB7PNH.JPG
 +
}}
 +
[[Category:Projects]]
 +
 
 +
We have a pager transmitter running from within the hackspace running on 439.9875MHz (although it's not connected to DAPNET). The station has been allocated the callsign MB7PNH (Pager Nottingham Hackspace), and is built using an Adafruit Feather LoRa board, which has an RFM69 module. There are more details about this, and the PCB, on [https://aaronsplace.co.uk/blog/2024-03-30-adafruit-feather-32u4-lora-board-sending-pagers-pocsag.html Aaron's website].
 +
 
 +
Realistically, giving the hackspace a pager transmitter offers very little benefit. For some reason I am addicted to building useless infrastructure which serves little practical purpose.
 +
 
 +
The RFM69 only transmits at 100mW and its callsign (MB7PNH) is registered to me, Aaron, M6PIU. My personal transmitter at home is able to achieve roughly 1.5km of range, but the tall buildings filled with large metal structures likely reduces the performance of the hackspace transmitter substantially. I've yet to perform any testing to see how far the range might be, but it should easily cover any pages inside or immediately outside the hackspace.
 +
 
 +
== I want to receive pager messages! ==
 +
 
 +
[[File:Hackers-1995-pager.jpg|thumb|left|Screen grab from the film Hackers (1995) in which a spray painted Motorola Advisor says "Grand Central - hack the planet"]] Of course you do, pagers are very cool. While someone did manage to [https://twitter.com/ZhaoFen37759626/status/1252544382265208832 modify the Motola Advisor] (which has a cult following, thanks to the film Hackers), it might not be well documented how to do so. It likely requires two crystals to be replaced with very specific values. However, not all hope is lost. Modern pagers are still manufactured and can be easily configured to use the appropriate frequency. One such example is the [https://www.alphapoc-europe.de/Alphapoc-pager-602R AlphaPoc 602R], although an almost identical model (possibly OEM) can be found on AliExpress slightly cheaper.
 +
 
 +
If you just want to mess about and already have a Flipper Zero, you can install the POCSAG application using the Flipper app on your phone. This needs a [https://github.com/xMasterX/flipper-pager small config tweak] to add the appropriate frequency to your config file. This will let you sniff (all) pager messages sent on that frequency using the hackspace's transmitter. The main disadvantage of this is that you'd have to leave the POCSAG app running whenever you want to receive pager messages.
 +
<div style="clear:both;"></div>
 +
 
 +
== MQTT Topics ==
 +
 
 +
'''Transmission of pager messages using MB7PNH without an amateur radio license is against the law''' - these topics are not listed on [[MQTT Topics]] or use the <code>nh/</code> topic prefix for that reason. You must have an amateur radio license to transmit messages via this node. With those warnings out of the way, there are a few topics defined which are accessible from [[JARVIS]].
 +
 
 +
{| class="wikitable"
 +
|+ POCSAG MQTT Topics
 +
|-
 +
! Topic !! Description
 +
|-
 +
| <code>pocsag/send</code> || Sends a pager message to a specific RIC. The RIC and message are separated with a pipe symbol e.g. "300424&#124;Hello Aaron!"
 +
|-
 +
| <code>pocsag/power</code> || Taking a value of either "ON" or "OFF" - this can be used to power down the transmitter if there is an issue (this is a requirement for unattended nodes).
 +
|-
 +
| <code>pocsag/status</code> || Sending an empty message to this will return:
 +
* the number of transmitter messages (<code>.../tx_count</code>),
 +
* the reconnect count (<code>.../reconnects</code>), and,
 +
* the power status (<code>.../power</code>).
 +
It's probably worth subscribing to <code>pocsag/status/#</code> if you want these.
 +
|}
 +
 
 +
(Assuming you have an amateur radio license...) You can transmit a pager message by logging into [[JARVIS]] and running
 +
<code>
 +
mosquitto_pub -t pocsag/send "300424&#124;Hello Aaron!"
 +
</code>
 +
If you're paging another member, you should include your callsign at the end of the message so the recipient knows who sent it.
 +
 
 +
== RICs ==
 +
 
 +
The addresses for these have been generated randomly. There is nothing stopping you from programming a pager to receive messages as these RICs, if you happened to have a pager and wanted to receive notifications while you're in the space. You do not need an amateur radio license to receive pager messages. 👀
 +
 
 +
{| class="wikitable"
 +
|+ RICs
 +
|-
 +
! RIC !! Purpose
 +
|-
 +
| 754542 || Receive alerts for [[Hackspace Instrumentation]], e.g. service becomes unavailable or back up again. This was added to the [[Discord]] bot as it was already processing these status messages.
 +
|-
 +
| 307040 || Hackspace Doorbells, also sent via [[Discord]] bot.
 +
|-
 +
| 224 || Automatic date and time. This is compatible with AlphaPoc (and similar pagers). Not sure about others... This can actually be sent to any RIC that the pager is subscribed to - it just has to be in the right format to set the date/time, and won't result in a notification appearing. It's sent from a shell script every two hours. This is literally just <code>mosquitto_pub -t 'pocsag/send' -m "224&#124;YYMMDDHHMMSS$(date +%y%m%d%H%M%S)"</code>
 +
|}
 +
 
 +
The members below use the following RICs:
 +
 
 +
{| class="wikitable"
 +
|+ Member RICs
 +
|-
 +
! RIC !! Who
 +
|-
 +
| 300324 || Aaron
 +
|-
 +
| ? || Dan
 +
|}
 +
 
 +
== Responding to a failure ==
 +
 
 +
If there is a failure with this pager node, or it's reported that it is causing interference, it should be powered off immediately. If physical access is available, this can be done by unplugging the pager. If it needs to be done remotely, a message can be sent over MQTT to turn off voltage regulator on the Adafruit Feather. This can be done from jarvis by running
 +
 
 +
<code>
 +
mosquitto_pub -t pocsag/power -m OFF
 +
</code>
 +
 
 +
The default state after plugging in the transmitter is off and if the connection the MQTT server is lost, the power is fail safe to off. This is done by the ESP8266 pulling the Adafruit Feather's ENable pin low, shutting off the 3.3v regulator, which powers the Feather's processor and the RFM69 module. A separate voltage regular taps the voltage off USB in order to keep the ESP8266 powered.

Latest revision as of 19:28, 22 April 2024

Pager
MB7PNH.JPG
Primary Contact Asj
Created 27/03/2024
Completed {{{completeddate}}}
Dormant {{{dormantdate}}}
Version {{{version}}}
Members {{{members}}}
Manufacturer {{{manufacturer}}}
Model {{{model}}}
Location Screen Printing Area
GitHub / Repo GitHub
Status Complete
Type Members Project
Live Status {{{livestatus}}}
QR code

We have a pager transmitter running from within the hackspace running on 439.9875MHz (although it's not connected to DAPNET). The station has been allocated the callsign MB7PNH (Pager Nottingham Hackspace), and is built using an Adafruit Feather LoRa board, which has an RFM69 module. There are more details about this, and the PCB, on Aaron's website.

Realistically, giving the hackspace a pager transmitter offers very little benefit. For some reason I am addicted to building useless infrastructure which serves little practical purpose.

The RFM69 only transmits at 100mW and its callsign (MB7PNH) is registered to me, Aaron, M6PIU. My personal transmitter at home is able to achieve roughly 1.5km of range, but the tall buildings filled with large metal structures likely reduces the performance of the hackspace transmitter substantially. I've yet to perform any testing to see how far the range might be, but it should easily cover any pages inside or immediately outside the hackspace.

I want to receive pager messages!

Screen grab from the film Hackers (1995) in which a spray painted Motorola Advisor says "Grand Central - hack the planet"

Of course you do, pagers are very cool. While someone did manage to modify the Motola Advisor (which has a cult following, thanks to the film Hackers), it might not be well documented how to do so. It likely requires two crystals to be replaced with very specific values. However, not all hope is lost. Modern pagers are still manufactured and can be easily configured to use the appropriate frequency. One such example is the AlphaPoc 602R, although an almost identical model (possibly OEM) can be found on AliExpress slightly cheaper.

If you just want to mess about and already have a Flipper Zero, you can install the POCSAG application using the Flipper app on your phone. This needs a small config tweak to add the appropriate frequency to your config file. This will let you sniff (all) pager messages sent on that frequency using the hackspace's transmitter. The main disadvantage of this is that you'd have to leave the POCSAG app running whenever you want to receive pager messages.

MQTT Topics

Transmission of pager messages using MB7PNH without an amateur radio license is against the law - these topics are not listed on MQTT Topics or use the nh/ topic prefix for that reason. You must have an amateur radio license to transmit messages via this node. With those warnings out of the way, there are a few topics defined which are accessible from JARVIS.

POCSAG MQTT Topics
Topic Description
pocsag/send Sends a pager message to a specific RIC. The RIC and message are separated with a pipe symbol e.g. "300424|Hello Aaron!"
pocsag/power Taking a value of either "ON" or "OFF" - this can be used to power down the transmitter if there is an issue (this is a requirement for unattended nodes).
pocsag/status Sending an empty message to this will return:
  • the number of transmitter messages (.../tx_count),
  • the reconnect count (.../reconnects), and,
  • the power status (.../power).

It's probably worth subscribing to pocsag/status/# if you want these.

(Assuming you have an amateur radio license...) You can transmit a pager message by logging into JARVIS and running mosquitto_pub -t pocsag/send "300424|Hello Aaron!" If you're paging another member, you should include your callsign at the end of the message so the recipient knows who sent it.

RICs

The addresses for these have been generated randomly. There is nothing stopping you from programming a pager to receive messages as these RICs, if you happened to have a pager and wanted to receive notifications while you're in the space. You do not need an amateur radio license to receive pager messages. 👀

RICs
RIC Purpose
754542 Receive alerts for Hackspace Instrumentation, e.g. service becomes unavailable or back up again. This was added to the Discord bot as it was already processing these status messages.
307040 Hackspace Doorbells, also sent via Discord bot.
224 Automatic date and time. This is compatible with AlphaPoc (and similar pagers). Not sure about others... This can actually be sent to any RIC that the pager is subscribed to - it just has to be in the right format to set the date/time, and won't result in a notification appearing. It's sent from a shell script every two hours. This is literally just mosquitto_pub -t 'pocsag/send' -m "224|YYMMDDHHMMSS$(date +%y%m%d%H%M%S)"

The members below use the following RICs:

Member RICs
RIC Who
300324 Aaron
? Dan

Responding to a failure

If there is a failure with this pager node, or it's reported that it is causing interference, it should be powered off immediately. If physical access is available, this can be done by unplugging the pager. If it needs to be done remotely, a message can be sent over MQTT to turn off voltage regulator on the Adafruit Feather. This can be done from jarvis by running

mosquitto_pub -t pocsag/power -m OFF

The default state after plugging in the transmitter is off and if the connection the MQTT server is lost, the power is fail safe to off. This is done by the ESP8266 pulling the Adafruit Feather's ENable pin low, shutting off the 3.3v regulator, which powers the Feather's processor and the RFM69 module. A separate voltage regular taps the voltage off USB in order to keep the ESP8266 powered.