Thursday, February 15, 2024

Listening to shortwave on my 80m loop antenna

Recently I strung 80m of wire up in a loop attached to trees. It's not as good as my dipole for transmitting but it makes an excellent receive antenna. I've got an AirSpy HF+ SDR running with SDR++ in server mode so I can tune from the house (which is separate from the shack). This is running over two Wifi links but as you'll see it's a pretty good experience.


I'm currently reading Geoff Heriot's excellent book about International Broadcasting titled "International Broadcasting and Its Contested Role in Australian Statecraft - Middle Power, Smart Power". An informed and thoughtful examination of the topic.

Saturday, February 10, 2024

WSPR Watch 4.10 - fixed a long standing thread crash

WSPR Watch, my iOS app for quickly looking at spots on WSPRnet, is 12 years old. During that time it has been updated as the software tools and frameworks have changed.

First it was Objective C and UIKit. Next came the move to Swift. Version 4 was a move to SwiftUI.

I've always used background threads for doing the time-consuming requests to the different data sources. Most recently I've been using async/await and Actors. 

When I moved the app from storyboards to SwiftUI about half of the old code was no longer required. Things look much neater now. For a long time I've had a few crash reports coming in. These have been mostly in the map view. This app really hammers the map by drawing, sometimes, 10,000 or more overlays on it. 

I'd heard of the ThreadSanitiser that is part of the LLVM toolchain and available in Xcode. When I turned it on and ran the app in a Simulator it quickly showed me three data races that I hadn't noticed. My mistake was adding to an Array from a background thread when that Array was also available from other threads.

Having fixed these, I am now seeing zero crashes from users of version 4.9 and later. I expect to see a few due to being out of memory of killed in other ways but so far it looks good.

My thanks, as always, to my wonderful testers and users for their suggestions.

Sunday, February 04, 2024

Enjoyed the Ballarat Radiofest 2024

A few friends came from around the state including Shepparton, Bendigo and Melbourne. We stayed at a local motel and had a nice dinner and walk the night before to check on shortwave reception.


It was a warm day but thankfully there was a very pleasant breeze to keep things comfortable. By opening time, 10am, the crowd was keen to get in to see the gear for sale.



There were lots of older generation transceivers for sale at fair prices but I wasn't particularly tempted.


Quite a few members of my club, the Macedon Ranges Amateur Radio Club were on hand as were members of the Bendigo club who even organised a bus.


I picked up a few 27Mhz AM transceivers in the hope I could find one I can move to the 10m amateur band. I couldn't resist an Icom IC2A 2m handheld transceiver for $3.


A very enjoyable day. My thanks to the organisers.

Wednesday, January 31, 2024

LiPo Battery box - a modest project

I have a 12.8V 12Ahr Lithium battery but I wanted to avoid a mess of wires when using it in the field so went looking for a box to house all the bits.

Annoyingly hardware stores don't seem to list the internal dimensions of these boxes on their web sites but I found one at Bunnings for $35 that is perfect.


Not much to this project. There's an in-line automotive fuse holder, I've fitted a 30A fuse for now. A nice big switch and a panel mount Anderson connector.



The fit is tight enough that the top of the case presses a little on the top of the battery and stops it moving around.

Next step.... SOTA!

Friday, January 26, 2024

Raspberry Pi Pico RF transmit

Some great work by Jon Dawson on his 101 Things project "A collection of cool projects to make!". Jon clearly describes how he has built:

  • SDR Receiver
  • SDR Transmitter, including SSB, AM & FM
    • A Class E (and D) power amplifier
  • Multi-effect Guitar unit
Source code is shared on his Github repository

He has a video about the transmitter:


I set up the native C++ build tools for the Raspberry Pi PICO on an Intel Linux machine. I got the FM transmitter working, well it builds, and creates a carrier on 88MHz but the audio I'm streaming it it isn't modulating it for some reason.

There's no comments about how to run this but I deduce that you use a python program to stream a sample wav file over serial to the PICO which should then generate 88Mhz and FM modulate it.

python3 transmit.py Audio_Sample_-_The_Quick_Brown_Fox_Jumps_Over_The_Lazy_Dog.wav 

Available Ports

0 /dev/ttyS0: ttyS0 [PNP0501]

1 /dev/ttyACM0: Pico - Board CDC [USB VID:PID=2E8A:000A SER=E669BCF8E72E682F LOCATION=1-2:1.0]

Select COM port >

1

I did run into a build issue on Intel Linux so I raised a bug report. Jon looked at it overnight and did some updates.

The pico_setup.sh script runs on my machine right up to the point where it tries to install Visual Studio Code. The different samples all now compile. Jon seems to have removed the 19_fm_transmitter example which I was trying to get going.

I have some FST3253 on the way so I can try the transmitter sample.

This work has really driven home to me what a fantastic chip the RP2040 is.

Update

I wrote to Jon about the issues I found and he has updated the code and things are building and working correctly now. If you got the source code early on, do a git pull now and try again.

Here's my version of the board:


And here's some very rough looking AM:


"The quick brown fox..." Here's some sideband:



Wednesday, January 24, 2024

Tried a raspberry pi pico WSPR transmitter with no external oscillator

Someone mentioned that it's possible to generate RF with a Raspberry Pi PICO with no external oscillator. There is a library by Roman Piksaykin, called pico hf oscillator and it's used in a simple WSPR transmitter available here.

To build this project you need the native C/C++ toolchain. There are good instructions around for getting this going on a Raspberry Pi, but I did run in to a few issues getting it going on my Apple Silicon Mac. In the end it compiles.

The code dedicates one of the two CPU cores to generating the RF signal and it can go up to 33Mhz.

The waveform out of GPIO pin 6 looks like it has a bit of jitter on it.


It sounds good on the receiver and was easily decoded locally. 


The BNC to the CRO was unplugged and connected to a 40m dipole and stations heard me.




It looks like it drifts slightly during a transmission but not too much. Thanks to Roman Piksaykin for his good work on this. 

The Pico is a remarkable platform and I've started looking at this amazing work to produce other signals including sideband from 101 Things.

World Economic Forum lists AI as the second top risk

This week I discussed the World Economic Forum's risk report which lists AI as second only to climate change.

You can listen here if you wish.

I'll be back again next Tuesday evening for more tech talk.

Sunday, January 21, 2024

AI noise reduction on sideband radio

David, VK3KR, drew this to my attention. There is amazing work being done to remove radio noise from sideband signals. Check out the demonstration on the RM-Noise Video page

RM-Noise only has a Windows client and does the work in the cloud. I look forward to the day when this is built in to HF radios.