amateur radio repeaters

OpenRepeater Project goes Beta!

This afternoon I received an email from the OpenRepeater project.


They have their first PUBLIC BETA ready for RaspberryPi B+, BeagleBone Black, and Odroid C-1.

I’ve yet to try anything out yet, but am VERY anxious, as I’ve been eyeing this project for a while, hoping it still had a pulse. As it turns out, it’s VERY MUCH alive!

Even the write-up and setup instructions are well-laid-out, thorough, and simple. You can see them as well as download an image of your flavor of choice at:

I’m super excited and as I’m typing this, I’m signing up for the forums section on the site.


More to come, I am very sure!




KC8PBX Traverse City MotoTrbo Repeater – 442.2875

We’ve updated the Talk Groups that are in each TimeSlot for the repeater here in TVC.
Here are the updated settings:

TimeSlot TalkGroup Name Type Purpose
1 3  N.America PTT-activated North America
1 13 WW English permanent World-Wide English-Speaking
1 100 Tech-Talk permanent Technical Discussions
1 3169 Midwest permanent MI-IL-WI-OH area
2 2 N. Michigan permanent Northern Michigan
2 8052 CMEN-MI-SW permanent Link to CMEN TS2/TG52


1) Added “Tech Talk” TG 100 on TS 1.  This is for discussing technical projects. There is a web blog that goes hand and hand with this talkgroup to promote sharing of technical ideas and networking with great people:  This TG uses open source DMRlink (not the C-bridge).  There are about a dozen repeaters on this TG currenetly with plans to double that number as a maximum.

2) Midwest 3169 has moved to slot 1 also.

