Catching up on my YouTube Channel

I’ve been loading up YouTube lately with videos I have shot on the road. Here’s the latest:

I love this 4K time lapse with the natural sound of a sunrise in the park. There’s also a longer version for nature lovers.

I was lucky enough to be one of the operators for the W5B ham radio special event. Here’s what it looked like at the studio building.

I decided to spend some time fixing up a clock I got a great deal on. Here’s the first of 3 videos showing the fixup.

There are also a bunch of new shorts and some ham radio operating videos when you go to N4BFR Vision on YouTube.

Xiegu X108G HF Transceiver as a Shortwave Receiver

I purchased a Xiegu X108G HF Transceiver at the Dalton Hamfest from an estate seller. The radio appeared to be lightly used and in it’s original foam shipping container. I connected it to my LiPo battery and my dipole HF antenna to check reception. This video shows WWV on 10, 15 and 20 Mhz. All three frequencies were coming in to my location nicely on this Sunday morning.

My goal is to build this into a small kit with a battery and end fed antenna that I can keep in my car for when the POTA bug strikes me on road trips.

First impressions:

Sounded fairly good when warmed up. On first power up, I was picking up RFI bleeding in at 15 Mhz from a local broadcaster, whose transmitter is 6 miles away as the crown flies on 680 Mhz. That seemed to fade out as I switched around between the bands. I also toggled the preamp on and off, so I can’t isolate what the culprit is.

The best control of the radio seems to be from the Icom like microphone. I could switch bands, directly enter frequencies and try different modes like AM vs USB. I wasn’t impressed that USB was set to a 2.3 Mhz bandwidth by default, I prefer 2.7 so this was a little narrow.

The power on screen listed firmware from 2017 so I will be looking for options to upgrade that. It did not remember the frequency I was on when I turned it off and on, instead defaulting to 14.270 Mhz and LSB.

Dealing with an Instagram Clone

Saturday – February 12
I was enjoying a nice weekend on the beach when on Saturday Evening my cousin sent me this in Facebook Messenger:

That’s real me at the bottom and fake Insta-clone me at the top. She was nice enough to block and report the account that was asking for money. I figured, “hey, we reported this quickly, that should put this fire out quickly.” Ha! Just in case, I added a post of my own:

Monday, February 14
Home now and assuming that the now multiple reports of my clone have encouraged the Meta company to take action. Ha! The clone has not contacted me directly so I can’t find them to check on it. They did seem to pick my wife to hit up:

Now I have a name. Back into Facebook and Instagram to make some reports. I even reach out to the clone myself:

No response. The account remains. I add some background info to my followers.

Tuesday, February 15

It’s been almost 72 hours since the first appearance of the clone and the first report to Meta. The account remains on Instagram. I reported them again. I “escalate” to Twitter:

Wednesday, February 16

Escalation does not seem to have driven any action. I can confirm the suspect account has been reported a minimum of 5 times since Saturday. Another appeal on Twitter in addition to my daily reports,’

Thursday, February 17

It’s been 5 days since the fake Instagram clone account has appeared and I have not heard a single response from Meta, Facebook or Instagram. Today I try a new vector to disrupt this user. Since they are using a photograph I took on their profile, I have reported their profile for copyright infringement.

As of 12:05 this afternoon the copyright report is submitted:

and just to prove that I am reporting these daily via their tool:

Thursday, February 17 – 3:20 PM

Apparently Instagram cares WAY MORE about copyright infringement than stolen identities, because the picture I reported was removed in less than 3 hours. This is after FIVE DAYS of reporting the account. I hope this gives someone another tool in their tool kit to fight social media scum.

Improving My Input Audio Chain

For a long time I have used two mics for my amateur radio setup, a Heil PR-40 for my HF rig and A Heil PR781 for my ID-5100. I received good audio feedback all around and every time I tried to get down to 1 I’d get noise in one or the other rig and I’d just go back to what worked.

Recently I’ve been doing some writing work and that’s required me to have conference calls a couple of times a week. The mic on the camera is decent, but I have these beautiful professional mics right next to me, and it was killing me not to use them.

I ended up purchasing a new tool to help me integrate. The Focusrite Scarlet 2i2.

