Finally looking into Tailscale

I have had a home virtual private network (VPN) for nearly a decade. I’ve used it to access my home environment from all over the world. It has been relatively low maintenance, but when there is something shiny and new(ish) I want to investigate it.

Recently, I heard some very positive things about Tailscale, so I thought I’d give it a chance. Tailscale is a partially open-source, software-defined mesh (peer to peer) VPN service. The company provides a zero config “VPN as a service”. It is free for personal use. I could always set up my VPN again if they change that.

I’ve found Tailscale to provide nearly seamless access to my Linux, Android and Windows machines. Right now, I use it to monitor my 3D printing when I am out of the house since I can access the Web server within my 3D printer remotely. I could run my ham gear remotely as well.

It literally took minutes to setup on each device. The hardest thing for me to wrap my mind around was how easy it was to use. Each device gets its own VPN defined IP address that you can ‘just use’ like it is on your device’s network (no matter what network it is currently connected up with) – mind blown 🤯.

I can even show you a picture of my configuration since you’ll not be able to access it.

I have a headless Raspberry Pi sitting on my network that provides local access to my home devices, much like I had a headless Pi working as my VPN.

There are many videos and overview documents out there if you want to know more. I believe it is a game changer.

Mobile phone services, shocked by the changes enabled by Mint

Recently, I switched my phone provider over to Mint. I have been with AT&T for decades and as my kids moved on I was fed up with the high on-going costs. I don’t mind paying for something I consume, but ‘pre-paying’ for services I don’t use just kept eating at me. The same way that TV cable bills ate at me — I cut that cord over a decade ago, with a combination of OTA and streaming.

My current phone bill is less than half what it was a few months ago. I now have wi-fi calling that I can use at most of the places I go to normally. With AT&T you had to purchase the phone from them for them to enable wi-fi calling. I swear their whole business model is oriented around buying phones from them. For a long time now, I have only purchased my phones directly from the vendor, so I could get an unlocked phone. Having an unlocked phone enabled me to swap out SIM cards when I traveled, without any hassle.

Mint Mobile runs on the T-Mobile network, the nation’s largest 5G network, so I have yet to encounter any issues there.

So anyway, I have been using it for a while now and am very happy.

2023 field day is in the rearview mirror

I ended up with 105 contacts across all the bands with 28 on 40M, 72 on 20M, 4 on 15M and 1 on 10. I started out slowly though because my new computer didn’t have the right USB drivers to talk to my radio. I had to dig my old computer out of the garage to start making contacts. I should have tried out the rig with a few contacts on Friday, rather than panicking Saturday AM.

The connection problem continued to gnaw at me though, so by Sunday AM I had the new computer making contacts. That meant that my approach to logging forced me to do some extra work for submission, aggregating the data together from multiple sources.

I ended up doing 3 message transfers as part of this year’s efforts that I mentioned in my last post. That was new to me.

I didn’t score nearly the number of points as I have done in past few years and that’s OK. I made most of my contacts in the early AM of Sunday on FT4 on 40 and 20. At least the weather was great.

Sometimes you learn more from setting up for field day than you do by operating

I saw this picture online and thought I’d share it – I did have to clean it up a bit though…

One of the important aspects of the whole field day process is setting up and tearing down an emergency station. As I mentioned in the previous post, my battery was getting long in the tooth, so I had to replace it.

I also went through my radio settings (IC-7100) this week and noticed a few things that could be improved. Fortunately, reprogramming that radio using software is straightforward. Doing an update during a practice session is better than figuring out issues during an emergency.

If those minor bumps in the road are the biggest ones I find today, it will be a great field day. Hopefully, the band conditions will have improved from previous years, but Field Day is not about DX.

One thing I am going to try (since I cannot go into the field with my local club) is to exchange at least one radiogram with them. Radiograms used to be a big thing with ‘traffic nets‘ that sent traffic all over the world that ran daily. The goal is to:

“have that message arrive at its destination with the exact same content as it started with

With email and other communications techniques available today, it is not really used that much anymore, except during an emergency, but Radiograms do have an interesting history across a number of different services.

A new battery for field day

I have not been posting much recently, since my wife was diagnosed with ovarian cancer, and we’ve been focused on that. The treatment is going well but it has been stressful.

Coming up this weekend is ARRL Field Day, the day where ham operators from across the country go out in the field and test out their emergency setup. As I was assessing my portable setup, I realized the lead acid battery I had at the core was about six years old and it was time to replace it. Battery technology has changed quite a bit over the last decade and now there are commercial LiFiPo batteries that are cost effective. I purchased a 12V20Ah battery that should work out well for field day. It was a drop in replacement that weighs significantly less than the old lead acid equivalent.

Field day is ham radio’s open house. Every June, more than 40,000 hams throughout North America set up temporary transmitting stations to demonstrate ham radio’s science, skill and service to our communities and our nation. It combines public service, emergency preparedness, community outreach, and technical skills all in a single event. Field Day has been an annual event since 1933 and remains the most popular event in ham radio. This is the start of hurricane season here in North America, so it is a good time to test out emergency preparedness.

Since my wife and I are trying to remain isolated to do the Chemo treatments, I’ll likely set up on the porch behind my house and stay there. Usually, I set up with our club here in Sun City Hilton Head and only operate from my house for part of the event.

Ham radio fox hunting

Over the weekend we had 6 people participate in a hidden transmitter hunt (fox hunt). Here is a video that answers a few questions, you may have about fox hunting.

The hidden transmitter started at 9AM and all of us found the box, hidden in the woods, by 9:30.

the camo box is the transmitter

The transmitter was about 10 feet off one of the walking paths in Sun City Hilton Head.

I was a bit worried when we started, since it had rained (heavily) the night before. Wet pine trees do strange thing to radio propagation (multipath). It was not that much of an issue though.

When we got close, I used by body as a reflector and rotated around to help identify the direction of the signal.

I’d totally forgotten about was using a metal can and placing a handheld radio without an antenna in the can for direction finding. One of the other folks had his can out and it seemed to work well. This is a cheap alternative to more dedicated specialty devices for direction finding.

We had a good time and must be getting better, since we found the transmitter so quickly.

Bluetooth and the Raspberry Pico

There is quite a bit of information on connecting to the Pico from Bluetooth out there already, but when I tried to follow the steps, there were definitely some issues encountered. One of the first is that there are a wide range of device generations available. I first tried to use the HC-05 but my Android phone wouldn’t connect to it. I moved up to the HC-08 and that is what this post covers. There are also versions 09 and 10 as well as 11 and 12 but I am not sure those last two are running Bluetooth.

HC-08

Although the Pico does not have a Bluetooth interface included with it, it is easy to add one. The bigger problem will be getting the Pico program to talk with the Bluetooth program that is running on your phone.

To access Bluetooth, I used the SH-HC-08 Bluetooth to serial port module with the Raspberry Pi Pico. This Bluetooth device uses serial communication to transmit and receive data serially over standard Bluetooth radio frequency. We will use TX, RX pins of Raspberry Pi Pico to connect with the module. More detailed information can be found here: Microsoft Word – HC-08 USER MANUAL V2.4_20161208.doc (ecksteinimg.de)

The HC-08 is a Bluetooth 4.0 module with 6 PIN baseboard, compatible with iPhone 4s/5/5s 6/6s and android phones 4.3 or later. The main chip is cc2541F256 manufactured by TI, whose default data rate is 9600 baud and has a working voltage 3.3V to 6V. You can modify the baud rate and the Bluetooth name via the AT command set.

HC-08 Pinout

The table below briefly describes the functionality of each pin.