3) MI statewide is TS2 TG8052 which is connected to the CMEN (not DCI) network of 15 or so repeaters.  This maps to their TG52 on slot 2. (reasoning: CMEN used a slightly unorthodox talk group ID system, so DMR-MARC TG 8052 (coordinated) maps to their TG 52.


Also, here is an updated coverage map!

KC8PBX Coverage Map
Predictive coverage of the KC8PBX MotoTrbo repeater – Courtesy Radio Mobile Online –

Joe N8CN

amateur radio

syncing mp3 files to the cloud!

So, one of the disappointments I have found with broadcastify / radioreference streaming is the lack of being able to listen to the archives of the stream.  (of course, by “disappointment” I mean “darn, I wish it was free.” I completely understand the need for the company to make money, and the need to offer “premium services” to achieve that. I digress.)

Since I’m generating mp3 dump files locally, and I’m trimming silence, why not pump these to the cloud into a shared folder?

Enter Copy by Barracuda to solve my issues. There’s a Linux version of the end-user client program.


Setting it up was trivial, I downloaded Copy.tgz and expanded it into a folder.

I made my synchronized folder “~/Copy” for simplicity.

For further simplicity, I moved the x86 binary folder to ~/.copy/ where config is kept (also a good thing to note)

Once it’s set up, invocation is simple. I’m running it live currently, under a screen session, and will probably daemonize it soon. For now, on a screen session, I invoke with:

~/.copy/CopyConsole -root=~/Copy


So, now after midnight, I changed the “dump path” of the finished file from the previous day to go to ~/Copy/Scans/2015/ where it is then detected, and synchronized to “the great big cloud in the sky.”


check it out here:

You’ll find a 2014 and a 2015 directory. There’s also a Misc directory (empty as of now) because I had some files I didn’t datestamp.


Sure, this isn’t as elegant as whatever time-stamped version of the “scanner wayback machine” that broadcastify uses, but it works and it didn’t cost me anything, and I own the archives. Always handy incentives. 🙂



Joe N8CN



amateur radio Linux streaming

Using sox to trim silence out of the middle of a long .mp3

So, one of the things I’ve done lately is to set up two scanners at my Mom’s house. Each scanner listens to one of the CARC Repeaters in Traverse City, MI. Each scanner feeds one side of a stereo input on a machine running Linux.

You can listen to the live-stream result over at or if you search for the W8TCM callsign. Or use these links:

Left Channel is fed from the scanner listening to 146.860MHz.
Right Channel is fed from the scanner listening to 442.500MHz.

There are also apps in the IOS Apple App store and Android Google Play store, which are free, that can play these streams for W8TCM (just install the app and search for W8TCM)

Ok, now that we’re done advertising, here’s the techie part.

Here’s how this is configured:

    • Ubuntu 13.10 “Saucy Salamander”
    • darkice is installed, config here:
duration        = 0        # duration of encoding, in seconds. 0 means forever
bufferSecs      = 5         # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected

device          = plughw:0,0
sampleRate      = 22050     # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample   = 16        # bits per sample. try 16
channel         = 2         # channels. 1 = mono, 2 = stereo

bitrateMode     = cbr
bitrate         = 32
format          = mp3
quality         = .2            #1.0 is max.
lowpass         = 6500          #cuts frequencies above 5000 Hz
highpass        = 120           #cust freq below 120 Hz
server          = [redacted]
port            = 80
password        = [redacted]
mountPoint      = [redacted]
name            = W8TCM
description     = W8TCM Repeaters, Traverse City MI
url             =
genre           = Scanner
public          = yes
localDumpFile   = /tmp/scanners.mp3
fileAddDate     = yes
fileDateFormat  = -%Y%m%d_%H%M%S
    • crontab: 0 0 * * * /etc/darkice/ 
service darkice stop
sleep 1
touch /tmp/yo
sleep 1
service darkice start
sleep 1

    • [edit: there is more to this script, which moves the file to a location other than /tmp]

This is kinda where I left it, which was fine, I was busy. I checked a month later, and there was an issue..:

330M -rw——-  1 nobody nogroup 330M Feb  3 00:00 scanners-20150202_000007.mp3
330M -rw——-  1 nobody nogroup 330M Feb  4 00:00 scanners-20150203_000005.mp3
330M -rw——-  1 nobody nogroup 330M Feb  5 00:00 scanners-20150204_000005.mp3
So, there were files and files, 330 meg each. Each mp3 a 24hour dump of audio.
Now, I get how it would be cool to try to timestamp these with subaudio somehow, so that when I do the next step, I could preserve the timestamp for when things happen.
In fact, I really would love suggestions on how to do this.
For now, however, my disk is disappearing fast. I’d like to be able to archive each year on a DVD-DL at least. so, here’s what I came up with.
  • add another entry to crontab to invoke another script for this process, as we don’t want it to interfere with the restarting darkice part. Besides, it can really be done at any time.
  • Generate a noise profile from the dump file. This is important, as there is AC Hum in varying degrees on each channel, probably due to the age and quality of the scanning receivers. Here is how I generated the noise profile that will be used by our sox command:
    • Open one of the capture files with Audacity. Yes, it takes about 20 minutes to open up a 24-hr .mp3 in Audacity whether you make a copy or not. plan accordingly.
    • Find any chunk of 4-8 minute “silence” in the file, highlight, export, as mp3.Let’s call it “NOISE.mp3” to remind ourselves with all-caps that this could be an improved process.
    • sox NOISE.mp3 -n noiseprof
  • TO-DO: Since it’s possible that the noise profile will vary somewhat over time, and generating it is a manual process, what I’d really like to do is make a part of this script that tells sox to find a 5-minute chunk of audio in each file that has no amplitude above a threshold, export it as noise-(datestamp).mp3 and then run this noise profile routine on that silence chunk for each file processed. The result will be a higher quality de-noise process. But I digress, off to saving disk space.
  • sox scanners-20150204_000005.mp3 scanners-20150204_cut.mp3 noisered 0.21 silence -l 1 0.1 0.2% -1 1.5 0.2% pad 1.0
    • Let’s break this down.
    • From the sox man page: 
    • silence [-l] above-periods [duration threshold[d|%]
    •               [below-periods duration threshold[d|%]]
    • sox 
      • (source file name) 
      • (target file name) 
      • (command “noisered” for noise reduction) 
      • (noise profile file) 
      • (reduction amount is 0.21) 
      • (command “silence” to use the silence function) 
      • (-l option means to keep the below-periods amount of time intact for each silence period, otherwise known as breaks between chunks of audio separated by silence) 
      • (above-preiods 1 meaning that we trim silence from the beginning until we find non-silence) 
      • (0.1 is our duration, meaning we need 0.1 seconds of non-silence before trimming the previous silence) 
      • (0.2% is our threshold from our noise floor to trigger that there is something other than silence (aka: a signal) present to preserve (not trim).) 
      • (-1 is our below-periods, which when negative means to restart the processing of the silence function, and use the absolute value of -1 (which is 1) as the new above-periods from the restart point. This is the magic sauce making removal of silence in the middle of the file, over and over, possible without using the more-confusion “reverse” function of sox) 
      • (1.5, according to the sox manpage, should be our duration for below-periods, but remember, we restarted the process with -1 which became our new above-periods value of “1”. no matter, the duration here still means that while trimming silence from the middle of the file following a restart of the silence function, we’re going to leave 1.5 sec of what we consider “silence” before we trim again.) 
      • (Threshold is still 0.2%) 
      • (by the way, we want to add a second of silence at the beginning just to make it less jarring when played back. do this with the “pad” command and 1.0 is for 1 second.)
  • On the above, things highlighted with light blue are probably going to need a LOT of tuning. Things like your noise floor, audio quality, static, squelch, interference, sound card, cable quality– all that stuff will affect what you set for these values. The ones in light orange are related to timing of the cutting and what to leave as silence padding. The rest are file-operation specific.
  • Anyway, now with this scripted, I have darkice feeding the broadcastify servers AND making a local mp3 dump. Each night this file is split using crontab, and a new one started. Another set of scripts takes over and “compacts” the file down from a 24-hour mp3 which seem to be over 300MB each to varying-length mp3 files which, so far, depending on how much the systems are used, seem to range from about 9MB to 120MB.
  • Not bad, and saving disk. average is about 25meg per file. Using the 25meg per day average, we’re at about 9.125Gig per year of audio. Is it small enough to fit on a dual-layer DVD? No, not quite. But it’s close. I think I can just schedule offloading to a normal DVD each quarter. Every 3 months. So I didn’t meet my original goal of a DVD of audio per year, but this is still much more manageable.
I need to cite some very handy references for completing the above, as the sox man page alone was great, but just didn’t quite get me there if you know what I mean:
So, the above were extremely helpful in getting me there. I just didn’t find a good, concise, logical breakdown of what was doing what along my journey, and a google search for “using sox to trim silence out of the middle of a long mp3” just didn’t make the mark either. So there you go, for what it’s worth. 🙂
73, Joe N8CN
Digital Radio DMR MotoTrbo Traverse City

DMR-Marc MotoTrbo Traverse City repeater status report

DMR-MARC – Traverse City MI
KC8PBX 442.2875 +5 MHz Color Code 1

Time Slot #1 – Group Call 1 = Worldwide All Languages 
                (PTT activated with 5 min inactivity timeout)
Time Slot #1 – Group Call 3 = North America
Time Slot #1 – Group Call 13= Worldwide English
Time Slot #1 – Group Call 310= TAC 310 (PTT Activated with 5 min inactivity timeout)

Time Slot #2 – Group Call 2 = Northern Michigan Local
Time Slot #2 – Group Call 8052 = MI Statewide (Mi5)
Time Slot #2 – Group Call 3169 = Midwest Regional

You Must Have [ARS] Disabled Within Your Radio
Contact Name: Joe Erlewein, N8OUZ Email:
The repeater is on a 40ft tower South and West of downtown Traverse City. It has reportedly good HT coverage of the downtown and surrounding areas. We have received reports of good coverage in all directions by mobile users with mobile radios and magnetic/permanent vehicle antennas.

Program your radios: 442.2875+

Time Slot #1 – Group Call 1 = World Wide

Time Slot #1 – Group Call 3 = U.S. / English Speaking Countries
Time Slot #2 – Group Call 2 =  Chicagoland Repeaters Only
Time Slot #2 – Group Call 3169 =  Midwest Repeaters Only

Antenna is ~30ft near Barlow and South Airport in Traverse City, MI and covers downtown fairly well on mobile or HT on high power.
The repeater will be moving to a tower just South and West of downtown when the snow is gone. Power will be increased, HAAT will increase, and performance should be much better.
FYI the repeater callsign is currently KC8PBX as it is operated by the Houghton County Communications Authority which has a club callsign.


amateur radio Digital Radio DMR-Marc MotoTrbo repeaters Traverse City

MotoTrbo Traverse City repeater goes Beta-Online!

The N8OUZ/R DMR-MARC MotoTrbo repeater is on the air on 442.2875+ (input 447.2875).

you can find more info on DMR-MARC Here.

Currently on a temporary transmitter antenna and site, and with limited receive coverage, and limited transmit power.

But, it works, and you can test it.

Program your radios:
Time Slot #1 – Group Call 1 = World Wide
Time Slot #1 – Group Call 3 = U.S. / English Speaking Countries
Time Slot #2 – Group Call 2 =  Chicagoland Repeaters Only

The current transmit antenna is a J-pole at 40ft…. but…

Current Receive antenna, plugged
into the back of the repeater
in my basement..

The current receive antenna is a.. erm.. telescopic whip style scanner antenna standing… about seven inches tall.. plugged into the back of the repeater… in my basement…

Which might seem dumb…

But I can actually use the repeater reliably from work.
… how? I’m really not sure.. but.. I know TDMA has a lot better survivability than analog voice when it comes to getting through the noise floor in a usable way.

Check this out:

On the map, B is where I work, and A is the repeater’s home in my basement..

…I can use it!
With the HT on high power.
The HT on the right, in the picture!

Note the size of the antenna compared to the Yaesu. No vertical gain there at all..

Notice that the Yaesu HT sitting to the left of it is listening to an active signal, same frequency as the XPR 6550 HT on the right.. The signal is sometimes an S2. Usually S0 or S1, sometimes not even there.

Mind you, the length of the Yaesu HT’s antenna is more than three times as long as the Motorola’s!!!

If it were an analog signal, it would be unintelligible. But it is audible, clear, and readable.

I had the same experience on the drive in to work today. Notice on the map. Between “Best Buy” and the number 37 on the map above it, I was very shadowed due to the hills near where it says Grand Traverse Crossing and East/North of that. I had almost NO signal.. on my MOBILE radio with an external antenna in the car, I could barely hear the repeater’s signal. It was not present more than it was. if it was a voice, I would no way have been able to comprehend it. .. the Motorola HT, with just the stub duck, on the SEAT of my car, inside the car, just sitting there horizontally.. I could UNDERSTAND the audio coming out of it.

It’s been a good while since I’ve seen a digital mode so easily and obviously out-perform analog modes.  I’m very impressed.

I am anxious to finish getting the StationMaster antenna on the permanent tower, hardline up, and repeater moved to the final location…

tonight: duplexer fun! Perhaps even a better receive antenna. I still can’t believe it’s … usable! with no duplexer… from across town… from a whip in the basement!!




73 OM

It’s with a sad and heavy heart that I convey to you the passing of my Father, Dr. David L. Erlewein, N8CN, on 20 July 2012.

73 OM, You will be missed —

Love you Dad- 


amateur radio repeaters Traverse City

Repeaters in the Traverse City Area

** UPDATED 6/4/2012 **Here is a helpful spreadsheet that I started maintaining about a half year ago.
There is probably a lot of inaccurate information in this list, so mail me ( if you would like changes made.
This was compiled basically from dumping memories on my radio, cross referencing with web searches, etc. Nothing fancy.
What’s important is that right now (to my knowledge) the list of PL tone frequencies is accurate enough for use. Since things have been changing a bit in this regard in the region, I felt being a stenographer of sorts was necessary.
Hope you find it useful!
-joe / n8ouz