Now, instead of the PR-40 going straight into the balanced input of the Flex 6500, it runs into the 2i2. The 2i2 has 2 line level outputs on the back. I run that to the Flex 6500 and it doesn’t know the difference. With the Focusrite’s USB connection to the PC, it sees it as a sound card that I can run into Zoom or Google Meet. No sweat.

This still leaves the problem of feeding the ID-5100. I’ve done this for now.

[Image Removed – It was a hot mess.]

I received feedback from the folks on the Atlanta Radio Club Sunday Night Net that the XLR Split leaves my FM audio with a high pitched whine in it. So, as the graphic says, I’m going to build an adapter to come out of the other Scarlett 2i2 line out port and step the audio down to Mic level for the 5100.

Parts are on order. I’ll update later this week on how things go.

17-Feb-21: It’s Later. Here’s what happened.

The device I made didn’t work as planned. I also purchased a commercial device and tried it on the line to the ICOM 5100. It didn’t like that either. So I purchased a mic filter that seems to mitigate some of my audio issues and here’s what the chain looks like.

If you have any thoughts on this, hit me up on Twitter @N4BFR.

Raspberry Pi GPS Time Server with Bullseye

I’m into accurate time. Ever since I stumbled across the site I have been running a Raspberry Pi on my network as a Stratum 1 time server. For those not familiar with the stratum, the only level higher is Stratum 0 and that is reserved for the absolute standard of time sources like the National Institute of Technology clock and GPS Satellites.

2016 Raspberry Pi Clock showing leap second addition at the end of 2016

I had been having some entropy on my current set of 6 GPS clocks from various issues, so I decided to rebuild my clock from the base install of the new Raspbian Bullseye distribution. Since I didn’t see a single definitive source, I put this listing together and I’m glad to share it with the community because it has been good to me with previous builds. My sources include,, and Much of what I did is just compiling and changing the order of some steps slightly to minimize reboots. Those others may work better for you, but this version worked for me.

Let’s talk hardware. I have done this project with a Raspberry Pi 1 through a Pi 4 as well as the Pi Zero and Zero W. I prefer the form factor of the full sized Pi to go along with the GPS hardware, but as long as you can make the GPIO connections from the GPS to the Pi all should work.

For a GPS module I use the Adafruit Ultimate GPS with the following pin connections. If you want to use something different, consult the breakout manufacturer and use to set the proper connections. For my connections I typically use:

GPS Breakout PinRaspberry Pi Pin
VIN (Voltage in)Pin 4 – 5V Power
GND (Ground)Pin 6 – Ground
RX (Receive, to get data from the Pi TX)Pin 8 – GPIO 14 – UART TX
TX (Transmit, to send data to the Pi RX)Pin 10 – GPIO 16 – UART RX
PPS (Pulse Per Second)Pin 12 – GPIO 18

It’s not a typo, make sure TX goes to RX on the other board and vice versa.

Now on to software. Start with a clean version of Raspbian Bullseye on an MicroSD. I downloaded mine from the official RaspberryPi .com website. I used the “Raspberry Pi OS with Desktop” version and used an 8 GB MicroSD card as the media. I’m skipping the items related to base configuration of the host name and other start-up items, there are other sources for that. All the commands you see will be via the command prompt.

The instructions from here forward assume you have a working Raspberry Pi, connected to the internet with the GPS attached.

  • Start by adding two additional lines to the /boot/config.txt file. This starts the process to disable Bluetooth on the Pi and sets the Pulse Per Second GPIO Pin if your GPS supports it.
    • Note in this document, the command following $ gets entered at the command prompt, other commands are entered inside the file, at the bottom on a new line is usually good. Once commands are entered, use Ctrl-X, Y and Enter to save and exit the file and return to the command prompt. And yes, I use NANO as my text editor. You should use what you want. I’m not a text editor drill sergeant.
$ sudo nano /boot/config.txt

#Changes for GPS Clock
dtoverlay=pps-gpio,gpiopin=18 (Customize to appropriate pin)
  • Disable Bluetooth in system control
$ sudo systemctl disable hciuart
  • Add a reference to /etc/modules to software for PPS management we will install shortly.
$ sudo nano /etc/modules

  • Run a complete set of updates to the Pi Software
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo rpi-update
$ sudo reboot

Once the computer has rebooted, it’s time to begin installing the key software.

  • Install PPS tools and a set of system libraries
$ sudo apt-get install pps-tools
$ sudo apt-get install libcap-dev
$ sudo reboot
  • Now let’s test to see if the PPS software was installed by checking some OS boot logs
$ lsmod | grep pps 

You should get two responses back that look something like this. Don’t worry if the numbers are different.

$ dmesg | grep pps

Make sure you have a line that says “new PPS source…”

  • Once you see both of those, we can check and see if the GPS is sending data. Your GPS must have a “fix” which means it’s getting data from at least three satellites in order for this to work.
$ sudo ppstest /dev/pps0

Success looks like this:

Don’t worry about the specific numbers, just look for incrementing sequence numbers. The data will continue to populate every second until you hit CTRL-C to stop it.

  • Moving on, we have installed the GPS module and gotten data from part of it, but have not installed the main GPS software set yet. This should do it:
$ sudo apt-get install gpsd gpsd-clients gpsd-tools 

Once those are complete we can take a look at the data coming from the GPS by peeking at the port.

$ sudo cat /dev/ttyAMA0

You should get a continuing output with lines like this. I look for lines that start with $GPRMC (Specific location obscured by X’s)

pi@Telstar5A:~ $ sudo cat /dev/ttyAMA0

Again, CTRL-C to stop it. If you get a stream of data and it’s gibberish your GPS may be sending at a different rate. A good place to start if you see that is this page which looks at other GPS modules and other methods.

  • Now, let’s temporarily send that data to some GPS software for interpretation.
$ sudo gpsd /dev/ttyAMA0 -n -F /var/run/gpsd.sock

Then we’ll open the GPSMON software to look. (There’s also a tool called CGPS. Use either, this is a personal preference thing)

$ gpsmon
Location obscured for privacy.

The screenshot above will tell you your exact position, the number of satellites your GPS sees, and the status of your PPS data all in one screen. Did I mention you CTRL-C to get out of a screen like this? Because you do.

  • Configure the GPS software to auto-start when you boot your machine. I have seen a couple of different processes, but this one works consistently for me.
$ sudo nano /etc/default/gpsd

Unlike the other file edits where you add a line, this is what the whole file should look like when you are done. You may just want to cut and paste this whole section, or type it in, whatever works for you, I won’t judge.

#Updated for GPS Pi Clock


# Devices gpsd should collect to at boot time.


# They need to be read/writeable, either by user gpsd or the group dialout.

# Other options you want to pass to gpsd

# Automatically hot add/remove USB GPS devices via gpsdctl
  • Almost done with the GPS section. Four more commands to go.
$ sudo systemctl stop gpsd.socket
$ sudo systemctl disable gpsd.socket
$ sudo ln -s /lib/systemd/system/gpsd.service /etc/systemd/system/
$ sudo reboot

That third $ command (between “disable” and “reboot” goes on a single line, this blog text tool wraps it. It should look like this:

  • If you want to reconfirm everything is working again after reboot, run GPSMON like above and look at the pretty data fly by. Now let’s connect the GPS to the clock. I’m choosing to use NTP as my time server software for this project. You might want to play with Chrony as well.
$ sudo apt-get install ntp

Once that is done, you want to stop the timesyncd service that is installed by default with Bullseye and replace it with NTP.

$ sudo systemctl stop systemd-timesyncd
$ sudo systemctl disable systemd-timesyncd
$ sudo service ntp stop
$ sudo service ntp startntp q -

Let’s test. “Out of the box” the NTP software checks with servers on the internet to get the time. It will look something like this:

$ ntpq -p -c rl
The * on the left indicates the chosen server, this one is at Georgia Tech.

Great news! Clock is syncing, but if you look at the bottom you’ll see after “leap=00” it says “stratum=2” which is nice, but we want to use the GPS to make it a Stratum 1 clock.

  • It’s time to cross the streams and point the NTP software to look at the GPS and PPS signals for time. That means editing the NTP configuration file.
$ sudo nano /etc/ntp.conf

There are a lot of other settings in the file, so I won’t give the whole file this time but here’s what I recommend. Scroll down until you get to this section:

Use the # sign as the beginning of a line to comment out several of those “debian.pool” lines. You do want to keep an internet server on the list as a backup and for diversity, but you won’t need all of them. Save that for the folks that don’t have satellite time at home. Just below the “pool” entries, add each of the 6 lines on a new line:

# Kernel-mode PPS reference-clock for the precise seconds
server minpoll 4 maxpoll 4
fudge refid PPS

# Coarse time reference-clock - nearest second
server minpoll 4 maxpoll 4 iburst prefer
fudge time1 +0.105 flag1 1 refid GPS

If you want to use different servers on the internet, there are plenty to supplement. The manual page about ntp.conf can tell you more about other things you can do with this file.

When your changes are made it should look like this.

Do that cool CTRL-X thing and get out of there before you break anything (kidding).

Time to get the NTP client to read the new configuration file.

$ sudo service ntp restart

It sometimes helps to reboot too. Your call.
Now let’s check and see what time source we are using:

$ ntpq -p -c rl

Success! Why? Three things you want to see on this screen:
1 – The SHM / .GPS. line has a * next to it, indicating it’s the primary time source. In the “st” column you can see a 0 which indicates it’s connected to a “Stratum 0” source.
2 – The PPS / .PPS. line has an o next to it, indicating it is a “PPS peer” and it’s getting very specific pulse data from the GPS signal. It’s also a “Stratum 0” source.
3 – The “stratum” field for your NTP server now is “stratum=1” which is pretty much the best you can get as a home user.

It may take a little bit for the PPS to settle in as the primary time source, so don’t worry if it doesn’t do it in the first 5 minutes.

So, that’s the project. Why do you need this? Well, I do it for fun, but there are several applications that require very accurate time. For instance in Ham Radio the cycles for a program like FT8 depend on an accurate clock to switch between receive and send modes. Is this the thing I’m going to replace a Rubidium time standard with? No, but for about $100 bucks it’s a nice thing to have an a good early project for someone learning about Raspberry Pi. You can set Windows, Mac or Linux clients to point to your home server for time instead of or other sources.

One final note, this is accurate for me as of the time in that last screen shot. Something is bound to change eventually, so expect these instructions to drift over time as things change. Figuring that out is one of the fun things for me.

If you do this project and want to share success, you can tweet me @N4BFR or find me in other place on the internet.

Raspberry Pi – Buster to Bullseye Upgrade in Place Bug

I started upgrading one of my Raspberry Pi from Buster to Bullseye by using the APT tool and following along with the TomsHardware Guide. After completing Step 6 by changing the repository name, I ran

$ sudo apt dist-upgrade

It ran a couple of items then this advisory appeared.

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable

distribution that some required packages have not yet been created

or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

libc6-dev : Breaks: libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6+rpi1 is to be installed

I had not run into that before, but thankfully, way down below the article and about 42 different ads I found the comment section. In that, a user name TJ Hooker had my answer:

I worked around that by executing sudo apt install gcc-8-base, then running dist-upgrade again.

So I gave it a try and sure enough, the upgrade was underway. Here are the two commands:

$ sudo apt install gcc-8-base 
$ sudo apt dist-upgrade

Pick back up at step 9 and 10 after that, which are:

$ sudo apt autoclean
$ sudo reboot

Then you are done. Hope this blog post makes it a bit easier to find if someone else encounters this.

P.S. – All in all I’m not sure if it wouldn’t have been faster to burn a new Bullseye card and port my content, but that’s no fun, is it? For additional reference here is the full set of commands because I am sure I will be doing this again on other machines, now I can find it.

$ sudo apt update
$ sudo apt dist-upgrade -y
$ sudo rpi-update  
    [Reboot when complete]
$ sudo nano /etc/apt/sources.list  
    [Change buster reference to bullseye]
$ sudo apt update 
     [Now gets Bullseye updates]
$ sudo apt dist-upgrade
      [if error, then run command below then rerun dist-upgrade]
    $ sudo apt install gcc-8-base 
$ sudo apt autoclean
$ sudo apt reboot

Celebrating Halloween with the Giz Wiz

I joined in to a live stream last weekend with Mad’s Maddest Writer, Dick DeBartolo, the GizWiz. We had some great chat fun and I shared my Halloween Video.

The group had a virtual scavenger hunt and I WON! Here’s the point in the video where I grabbed the winning item. Thanks to Mr. DeBartolo for sending me a signed copy of MAD Magazine and a signed Alfred E. Newman picture!

Photo of Alfred E. Newman and a copy of Mad Magazine

You can find his site and try and win a MAD yourself at GizWiz.Biz.

ATL-LA-ATL Road Trip Day 7 – What is “The Thing?” and Jets in the Desert

I woke up Sunday morning in Deming NM, after popping into town just after dark watching an old episode of Star Trek and crashing. he hotel didn’t have a charger but the city did, just up the road at a truck stop with a nice diner. Plug in, eat some eggs and bacon (mmmm bacon!) and get back on the road.

On my quest for roadside attractions I stopped to see “The Thing.” If you are familiar with the series of billboards on I-95 directing you to “South of the Border:” on the SC/NC line, you will be familiar with advertising for “The Thing.” For $5 (plus tax) this roadside gas/DQ stop asks the question “what if Aliens and Dinosaurs existed at the same time” and then plays out the question in animated detail. It all builds up to seeing “The Thing” which I’m not going to share, so break out a Lincoln and spend the 10 minutes to see it yourself next time you are on I-10 in Arizona.

On to Tucson and the Pima Air Museum. I loved this museum. In fact I’ll go as far as to say it’s one of the top three aviation museums I have visited. Three hours of walking more than three miles inside and outside this amazing air and space showcase and I was left thoroughly stunned. I expected to see a few wind blown old jets, what I found was a broad aviation and space museum.

A couple of particularly interesting highlights from some pictures I grabbed: I had seen several Wright Flyer replicas before, but I don’t remember any deep looks at the engines, so that was an interesting thing to see as I walked in. Also I don’t remember seeing 3 different flight demonstration planes, one from the USAF Thunderbirds, one from the USN Blue Angels and a Canadian RAF Snowbird all in once place. And who expects to go to an aviation museum and see a quote from the movie “Airplane” or a building named “Area 51.” Lots of fun.

If you want more military planes than Pima has, then you need to go to the Museum of the USAF in Dayton, OH. If you want to see the “first / best” of everything go to the Smithsonian. If you need one aerospace museum that has a little bit of everything, I’d be hard pressed not to pick Pima.

As part of the Pima Air Museum they had a building dedicated to B-17 crews in Europe during WW2 which made me want to find out more about family service. I later found out one of my Grandfathers was with the 924th Engineer Aviation Regiment, so that was interesting to dig into.

I also drove by the “boneyard” section of Davis-Monthan AFB. You can’t go on the base but seeing the rows and rows of military planes being stored in the desert is intriguing. About 30 miles up the road is Pinal Air Park where airlines send their planes which I drove by the next day.

At the end of week one I had traveled 2,525 Miles

TikTok: Day 7 Update | Week 1 Recap with a Tesla Update

Google Photos: Planes in the Desert – Davis Monthan and Pinal Air Park

Fine Art America – Trip Photos Available for Purchase: 2021 ATL-LA-ATL Road Trip

ATL-LA-ATL Road Trip Day 6 – The Trinity Site… Plus

Art Prints

For most of this trip, I could have gone any time of the year I wanted. Fall is generally cooler, and kids are back in school in September and October, so it’s nice not to have to compete with that, but the whole trip was really timed around this Saturday morning.

The Trinity Site is the location where mankind tested the first atomic weapon in July 1945. What happened at that site almost 20 miles from the northern access road to White Sands Missile Range is truly where the Atomic Age began and I wanted to see it. The Army allows access 2 days a year, the first Saturday in April and the first in October. It was unfortunate that due to COVID-19 the site had not been opened in 2 years, so this was the first viewing opportunity since the 75th anniversary had past.

A beautiful sunrise and a few cows greeted me on the way in from Socorro. I lined up behind about 60 other cars before the gates opened at 8 AM. From there it’s a 17 mile drive in the White Sands Missile Range to the site.

It was amazing to see both the site itself, marked by a lava rock oblisk but the people attending. It was expected to draw more than 5,000 on that day, I counted hundreds just walking around, and I was there early in the day. Cars were still coming in as I was leaving.

The visit to the Nuclear Museum on Thursday put this in a lot of context. Only by visiting though do you get some of the perspective. The closest person to the blast were the scientists 10,000 feet away. The nuclear test was preceded by a TNT test for “calibration” of the equipment. The mushroom cloud you see doesn’t form for 10-15 seconds. The sand, bomb fragments and remains of the tower have turned into a material called trinitite. The bomb that was tested was the relative size of the “Fat Man” device that was dropped on Nagasaki. The “Little Boy” version was used on Hiroshima.

Here’s an interesting fact about the double edged sword that is scientific exploration. Yes, the United States is the only country that has landed humans on the moon. It’s also the only country that has unleashed a nuclear bomb on citizens of its home planet. It’s an amazing duality in my mind. The whole thing left me unusually speechless.

Before I left, I had an inadvertent chore to take care of. To get on to the range I had to show my drivers license. In my excitement, I jammed it in my pants pocket once I was through the gate. In my later excitement, I dropped it on the ground while pulling out that camera phone. So, I wrapped up that visit by finding my lost drivers license at the information desk, thanks to the MP’s who found it after it fell out of my pocket and turned it in. Whew!

Saw a few protesters on the way out from the range and headed back to Socorro to pick up a forgotten item, then down to Truth or Consequences to charge and prove that the city really exists. Mark Arum on WSB had been surprised a few weeks earlier to hear of T or C being named for a radio game show, so I thought he would like a short video.

In my original plan at this point I was going to go to Spaceport America but it’s locked down to tours only and those were sold out so I set my sites on Alamogordo, NM. On the way, I had a chance to stop at White Sands National Monument which was very interesting to learn about. The wind blows material off the mountains and it accumulates into this old sea bed with a water table that doesn’t drain to the sea so it keeps it in these beautiful dunes.

Alamogordo has a space museum too, but unfortunately I was 20 minutes too late to see that. I did get to see one of my best friends military bricks, which made the whole visit to the area extra special for me.

On from there to Demming NM for an overnight.

TikTok: Day 6 Overview | The Forgotten Sign

Google Photos: Trinity Site Photos

Fine Art America – Trip Photos Available for Purchase: 2021 ATL-LA-ATL Road Trip

ATL-LA-ATL Road Trip Day 5 – ABQ to Socorro

Canvas Art

Day 5 was set up to be an intentional light day, I built it in as a buffer I could use to catch up if needed since Saturday was a key date on the trip, something that couldn’t be moved. So I started the morning with a self-guided tour around Old Town Albuquerque.

Some cities embrace their history in different ways, like Dodge City or Deadwood for westerns. So it was interesting to see several things in this old town area embrace the town’s image from Breaking Bad / Better Call Saul. While I probably could have spent half a day tracing Walter White’s footsteps, it was enough to walk past the “Breaking Bad” store and see buckets of “Los Pollos Hermanos” fry grease in the window and pick up some “blue” rock candy. Trivia – the TV version of the blue meth was actually rock candy made here in Old Town. I grabbed up a couple of bags from this nice guy named Heisenberg.

The real old town was centered around a church and convent, very interesting. Of course it was triggering for my nerddom tho, the clock on the church was wrong. I just think it’s one of those things that is a responsibility if you are going to have a public clock. That’s my cross to bear though, in the meantime, you might like these photos from around the Old Town area.

Headed south to visit some “satellite dishes.” I have been to a couple of larger radio telescopes before, one at St. Croix and several at Green Bank WV but I wanted to see the Very Large Array popularized by the movie “Contact.” It’s about 50 miles west of Socorro NM. I wish the visitor center had been open (COVID again) but it was still worth the trip for me to see the beautiful valley full of dishes. One thing I was wondering about, in Green Bank they have the area marked off as the “National Radio Quiet Zone” to protect the dish from surrious radio signals. No such quiet zone here although I have to say it’s natural setting makes it a bit more immune to radio signals, no cell service for me in this area.

Trip Milestone – My GPS read 7,198 feet at the top of the pass between Socorro and the Very Large Array. That’s the high point of the trip so far.

Back to Socorro to the only hotel with an EV charger within 50 miles, the Best Western. They had a very nice facility. I took a down evening and caught up on laundry and a few other items.

Photo AlbumsOld Town ABQ | Very Large Array

Tik Tok Day 5 Overview | Dryer Races Start | Dryer Races Winner