PinDescription
VCCThe operating voltage range is 3.3 volts. But I/O pins can withstand voltage of up to 5 volts. Therefore, we can connect 5 volts power source to this pin.
GNDGround reference of both the microcontroller and HC-08 should be at the same level. Therefore, we should connect a power supply, HC05, and Raspberry Pi Pico ground pins to each other.
TxThe HC-08 Bluetooth module uses UART communication to transmit data. This is a transmitter pin. The TX pin will be the data transfer pin of the module in UART.
RxThis pin is a data receiving the pin in UART communication. It is used to receive data from the microcontroller and transmits it through Bluetooth.
StateThe state shows the current state of the Bluetooth. It gives feedback to the controller about the connectivity of Bluetooth with another device. This pin has an internal connection with the onboard LED which shows the working of HC05.
Enable/KeyUsing an external signal, Enable/Key pin is used to change the HC-08 mode between data mode and command mode. The HIGH logic (3.3V) input will transfer the device in command mode and the LOW logic input will change the mode to data mode. By default, it works in data mode.
ButtonThe command and data mode states are changeable through a button present on the module. You can apply voltage to the Enable/Key to perform the same function.
LEDThis pin shows the working status of module along with the State pin
Connecting the HC-08 to the Pico

To connect the Bluetooth module, wire it up as shown. When you plug in the Pico, the HC-08 should start to flash.

Android application

To send commands to the Pico, I used an Android smartphone application. For Android, go to the Play Store and download the application by the name: Serial Bluetooth terminal.

Setting up the Android App

I then had to perform a series of steps.

  1. After you have installed the ‘Serial Bluetooth Terminal app, open it. On the top left corner of the screen, you will find three horizontal bars. Tap it.
Tap on ‘the hamburger’ in the upper left

This will bring up a settings window. Now click on the Devices option.

Select the devices option

The device screen should now be displayed, and you can select Bluetooth LE and Scan.

Select Bluetooth LE and then SCAN

If everything is working correctly you should have the option of selecting SC-HC-08 (or whatever is equivalent for your model of Bluetooth device).

Once your device connects, you should be able to go back to the main screen and see a display like this. At first, you will get the message: ‘Connecting to HC-08.’ After a successful connection, you will get the message: ‘Connected.’ If you do not, go back to the devices menu and try to reconnect.

Connection successful

Now we will configure the buttons that will be used to toggle the LED. First long click the M1 button shown in the window above. Add the configuration information for the button. Here we are configuring this button as “LED On” button with a value of 31 in HEX. Press the tick icon at the top right to confirm the changes.

Defining the LED on button

Likewise, create another button e.g., M2 as “LED Off” button and associate a value (32 hex) with it as well.

Defining the LED off button

Finally, we are going to add one more button to toggle the LED.

Defining the LED toggle button

Now we will have three buttons through which we will be able to control the state of the LED.

Our three buttons to send messages to the Pico

MicroPython: Raspberry Pi Pico LED Control

Here is a program for the Pico that can be controlled from the Android application.

from machine import Pin,UART
#constant
LED_GPx = 2
#device definition
uart = UART(0,9600)
led = Pin(LED_GPx, Pin.OUT)
#main
while True:
    if uart.any():
        data = uart.readline()
        print(data)
        if data== b'1':
            led.on()
            print("LED is now ON!")
        elif data== b'2':
            led.off()
            print("LED is now OFF!")
        elif data== b'3':
            led.toggle()
            if led.value() == False:
                print("LED is OFF!")
            else:
                print("LED is ON!")

A walkthrough of the program

We will start by importing the Pin and UART classes from the machine module.

from machine import Pin,UART

Then we will create an UART object by using UART() and specify the UART channel as the first parameter and the baud rate as the second parameter. We are using UART0 in this case with baud rate 9600 for the UART communication.

uart = UART(0,9600)

Next, we will define the Raspberry Pi Pico GPIO pin that we will connect with the LED. In this case GP2. You can use any appropriate output port for your application.

LED_GPx = 2

We will configure the led pin as an output through Pin() function and pass the GPIO pin as the first parameter and Pin.OUT as the second parameter inside it.

led = Pin(LED_GPx, Pin.OUT)

Inside an infinite loop, we will first check if there is any data being received through the UART channel. If there is any data, it will get saved in the variable ‘data.’ This will be achieved by using uart.readline(). We will press each button and see what we obtain in the shell terminal of Thonny the first time.

while True:
    if uart.any():
        data = uart.readline()
        print(data)

When we pressed the LED ON button, we obtained b’1′ in the shell terminal. Likewise, when we pressed LED OFF button, we obtained b’2′ in the terminal. We toggle the LED if we receive a b’3′.

If LED ON button was pressed, then the LED will turn ON and print LED is now ON! in the shell terminal of Thonny. If LED OFF button was pressed, then the LED will turn OFF and print LED is now OFF! in the shell terminal of Thonny. Finally, if the LED Toggle button is pressed, we toggle the LED and check the state of the LED and print the appropriate message in Thonny.

That’s a quick overview of how I got the Bluetooth connection working.

Updated QSOSender3

QSOSender3

Since I was recently playing around in Android Studio and the Google Play Store, I thought I’d go back to QSOSender3 and address some minor annoyances that were reported. I’ve not updated that program for a number of years and there were some feedback comments that needed to be addressed.

Most of the feedback had to do with application context switching. I never bothered to turn the sound off when the user went to a different application, so Morse code or the simulated QRN would just continue sounding off. That was relatively easy to fix.

I also made it so when the user switched to Farnsworth encoding, it was obvious the switch was made. Some people complained that this capability wasn’t working — that was because the new sending technique didn’t start until the NEXT time the program started sending code. Oh well — now it just stops sending, whenever the Farnsworth checkbox is toggled.

The bigger problem was due to all the changes that updates to Android and the Play Store required for a current release. Tracking them all down and making sure the configuration of the application was sufficient to actually publish took me a good four hours. Hopefully, everything went out to production OK.

As I mentioned the program generates random QSOs, whose length is dependent on the speed of the sending you requested. I can guarantee, you could generate thousands of QSOs and never see the same thing 100% exactly the same.

Here are three examples of random QSO data generated for code practice:

VE3SLN de NQ5RJY location is Newport, Georgia. UR Signal is 576 576. rig here is Swan 240 running 200 watts into a trap doublet up 30 feet. you are my second contact today. Name is Pat. I am 82 years old. I am a teller. I have had a Novice license for 33 years. raining hr and 21 degrees. Must take a break tornado sirens sounding good DX 73 VE3SLN de NQ5RJY kn

W3IGJ de WM4FD your RST is 575 575. Name Francie QTH is Sunnyvale, SC. Cpy? My rig is Heathkit DX60 w/Knight R-100A. It runs 200 watts into a dipole in the attic My antenna is up 105 meters. cool/windy hr es 23 C degrees. I work as a attorney. age 70 I have had a Extra license for 7 years. 73 c u down the log W3IGJ de WM4FD kn

KA8Z de NA2PYL Thanks for the call your RST is 569 569. I am a politician. How is UR WX? I am mobile, driving home from work. My name is Noelani. My age is 47 I have had a Technician license for 7 years. My rig runs 20 watts into a cubical quad up 50 feet QTH Mansfield, RI Temp here is 11 WX hr is very cold wind is 28 mph from the SSW. How copy? Must QRT for sleep. 73 later KA8Z de NA2PYL kn

Granted some of the rigs are pretty old and there could be some logic problems (e.g., I am 10 years old and have had a license for 21 years), but maybe the next time I have a release it will addresses some of these issues as well.

The advantage of a program like this is that it forces you to use some of the letters you may not normally practice (including punctuation).

Morse Code Day April 27th

Morse code is part of everyone’s life, even if they do not know it themselves. We’ve heard the sound tapping its way out in movie. Heroes use it to help request rescue. It served a vital role influencing transportation and commerce, until relatively recently. Morse Code Day celebrates this concise and effective way of transmitting information and the history of how it changed the world.

Learn about Morse Code Day

Morse Code Day has been designed to pay tribute to this traditional form of communication. It involves using standardized sequences of two different signal durations. These were called dits & dahs or sometimes dots & dashes. The name “morse code” is based on the name of the inventor of the telegraph; Samuel Morse.

Morse code was designed so that for every symbol’s length is roughly inverse to how frequently the character appeared in the English dictionary. For example “E” is the most common language within the English alphabet. So, based on the notion mentioned, “E” is going to have the smallest signal, and it does; just a dot. A “T” is a dash… Less frequent letters, like a Q (dash dit dash dash) are much longer.

History of Morse Code

Back in 1836, Samuel F.B. Morse was focused on developing the telegraph, which would drive long-distance communications for decades. would drive communication until the radio telegraphy developed in the early 20th century.

Morse code has the distinction of being a coded language that a human, with the right experience, can translate by ear, at speed, without a decoder.

How to celebrate Morse Code Day

One of the best things to do on Morse Code Day is to learn your name. Look at a sight like Morse Code Fun, as a possible choice to learn more.

If you already know Morse code, practice. I wrote a program (QSOSender3) a while back for the Android platform that helps you receive Morse code interactions like those you would have in a ham radio QSO. These can be more difficult than just getting common words, since QSOs will include location or weather or a wide variety of other information.

There are many resources online that can assist you in developing your Morse code skills.

Nano Vector Network Analyzer

VNAs used to be expensive devices used by engineers to analyze antenna systems, among other things. I have had an antenna analyzer (similar to the 259D) for decades, keep in mind though that some antenna analyzers are VNAs, but not all. It cost a pretty penny when I got it. I end up using it a few times a year.

This new nano VNA cost about $65 (including tax) and came in a nice box with quite a bit of useful connectors… That is a heck of a deal and since I have a Buddypole a useful investment. The Buddypole antenna needs to be tuned every time it is set up, so having a graphic tool to facilitate the process is going to be great.

The device purchased is the NanoVNA-H Vector Network Analyzer. It should be capable of measuring S Parameters, Voltage Standing Wave Ratio, Smith Chart, TDR

The storage box included:

NanoVNA-H (with battery)

USB Type-C data cable

15cm SMA male to male RG316 RF cable

Calibration connectors:

  • SMA male calibration kit – OPEN
  • SMA male calibration kit – SHORT
  • SMA male calibration kit – LOAD

Since this machine is equipped with a small touch screen, you can operate the device by the touch screen or using the multi-functional dial/switch on the top of the case.

Using the PC software NanoVNASaver (a github open-source project), a PC can connect to the NanoVNA via a USB port and display the data, as well as save the information to files. The SNP files can be exported for use with other software.

There appears to be a fairly active users group on Groupsio for this device (something I always look for when buying just about anything), averaging well over 500 posts a month. There is also a very complete getting started guide in the files section.

To connect the device, I plugged the cable into the USB port on my PC and turned on the VNA device. My computer found it quickly. Next, I loaded up the software on my PC, made sure the right port was selected and then clicked the connect button.

I tried it out on an old 2M antenna I had sitting around, and the results made sense. The first thing you need to do is calibrate the device (I calibrated the software on the PC as well). Be sure to celebrate using port 0 on the device. I started out using port 1 and that just didn’t work. This is a straightforward process that probably should be done periodically. I did figure out that I needed to turn the device off and on again after calibration before the readings made sense.

Here is a picture of the SWR screen on the device:

The yellow line shows the SWR graph. Not the SMA connector in the Channel 0 port. That should give you some scale for the size of this thing.

Here are the same measurements shown on the PC:

I think we can all agree that the PC is easier to read.

So far, I am pleased with out it works. I’ll need to take it in the field to evaluate it in action though.