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 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.

Update - now transmitting

After some further gnashing of teeth I have the transceiver transmitting. I see about 20V peak to peak across a dummy load. The waveform doesn't look quite right to me:

There is also some instability - sometimes when I start transmitting it takes off.

The trick was that the mainboard wiring diagram has several errors and the labels on the board are also incorrect. Mick Baldwin figured it out in this post and I've re-drawn it here for my own edification.

(Click to enlarge).

The receiver is working really well and is surprisingly good to listen to despite the lack of AGC. I've been calling CQ without luck so far but will report back when I have a contact.

No comments: