Monday, April 15, 2024

PSSST kit build - Pete's Super Simple Sideband Transceiver

I've been a fan of Pete, N6QW, since hearing him on the excellent Soldersmoke podcast and blog.  Pete has built many home brew transceivers over the years. He has written for many respected ham radio publications. (I'm a bit confused about the best web site to give for Pete, it could be this, or this, or this or even this).

Pete's original description of the radio is here.

When Todd of MostlyDIYRF announced that he was creating a modular kit version of Pete's design for a 20m transceiver I eagerly ordered.

The kit comprises a collection of well designed modules that can be used in other experimental transceivers. Each module typically has input and output pads, designed for edge soldered SMA sockets and 0.1 inch spaced pins on an edge for plugging in to a mainboard. Where required DC power is supplied via these pins. Here's the 4.915Mhz IF board:


The boards are very high quality and come with a set of components and a page with circuit and some tips on assembly and testing.

Being able to build and test each stage separately has been a great help.

Here's the motherboard populated with what's needed for receive:


The IF is at 4.915Mhz, so the VFO starts at 14Mhz - 4.915Mhz = 9.085Mhz. There is a BFO that should be just below the IF frequency to mix with IF out to produce audio from the upper sideband signal.

The VFO and BFO oscillators are provided by a board with an Si5351 clock generator being controlled by a PI2040 CPU programmed with the Arduino runtime. Todd has shared the source code here.

The kit is version 1 and Todd makes it clear that this is not a project for beginners. Making a kit as complex as this is a very difficult task and there are a few things that could be improved in the future. 

There is a discussion group for builders on groups.io here.

At the time of writing, I've got receive working pretty well. I took some notes of what I've experienced so far.

  • My kit was missing two of the 0.1” x 4 sockets and two of the 90 degree headers.
  • The I2C LCD connections are not in the same order as the supplied LCD - VCC and Ground are swapped - danger!.
  • Note the errata about 5V power being needed for the LCD - I plan to re-compile the software for another LCD (Waveshare) that I prefer to use and runs off 3.3V.
  • The Mixer and BFO mixer are two of the same board but I was a bit puzzled as they have different names.
  • Pin 1 on the ADE-1+ is the one with the white dot kind of near it - the text is upside down.
  • The modules have three pins for each input/output, although not mentioned these are great for attaching SMA sockets. I wish the coax connections on the motherboard also matched SMA sockets to jumpers could be used.
  • Steerable amp missing a 3k resistor 
  • Missing 4 more 90 degree headers
  • IF module missing 220pf cap
  • On the driver and final board the pins on the regulator U1 are very close together 
  • T1 on the driver and final board isn’t specified but on the discussion group Todd reveals that it should be 10 turns bifilliar 
  • I chose to fit SMA sockets to each module. In a few cases there isn’t quite enough space for the socket and plug for example between the IF model and Audio output board.
  • My Digital VFO board as it came outputs 21Mhz on CLK2 and something like 40Mhz on CLK0 - not correct.

I downloaded Todd's source code for the board and built and installed it but still the frequencies and even the waveform didn't look right. After having a look I first considered forking Todd's code but realised I wanted to do a major re-structure of the project and so, with his blessing, I started my own version which is here on GitHub.

My changes include:
  • Re-ordering the source code to make it easier for me to follow
  • Replacing "magic" numbers in the code with const definitions
  • Improving the detection of no stored values so that initialisation is more reliable (I think the crazy output frequencies I saw on the supplied CPU were because random memory was being read as stored settings)
  • Printing information to Serial so I know what's going on
  • Underline with a cursor the digit which will change when you tune
  • When adjusting the BFO I adjust the VFO the same amount in the other direction
I continue to update the code as I make other changes. Also I've included a binary uf2 file that others can use it to program the board without having to get a build going.

The RP2040 is a very powerful chip compared to the old Atmel Arduinos and this code only uses about 4% of the space. I'm inclined to try to make a version written in MicroPython in the future for easier maintenance - but that's for another day.

At this point it's receiving fairly well although I don't think I've got the VFO and BFO correctly calibrated yet - they interact. The audio is a bit narrow to my ear so I plan to widen the IF later.


I am learning a lot from this kit but have found some of the inconsistent labelling on the mainboard and cramped layout - particularly as I've used SMA cables - a bit frustrating at times. Using SMA jumper cables adds some cost but I think it's handy to be able to remove modules without desoldering. I made my own cables using crimp SMA plugs and they aren't too hard to make.



My thanks to Pete for the design and to Todd for all the hard work he's put in to creating this wonderful kit. The kit arrived with a Twix bar but I'll hold off tasting it until I've had my first two-way contact on the transceiver.

