pocsag(1)

πŸ“¦ version 0.0~git20251206.0c72677, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

okay bestie, welcome to pocsag(1) β€” the General Commands Manual entry for pocsag, and I am literally so excited to walk you through it πŸ’–

pocsag β€” the official docs live right here: http://osmocom-analog.eversberg.eu/docs/


✨ SYNOPSIS ✨

pocsag -k <kanal/channel> -k 466.230 | -k list [options] [station_id]

πŸŽ€ Global options πŸŽ€

  • -h --help β€” shows you this help. that's it, that's the whole job πŸ’…
  • --config [~/]<path to config file> β€” hand it a config file to use. if it starts with ~/, the path is at your home dir. every line in the config file is exactly one option, and you must NOT put - or -- in there! default: ~/.osmocom/analog/pocsag.conf
  • --no-config β€” even if a config file exists, don't use it. we're ignoring it, periodt.
  • -v --verbose <level> | <level>,<category>[,<category>[,...]] | list β€” use list to get a list of all levels and categories. Verbose level: a digit for the debug level (default = '3'). Verbose level+category: the level digit followed by one or more categories β†’ if no category is specified, all categories get selected. slay.
  • -v --verbose date β€” show the date with the debug output πŸ—“οΈ
  • -k --kanal <channel> β€” channel (German = Kanal) number of "Sender" (German = Transceiver)
  • -k --channel <channel> β€” same thing, English edition 🫢
  • -a --audio-device hw:<card>,<device>[/hw:<card>.<rec-device>] β€” sound card and device number (default = 'hw:0,0'). you may specify a different recording device by using /. Don't set it for SDR!
  • -s --samplerate <rate> β€” sample rate of the sound device (default = '48000')
  • -i --interval 0.1..25 β€” interval of the processing loop in ms (default = '1.0' ms). use 10 to drastically reduce CPU usage. in case of buffer underrun, increase the buffer accordingly 🫠
  • -b --buffer <ms> β€” how many milliseconds are processed in advance (default = '50'). a buffer below 10 ms requires a low interval like 0.1 ms.
  • --rx-gain <dB> β€” raise/lower the receiver's RX level by the given gain in dB. (works with sound card only.)
  • --tx-gain <dB> β€” raise/lower transmitters's RX level by the given gain in dB. (works with sound card only.)
  • -e --echo-test β€” use the echo test, to send back audio from the mobile phone's microphone to the speaker. (German: 'Blasprobe').
  • -c --call-device hw:<card>,<device>[/hw:<card>.<rec-device>] β€” sound card and device number for the headset (default = ''). you may specify a different recording device by using /.
  • --call-samplerate <rate> β€” sample rate of the sound device for the headset (default = '48000')
  • --call-buffer <ms> β€” how many milliseconds are processed in advance (default = '50')
  • -x --osmocc-cross β€” enable built-in call forwarding between mobiles. be sure to have at least one control channel and two voice channels. alternatively use one combined control+voice channel and one voice channels.
  • -o --osmocc-sock β€” disable built-in call control and offer a socket
  • --cc "<osmo-cc arg>" [--cc ...] β€” pass arguments to the Osmo-CC endpoint. use -cc help for a description.
  • --no-l16 β€” disable the L16 (linear 16 bit) codec.
  • -t --tones 0 | 1 β€” connect the call on setup/release to provide classic tones towards the fixed network (default = '1')
  • -l --loopback <type> β€” loopback test: 1 = internal | 2 = external | 3 = echo
  • -r --realtime <prio> β€” set prio: 0 to disable, 99 for maximum (default = 0)
  • --fast-math β€” use the fast math approximation for slow CPU / ARM based systems.
  • --write-rx-wave <file> β€” write received audio to the given wave file.
  • --write-tx-wave <file> β€” write transmitted audio to the given wave file.
  • --read-rx-wave <file> β€” replace received audio with the given wave file.
  • --read-tx-wave <file> β€” replace transmitted audio with the given wave file.
  • --limesdr β€” auto-select several required options for LimeSDR
  • --limesdr-mini β€” auto-select several required options for LimeSDR Mini

🌈 SDR options 🌈

  • --sdr-soapy β€” force the SoapySDR driver
  • --sdr-channel <channel #> β€” give the channel number for a multi channel SDR device (default = 0)
  • --sdr-device-args <args> β€” optional SDR device arguments
  • --sdr-stream-args <args> β€” optional SDR device arguments
  • --sdr-tune-args <args> β€” optional SDR device arguments

