
Show HN: Record and share police/fire radio systems - robotastic
https://openmhz.com/
======
robotastic
If you are interested in trying to listen your local radio system, try out
Trunk Recorder: [https://github.com/robotastic/trunk-
recorder](https://github.com/robotastic/trunk-recorder) It works with the
cheap $20 RTL-SDR dongles.

~~~
madengr
Cool! I last played with it a couple of years ago. Will have to mess with it
again. Great work!

Do you know if the newer versions of RPi or other small boards have enough
power to run this (i.e. dedicated RX feed nodes sort of like the ADSB RX
nodes)? I know DSD is pretty processor intensive.

~~~
robotastic
Thanks! So I have been playing with it on a RPi3. There are instructions here
on how to build for the RPi: [https://blog.hypriot.com/post/building-a-64bit-
docker-os-for...](https://blog.hypriot.com/post/building-a-64bit-docker-os-
for-rpi3/)

It has about enough CPU to handle recording about 2 streams at the same time.
I think part of the problem is that Raspbian does not have the GCC flags
optimized for the processor in the RPi3 and doesn't have 64bit enabled. I
played a little with this image:
[https://blog.hypriot.com/post/building-a-64bit-docker-os-
for...](https://blog.hypriot.com/post/building-a-64bit-docker-os-for-rpi3/)
and it seemed to help a bit, but I didn't see huge gains.

People are using it with the ODroid, and I think they are able to do about 4
simultaneous recordings at the same time.

~~~
madengr
Are you using polyphase channelizer now, as opposed to individual XFIR tuners?
If so, does that still provide better performance given sparsely occupied
channels?

~~~
robotastic
Unfortunately, I wasn't able to find a nice generic way to make it easy to
configure the PFBs. There is a good thread on it here, with some sample code:
[https://github.com/robotastic/trunk-
recorder/issues/76](https://github.com/robotastic/trunk-recorder/issues/76) If
I can get a block of free time I am going to try and take another tilt at it.

I did switch to FFT based filters and that helped a lot. CPU requirements are
a lot less. Using RTLs with 2M sample size, instead of SDR more bandwidth also
helps. It is a poor mans version of HW-based channelization.

------
mschuster91
Interesting. I thought that Germany was the last holdout of analog unencrypted
cop radio - we switched to TETRA (digital and especially encrypted) some years
ago.

Brings back some fun memories...

~~~
CamperBob2
We have unencrypted police radio around here, but the most common thing you
hear the cops say to each other is "Call me on my cell." Yay, transparency.

~~~
movedx
Certainly anti-transparency, but I'd say it's probably just easier for them.
With a mobile (cell) phone call they can go hands free and talk in real-time
in full duplex. That sounds better than waiting for the other party to finish
and then pressing a button to talk to them... and using radio lingo.

------
mmastrac
I've been dabbling in this area with a friend and this+trunk-recorder looks
amazing.

The other solutions we ran across (Unitrunker, DSDPlus) are all built on
rickety virtual audio cables running in Windows. They _work_, but just barely
and are very brittle.

~~~
madengr
This works well; at least version 2 when I last tried it in the fall:

[https://github.com/DSheirer/sdrtrunk/blob/master/CHANGELOG](https://github.com/DSheirer/sdrtrunk/blob/master/CHANGELOG)

~~~
finnn
Something trunk-recorder does that sdrtrunk doesn't (appear) to do is work
with multiple radios simultaneously. Each cheap SDR is only capable of
receiving like 2MHz at a time, but if I combine like 6 of em I can cover most
of the local trunked emergency radio system

~~~
codecamper
Are you saying 6 is all you need for most locales? Or that is the case in your
area?

~~~
finnn
sorry, should have been more clear. 6 was what I need for my area.

------
beezle
Somewhat tangential, really glad people do this type of thing. I have an app
(Scanner Radio) and I have it set to trigger an alert when a channel hits a
predefined number of listeners, aka something bad going down.

------
ChuckMcM
This is the amazing power of software defined radio. My favorite is to pick
your 4 or 5 favorite FM radio stations and then have your 'radio'
automatically play only ones that are _not_ playing commercials. :-)

~~~
codecamper
How would you know when it is playing a commercial? Commercials are at
predefined times? There is a DB of the times? Or the software just figures out
its a commercial (higher volume?)

~~~
ChuckMcM
for 70's/80's rock its fairly melodic and the spectrogram for music is pretty
distinct from commercials. But when I get some time I think I'll hook it up to
some RNN code and 'train' it using a button.

~~~
jsmthrowaway
During network programming, act on subaudible cue tones. Sometimes the
affiliate relays will let a little bit of a tone leak before acting, and you
can use the same cue. If someone's driving the bus by hand, you'll definitely
hear them. This will serve you well during football games to remove local
commercials, at least, though increasingly local breaks come with a 120+
network avail before the tones fire and the affiliate takes over, so your
training would still be useful.

When you hear "after these words from your local station," watch for < 100 Hz
tones. They're high amplitude and you won't be able to miss them; VU meters
will often peg hard right during a tone, depending on the network. Should be a
tone out and a tone in, and it is modulated so it'll be quite apparent.

Another helpful avenue to explore would be in-stream RDS metadata, if you're
working with typical FM. It lags a bit, but if you buffer a minute back or so
you can look for transitions when the RDS data changes. Then you can use the
same trick a delay uses to backfill its own buffer, and pad silences to
restore your buffer. You don't care about dead air in your application, so you
can be more aggressive than broadcast equipment can. (Talk radio runs >30sec
behind, usually, and the "dump" button on a delay flushes the entire buffer,
synchronizing air and program. It'll then slightly extend silences to get air
"behind" program again. It has a little screen on it indicating how far back
it is, and it's cool to watch it zoom back when people stop talking. If you
hear a station dump delay, you'll notice they won't take callers for a couple
minutes; this is why.[0])

Teach your setup to listen for EAS tones and you're well on the way to a
startup of some kind. I think this was attempted in the past, actually...

[0]:
[https://en.wikipedia.org/wiki/Broadcast_delay#Computerized_d...](https://en.wikipedia.org/wiki/Broadcast_delay#Computerized_delay)

------
madengr
This is a really awesome application of SDR. It has really grown since being
presented at the GNU Radio conference a few years ago.

------
hoodoof
Does HAM radio still exist?

Would this capture it?

~~~
robotastic
It would depend on what type of modulation they are using. If it is narrow
band FM, it should work fine. There are probably lighter weight solutions
though. If you wanted to use a RTL dongle, you would also need an upconverter,
since the dongles can't capture frequency that low:
[http://www.nooelec.com/store/ham-it-
up.html](http://www.nooelec.com/store/ham-it-up.html)