Thursday, April 11, 2024

"Exception: [Errno 2] No such file or directory: 'udisksctl'" programming rp2040 on linux

A note to others. Just now I was trying to program an RP2040 board using Arduino IDE 2 on Linux and got this error:  "Exception: [Errno 2] No such file or directory: 'udisksctl'"

I was using an Arduino IDE installed via the software app. I had installed the Flatpack version.

Deleting the Flatpack version and downloading the Appimage from Arduino.cc fixed the issue.

I think it's something to do with flatpack security. There's probably a better fix but this is a note for future me.

Saturday, March 30, 2024

Multi-band antenna change - back to the Off Centre Fed dipole

Lucky to have the space for this sort of thing, I had put up a full wave "sky" loop for 80m. It was suspended from a number of trees around the yard but not very high and it came down in the wind a bit. I still have mono-band dipoles for 80m and 40m but it's nice to have a multi-band antenna for general listening without switching. 

Yesterday I pulled down the loop and replaced it with an Off Centre Fed dipole for 80m and above. In the picture to the right it's the front most antenna hanging from my antenna tree so up pretty high.

The wire lengths are: Short side = 39.5 feet, Long side = 94.5 feet suggested by Palomar.

Happily it resonates quite well on the first go with a 4:1 balun as usual. Quite usable without tuner on 80, 40 & 20m.

Before I took down the full wave loop I took this screen shot from SDR++ looking at 40m:

Here's a screen shot of SDR++ with the same gain settings on the OCFD:


Signals, and noise, are greater. 

Friday, March 15, 2024

Handy breakout board for Raspberry Pi Pico

Just picked up a few of these breakout boards. I'm not sure that I like the screw terminals but it is handy having LEDs on each GPIO pin.


 I'm really getting in to the RP2040 and recently ordered some boards with USB-C connectors.

MicroPython is great for most things, there is support for the Arduino runtime library and I can drop down to the native toolchain if required.

Sunday, March 10, 2024

A pleasant trip north via "The Dish"

A friend had some boxes of yachting gear left in Melbourne and I kindly agreed to drive it up to him at Dorrigo NSW. Along the way I visited John, VK2ASU, Merv and Dallas, VK3EB. 

On the way back I dropped in a Parkes and took another look at the CSIRO Dish.

It was a long drive in the Jimny and to avoid the high noise level I listened to podcasts in noise cancelling headphones.

I stopped for two nights at Port Macquarie and was interested to note that a podcast I listened to later, which was obviously downloaded while I was there, had local Port Macquarie targeted ads inserted in-line.

The return trip was more rapid and the final run from Dubbo to Drummond was a marathon in hot conditions.

It was good to get away and to catch up with friends. It's good to be back.

Here's a circularly polarised log periodic antenna.

Here's an Apollo 11 S band OMT:


S Band is 2.4–2.483 GHz. I think an OMT is an Orthomode transducer which is a waveguide component referred to as a polarisation duplexer.

Here's an impressive bit of work, a C30 Converter:



Monday, February 26, 2024

Simple Arduino rotary tuning knob for SDR

I like using SDR++ to remote control my AirSpy receiver but I was missing the tuning knob. SDR++ can be tuned with the mouse wheel but I find it a bit difficult.

Using an Arduino UNO R4 Minima I've made a very simple Rotary encoder that sends left or right arrow keys to the computer. I can't get the interrupt driven encoder code to work so I'm just polling but it seems fine for me. 


Soon I'll box it up for desktop use.

Embarrassingly little code is needed for this.

#include <Keyboard.h>
#include <Rotary.h>

Rotary r = Rotary(2, 3);

void setup() {
Keyboard.begin();
r.begin(true);
delay(1000);
}

void loop() {
unsigned char result = r.process();
if (result) {
if(result == DIR_CW) {
Keyboard.press(KEY_RIGHT_ARROW);
delay(10);
Keyboard.releaseAll();
} else {
Keyboard.press(KEY_LEFT_ARROW);
delay(10);
Keyboard.releaseAll();
}
}
}

Here it is all boxed up like a bought one:



Sunday, February 25, 2024

Wyndham Amateur Radio Club radiofest a good show

It's only a few short weeks since the Ballarat hamfest but as I live pretty close it was a no-brainer to head over. There was an excellent turnout and the new venue, Rowsley Hall, wasn't really spacious enough for everyone to get in.



Lots of interesting older gear to look at. I was tempted by the high voltage variable capacitors.





In the end I came away with a 1994 edition of the ARRL Antenna Handbook. It has calculations written in it by a previous owner.