RTL-SDR on the Cheap SWL Fest Links

As promised during Thursday afternoon’s presentation at the SWL Fest, here are the links for RTL software and info mentioned. If you attended the presentation, I hope that you enjoyed it and found it useful.

SDR#, a flexible SDR app for Windows with MANY plugins
DSD+, decodes P25, DMR, Fusion, DStar (data only), and others
Virtual Audio Cable, a virtual patch cable to send the output of one program into the input of another
Unitrunker, analog and digital trunk tracker with lots of data decoding
HDSDR, a software radio that can also make use of the RTL-SDR hardware
Linrad, for those who prefer to work in a Linux or Mac environment
DAB Player, requires the original (not Zadig WinUSB drivers

The Big List of RTL Supported Software
RTL-SDR.ru, in Russian, but Google Translate is your friend.

Update: I have added the video narratives as a YouTube playlist.

Correction: During the talk I stated that I thought the MCX connector used on the earlier DVB-T dongles appeared to be the same as the connector used on some Sirius satellite receivers.  I just took a close look and realized that while they are somewhat similar in appearance, the Sirius connector is larger and is actually an SMB connector.

Some document management advice for the White House

USA Today reports that in at least 5 instances, copies of Executive Orders published at whitehouse.gov do not match the official versions published in the Federal Register. This is a practical use case where the White House staff should invest in two IT staples — document management software and digital signature software.

Document management software allows for tracking history of changes and approvals to content such as Executive Orders. Microsoft’s widely deployed Sharepoint is just one solution that can be used for document management. Digital signatures are a feature of Public Key Infrastructure and document signing certificates are widely available. Microsoft Word and Libre Office both support document signing.

Mr. President, your Chief Information Officer should be able to quickly help you manage this mess. If he cannot, please find one who can.

On the current unrest

The liberal-left media, it seems to me, fails to understand the motivation behind all of the on-the-street in-your-face unrest by progressives against the new Washington Republican regime. Yes, folks are angry about the policies, but that is not why they are taking to the streets in the cold of winter. I believe the unrest to be about hypocrisy, self-dealing, and ultimately, the bad behavior of Donald Trump.

Policy differences we can discuss. But would you raise your son to emulate Donald Trump? Would you leave your daughter alone with Donald Trump?

Donald Trump may already be on his way to impeachment. He has not been transparent in his finances. We do know that there is clearly a conflict of interest in his lease for his new DC hotel. We don’t know the extent of his dealings with foreign regimes. We know for sure that he thinks he can put a stack folders on a table at a press conference to try to fool and impress us.

The right wing controlled Congress is willing to suspend long standing rules to get their way. That is bad for the nation no matter who is in power. The Republicans have the nerve to demand speedy acquiescence in the approval of unqualified Cabinet Secretaries as they disregard our fresh memory of how they ignored a moderate and eminently qualified Supreme Court nominee for 10 months.

Their President has invited white supremacists into the seat of decision making. He cannot seem to be civil to friendly leaders of other nations. He has appointed Cabinet members who either have no experience in the function that they are supposed to manage or want to abolish that function. He is so insensitive to our friends that his appointee as Ambassador to the European Union is known to be an advocate for the dismantling of the EU and the Euro currency.

Trump is a nasty, insecure, narcissistic, lying, crooked shell of a leader. He does not care that the First Amendment precedes the Second Amendment in the interest of a free press. He can’t control his Tweets nor his outbursts. He shrugs off societal norms of behavior as an unnecessary impediment on his crusade to smother dissent. He is a loser and the nation loses.

Then, there are those false Christians who endorse this behavior because, they believe, Trump will make America great (again). I believe he will lead us straight to hell.

Progressives, however, know that this country is (and has been) great, despite its many flaws. And they want to make it better. They certainly don’t want this petulant child to destroy progress that we’ve made toward economic and racial equality. We are reminded every time he opens his ignorant mouth to attack the “media”, or to start a tweet war with a celebrity or foreign leader, that he and his ilk menace our nation.

That is why the fight has been taken to the street.

Chromecast and Google Home — A Great Combination

Two new toys showed up at the front door today. I took my time deciding between Amazon Echo and Google Home. I decided that Google Home was the my best choice. When I went to order, I saw that the Google Store is offering a discount on a Chromecast dongle purchased along with Home. The discount of $15 is available through midnight Pacific time on January 28.

Google Home is about what I expected, although it currently has some limitations. If your content is on Pandora, YouTube, or Netflix you will love the device. It cannot currently access content on Hulu or the various broadcast network apps. However, you can still access the content via your mobile device and then press the “Cast” button to view the content on your big screen.

The sound quality of Home is good for the size of the device. Setup of home is fairly easy using the Android app. Chromecast connects via an HDMI port but just hangs there. It ought to have some way of attaching it to the rear of the monitor. I may try some 3M double faced tape.

Home integrates with my Google calendar, so in the morning I can say, “Hey Google, what is my day like?” I’ll hear appointments, the weather, and the NPR news. It is supposed to be able to support multiple identities but I haven’t tried this yet. Tina will want to be able to hear her calendar too.

I tried listening to a number of different audio sources via Pandora and TuneIn. It all worked, except for CKTB, a news talk station in the Niagara area that I enjoy. Google thinks I am asking for CK TV and cannot locate it. I was able to cast content from the CBS app installed on my phone with little effort.

I’m sure I’ll learn more about the capabilities of Google Home and Chromecast as the days go on. Home is said to rely completely on the cloud so lacking features such as Hulu ought to be remedied in short order.

If you’re concerned about privacy, you should know that all your searches are logged, but can be deleted via the Google Home Android app. The device also sports a mute button should you wish to prevent Home to hearing private conversations.

If you enjoy varied media content and like to experiment, Chromecast and Home make a great combination and will provide hours of enjoyment.

Running Brandmeister XTG Dialer

[Update January 17, 2017:

The Brandmeister XTG Dialer (bmxtg.py) is now easier to configure. The program itself no longer needs to be edited to get it up and running. All configuration items have been moved to separate files. Download version 1.1 and be sure to read and understand the README file before you begin.]

I’ve received some inquiries on how to get the Brandmeister XTG Dialer script running. Assumptions here are that you can navigate your way around Linux, you know how to use a text editor, and you can look at the python program and figure out how to make a simple change.

1 — Copy the bmxtg.py program file along with the three configuration files (talkgroups.com, buttons.conf and masters.conf) to your home directory. It doesn’t even need to be on the same computer that your dv4mini is connected to, as long as you are behind the same NAT router.

2 — Figure out the URL for the BM Master that you are currently connected to. To do this look at the Brandmeister Masters page. Looks through the list, locate your master, click the status button and note the URL host portion before the first slash. It could be a name or it could be an IP address.

3 — Edit the bmxtg.py program and look for the bm_master assignment statement. There are currently two, with one of them commented out. You’ll need the bm_master variable to point to the master that your dv4mini is currently connected to.

For example, master 3021 is in Canada. Clicking the status button returns The line would read:

bm_master = ''

Be sure that only one bm_master assginment statement is active. You can leave the others there but comment them out by starting the line with a #.

2 — Carefully read and follow the instructions in the README file.

Brandmeister XTG Dialer

I’ve long hoped for a way to make it easier to change DMR talkgroups. I use a DV4mini and software installed on a Raspberry Pi 3 with a touch screen display. Wouldn’t it be nice if I could key in a Brandmeister extended talkgroup (XTG) number directly on the RPi, rather than use an Android app or a web browser? The now defunct DV4MF2 dashboard was a step in the right direction with XTG support, but its talkgroup list is now hopelessly out of date. Wireless Holding’s version of the dashboard allows connection to Brandmeister reflectors and to TG 4999, but doesn’t directly provide access to the XTGs.

So in the true Amateur Radio spirit, I built my own solution. Long ago, I made my living as a software developer. It was so long ago that we were called computer programmers. Nonetheless, I did some research and found that GTK provides support that I could use from within a Python program to create windows, buttons and so on in a Linux GUI environment.

DV4mini control panel in the background with the Brandmeister XTG Dialer in the foreground.

To further date myself, most Linux based programming that I’ve done in the past 20 years has been in Perl or Bash. I have recently gotten involved in implementing the Open Source Fail2ban host IPS system, which uses Python regular expressions. I have become slightly proficient with regexes, but knowing how to use them to match text in logs wasn’t going to help me.

Thankfully, a fellow named Kris Occhipinti put together a treasure trove of programming instruction videos, some of them covering Python, GTK, and specifically how to create a keypad. His intent in some of the videos was to create an app for spoofing caller id, but I could borrow what I needed.

What I came up with is a Python/GTK app that opens two windows. One window is a dialer keypad and the other window is a memory present keypad. A Brandmeister TGID can be keyed in from a keyboard, pressed on a touchscreen, clicked with a mouse…or you can just use a preset with a label like “USA” or “Tri State” instead of a number. The app makes use of the published Brandmeister API, which is very simple, uses HTTP and returns data in JSON format. Python very nimbly handles it all.

If you’re a licensed amateur radio operator, have a DV4mini, and are Linux proficient, please give it a try and leave your feedback below.

A Modern Manchurian Candidate?

Max Boot writes in the NY Times, “The fact that Mr. Trump seems to give greater credence to the Kremlin than to United States intelligence agencies is precisely what has set off so much speculation about his real motives in cozying up to Mr. Putin.”

The quote comes from his article covering the publication, by Buzzfeed, of unsubstantiated foreign intelligence about the next President of the United States, CNN’s reporting on the matter, and Mr. Trump’s reaction.

I think that Max has succinctly summarized a fundamental concern that Trump continues to raise with his Putin praise.

Installing Certbot on Raspbian Jessie

I wanted to install the Let’s Encrypt certbot package on a Raspbian Jessie installation that hosts my Asterisk PBX. I had manually installed a certificate but decided that the automated certificate installation is advantageous. Certbot is available as a backport.

Step 1 — Add the backport source location:

# echo "deb http://ftp.debian.org/debian jessie-backports main" \
> /etc/apt/sources.list.d/backports.list

Step 2 — # apt-get update

I received the following error:

W: GPG error: http://ftp.debian.org jessie-backports InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010

Step 3 — The two bolded keys needed to be added to the gpg keyring:

# gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553
gpg: requesting key 46925553 from hkp server pgpkeys.mit.edu
gpg: key 46925553: public key “Debian Archive Automatic Signing Key (7.0/wheezy) ” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)

# gpg -a --export 8B48AD6246925553 | sudo apt-key add -

# gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg: requesting key 2B90D010 from hkp server pgpkeys.mit.edu
gpg: key 2B90D010: public key “Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)

# gpg -a --export 7638D0442B90D010 | sudo apt-key add -

Step 4 — Update the package list:

# apt-get update

Step 5 — Install the backported package:

# apt-get install certbot -t jessie-backports

Passing of Allstar Network’s Jim Dixon

Jim Dixon of Alhambra, CA was one of the developers who worked on hardware drivers for the Asterisk Voice over IP software. He took his knowledge and created app_rpt which then allowed Asterisk to function as a radio repeater controller usable by radio amateurs and commercial users. On the amateur radio side, this grew into a VOIP linking system for repeaters that is known as Allstar.

Steve Rodgers announced on the app-rpt-users mailing list that Jim passed away on December 16, 2016.

Jim’s contributions to IP telephony and to the amateur radio hobby were significant and he shall be well remembered.

Grizzly Steppe

It should come as no surprise to anyone even slightly knowledgeable about information security that the human factor is the biggest risk to unwanted exposure of information. The most dangerous way that a human can put himself or his organization at risk is to read an email. It is way to easy to embed malicious content in an email that can get past the rudimentary security filters that are in place in many organizations and especially on personal devices.

Malicious content in an email can masquerade as a harmless web link. It may seem to be from your your bank or from an email provider. It can direct you to a forged page and ask you to update some personal information or to enter a password. Are you sure that email is legitimate?

Malicious content can be easily embedded in a graphic or a pdf. Take a look at your spam folder. See any files with attachments? Subject lines like “Invoice” or “Purchase Order” from people you were not expecting or don’t even know signal trouble. Do not open those files! You may have been spearphished, targeted because of who you are or where you work.

So with all the talk about “Russian hacking”, this Department of Homeland Security Release detailing what they believe to be an organized campaign against employees of critical infrastructure, academia, and business puts the talk in perspective.

It is probable that no vote tally was changed as a result of any “Russian hacking”, but to discount the real threat to American society of organized hacking campaigns by foreign governments is foolhardy.