Posts

A two-character fix in two hours: Wrestling with gpsd, cgps, and a $15 GPS puck

December 2025 Update TL;DR The $15 GPS dongle is generating severe RF noise. I was tracking down some QRM (man-made interference) in my sBitx radio that was especially bad on 10m, but still present on 15 and 20 meters. After returning from a portable activation, I noticed that the noise was gone. Then I noticed that I had not plugged in the GPS dongle. Plugged in the dongle, QRM was back. Unplugged it, QRM gone! Searching online, I found this discussion about cheap VK-162-based GPS dongles from Amazon creating QRM. I have tested 3 of the VK-162's...with u-blox drivers on both Win10 and Win11. So far, the VK-162s, while cheap and VERY sensitive, are also VERY DIRTY on HF for broadband noise. At the same time, using the same cables, the traditional hockey pucks (now $59 on Amazon, where they were $19 a few short years ago), produce no noise that I can detect. Conclusion: I wouldn't recommend the VK-162 at $12.00 to any Ham, unless someone finds the "magic cure" t...

Further adventures of AK6IM, the kosher ham

The California State Fair ( our state fair is a great state fair ) is in full swing in Sacramento. The Sacramento Valley section of the ARRL is sponsoring an amateur radio exhibit and special event station K6C .  New this year, they are allowing licensed amateur radio operators in California to "activate" from home as K6C during the hours the fair is not in operation. So... I was operating as K6C last night from 2300-0100 local, FT8 on 20m. I made 21 contacts including South Africa, England, Asiatic Russia (2), Japan (4), Puerto Rico, and all over the US, running 15W with my little  HF Signals sBitX V3 radio from a 1/4-wave vertical on the front patio -- KJ6ER's PERformer design.  More info on K6C at:  https://www.qrz.com/db/K6C

Offline use of Visual Studio Code

For the past few years, I've been doing most of my coding in "the Scientific Python Stack (NumPy, SciPy, Matplotlib, ...) , and friends. I still use MATLAB and Mathematica where there are gaps in functionality or the numerics in NumPy/SciPy are not up to snuff.  I used to use Spyder, the IDE included with Anaconda Python, but over the last couple of years have switched to Visual Studio Code for both an IDE and Jupyter notebooks. I'm not alone; VSCode has dominated the  Stack Overflow IDE Survey  for several years. One of the main features of VSCode is the rich ecosystem of extensions. When you're online, installing or updating an extension is a couple of mouse clicks; the procedure for offline use isn't so refined and has changed over time.  If you're starting fresh, VSCode supports a "Portable Mode", documented here: https://code.visualstudio.com/docs/editor/portable "This mode enables all data created and maintained by VS Code to live near itse...

Python Asyncio

Each time I need to write a multithreaded program in Python, I read through the Asyncio page in the Python docs, and give up and code with the threading library. This time I found a pretty good five-part tutorial written by someone at the BBC, so I'm bookmarking it here. https://bbc.github.io/cloudfit-public-docs/asyncio/asyncio-part-1.html https://bbc.github.io/cloudfit-public-docs/asyncio/asyncio-part-2 https://bbc.github.io/cloudfit-public-docs/asyncio/asyncio-part-3 https://bbc.github.io/cloudfit-public-docs/asyncio/asyncio-part-4 https://bbc.github.io/cloudfit-public-docs/asyncio/asyncio-part-5 Of course, this leaves the question of why exactly one should use Asyncio instead of threads https://discuss.python.org/t/what-are-the-advantages-of-asyncio-over-threads/2112 The official, and largely opaque (to me anyway) Asyncio docs https://docs.python.org/3/library/asyncio.html The threading docs and a useful tutorial on condition variables https://docs.python.org/3/library/threadin...

New BBC Radio 3 streams

TL;DR --  Plug  http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=320000  into the streaming player of your choice.  Be happy! For audio streaming, I use Volumio running on a RaspberryPi 4 with a HiFiBerry DAC . Set up was simple and there's a smart phone ap for remote control.  The reminder of my set up is a Dayton Audio DTA-1 "T Amp" , driving a pair of Wharfedale Diamond 5 loudspeakers (designed by my friend and coauthor, Richard Lee).  Great sound for about $250.  I use Volumio's DSP plug in to add a couple of dB of bass below 80 Hz, and 2.5 dB of treble above 4 kHz. This setup worked well with the BBC's legacy 128 kbit/sec MP3 Shoutcast streams, but the BBC shut them down about a year ago.  A couple of months before the MP3 streams ended, I found a GitHub "gist" with the URLs of their new MPEG-4 DASH streams [1].  For listeners outside the UK, the highest bit rate available was 96 kbit/sec. With MPEG-4 Advanced Audio Coding (A...

Kelvin on Fourier

One of my Friday lunch companions is reading a biography of Lord Kelvin (William Thomson), and mentioned that he had published a couple of papers on Fourier's work when he was 16.  As most of you know, I enjoy tracking down and reading historic papers. It took a bit of work to find them because the Cambridge Mathematical Journal was reprinted in a new collection that changed the volume and page numbers.  Kelvin published them under the pseudonym "P.Q.R." According to Wikipedia, Fourier's results had been attacked by the established British math community largely because he was French; Kelvin had made the decision to study and defend "continental mathematics." * Here are the two papers at archive.org: P.Q.R. "On Fourier's expansions of functions in trigonometric series". Cambridge Mathematical Journal. Vol 2: 258–262. (1841).   https://archive.org/details/sim_cambridge-and-dublin-mathematical-journal_1841-05_2_12/page/258/mode/2up P.Q.R. "N...

Linear Feedback Shift Registers for Dummies

For the past several years, I've been interested in "correlation orthogonal" sequences, such as maximal length sequences (MLS, or M-sequences), Gold and Kasami sequences, Zadoff-Chu sequences, and so forth, for applications like measuring the impulse response of audio systems and room acoustics---what is broadly thought of as system identification .   M-sequences are generated by linear feedback shift registers (LFSR). Gold and Kasami sequences are generated by XOR'ing multiple M-sequences in various phases. Gold sequences are used in spread-spectrum radio applications such as GPS, where they are known as Gold Codes.  Because the transfer function (the frequency and phase response of a system, such as a loudspeaker) is the Fourier Transform of the impulse response, MLS became the dominant method for audio transfer function measurements starting in the late-80 [1].  In the early 00s, sine sweep methods were were rediscovered and popularized by Angelo Farina [2] and hav...