all three of those take comma-separated stuff, like e.g. --sdr-device-args <key>=<value>[,<key>=<value>[,...]] ✨

  • --sdr-samplerate <samplerate> β€” sample rate to use with SDR. by default it equals the regular sample rate.
  • --sdr-lo-offset <Hz> β€” give a frequency offset in Hz to move the local oscillator away from the target frequency. (default = -1000000)
  • --sdr-bandwidth <bandwidth> β€” give the IF filter bandwidth to use. if you don't, the sample rate is used.
  • --sdr-rx-antenna <name> β€” the SDR device's RX antenna name, use 'list' to get a list
  • --sdr-tx-antenna <name> β€” the SDR device's TX antenna name, use 'list' to get a list
  • --sdr-clock-source <name> β€” the SDR device's clock sourc name, use 'list' to get a list
  • --sdr-rx-gain <gain> β€” the SDR device's RX gain in dB (default = 0.0)
  • --sdr-tx-gain <gain> β€” the SDR device's TX gain in dB (default = 0.0)
  • --write-iq-rx-wave <file> β€” write received IQ data to the given wave file.
  • --write-iq-tx-wave <file> β€” write transmitted IQ data to the given wave file.
  • --read-iq-rx-wave <file> β€” replace received IQ data with the given wave file.
  • --read-iq-tx-wave <file> β€” replace transmitted IQ data with the given wave file.
  • --sdr-swap-links β€” swap RX and TX frequencies for loopback tests over the air.
  • --sdr-timestamps 1 | 0 β€” use TX timestamps on the UHD device. (default = 1)

πŸ’œ Network specific options πŸ’œ

  • -T --tx β€” transmit the POCSAG signal on the given channel, to page a receiver. (default)
  • -R --rx β€” receive the POCSAG signal on the given channel, so we are the receiver. if none of the options -T nor -R is given, only the transmitter is enabled.
  • -B --baud-rate 512 | 1200 | 2400 β€” choose the baud rate of the transmitter.
  • -D --deviation wide | 4.5 | narrow | 2.5 | <other KHz> β€” choose the deviation of the FFSK signal (default 4 KHz).
  • -P --polarity -1 | nagative | 1 | positive β€” choose the polarity of the FFSK signal. 'negative' means that a binary 0 uses positive and a binary 1 negative deviation. (default negative KHz).
  • -F --function 0..3 | A..D | numeric | beep1 | beep2 | alphanumeric β€” choose the default function when a 7 digit only number is dialed. (default 0 = numeric)
  • -M --message "..." β€” send this message, if no caller ID was given or if the built-in console is used. (default "1234").
  • -L --language β€” translate German special characters from/to UTF-8.
  • -S --scan <from> <to> β€” scan through the given IDs once (no repetition). this can be useful to find the RIC of a vintage pager. note that scanning all RICs from 0 through 2097151 would take about 16.5 Hours at 1200 Baud and known sub RIC. use -F to select the function of the pager. short messages with 5 numeric or 2 alphanumeric characters are sent without increase in scanning time. the upper 5 digits of the RIC are sent as message, if numeric function was selected. the upper 3 digits of the RIC are sent as message (2 digits hexadecimal), if alphanumeric function was selected.
  • --padding 4 | 0 | ... β€” text message padding uses 4 (EOT) by default. old pagers want 0 (NUL).
  • File: /tmp/pocsag_msg_send β€” write "<ric>,0,message" to it to send a numerical message. write "<ric>,3,message" to it to send an alphanumerical message. alphanumeric messages may contain any character except LF and CR. any control character can be sent by using pointed brackets:
'<NUL>' '<SOH>' '<STX>' '<ETX>' '<EOT>' '<ENQ>' '<ACK>' '<BEL>'
'<BS>'  '<HT>'  '<LF>'  '<VT>'  '<FF>'  '<CR>'  '<SO>'  '<SI>'
'<DLE>  '<DC1>' '<DC2'  '<DC3>' '<DC4>' '<NAK>' '<SYN>' '<ETB>'
'<CAN>' '<EM>'  '<SUB>' '<ESC>' '<FS>'  '<GS>'  '<RS>'  '<US>'
'<DEL>'  Example: Hello,<LF><CR>World!'
  • File: /tmp/pocsag_msg_received β€” read from it to see received messages. πŸ‘€
  • station_id: give 7 or 8 digits of station ID β€” so you don't need to enter it for every start of this application. give 7 digits for a RIC with default function. give 8 digits for a RIC with function (append 0..3 or A..D).

πŸ¦‹ Keyboard, bestie πŸ¦‹

press digits '0'..'9' and then the 'd' key to dial towards a mobile station. press the 'h' key to hangup. press the 'w' key to toggle display of the RX wave form. press the 'c' key to toggle display of the channel status. press the 'm' key to toggle display of the measurement value. press the 'q' key to toggle display of the RX I/Q vector. press the 's' key to toggle display of the RX spectrum. press the 'b' key to remove the DC level. literally a whole vibe check on your radio πŸ’…πŸ”₯


that's the entire page, no notes, we kept every single flag, no cap 🫢

okay that's a wrap, bestie β€” this was the pocsag(1) page, straight out of the General Commands Manual, and we're signing off with all the kisses for the pocsag(1) fam πŸ’–πŸ‘‘β­