Category Archives: Design Notes

A Whole Bunch Of New Designs

I’ve been busy.  Here is the latest batch of designs that have been sent out for fab.  Some are simple, some more complicated, and some are updates of earlier designs.  KiCad and JLCPCB sure make this stuff easy!

Look for these designs to show up on the Turn Island Systems website.

RX-888 External Clock Interface Kit:

RX888 Ext Clk 1 front

 

BackPanel v1 front

This is a fairly simple kit that provides termination, appropriate attenuation, and DC isolation for the external clock interface to the RX888 SDR.  This includes the interface card, and a replacement back-panel for the RX888.  The complete kit will also include a short U.FL jumper cable and a piece of thermal foam gasket that is used to reduce the RX888 internal temperature rise.

That SMA plug shown on the right side of the board is not present when this board is installed inside the RX888, but can be soldered on when the board is used externally.

Updated Clock Distribution Buffer:

Clock Dist v2.0 cropped

The existing five-output clock buffer has proven quite useful for distributing reference clocks in multiple-SDR receiver systems.  Since I am running out of that unit, I have sent this upgraded design for fabrication and assembly.  This new design now provides six outputs, each with jumper-selectable AC/DC coupling on both the signal and ground connections.  The AC coupling won’t make any difference if you have RF ground-loop issues, but can really help with DC/power supply ground issues (as we often see with USB-powered devices).  This new board also provides a power/clock indicator LED.

AC-Coupled SMA Adaptor:

Isolator 1 top

This tiny board provides capacitor-coupling for both signal and ground.  While it’s simple, it can be very useful when dealing with grounding issues.  Note that the commonly-available DC-block adaptors only block the signal pin, and still leave the grounds connected.

Filter/Preamp V2:

Filter-Preamp v4

This is my second try with the filter-preamp.  I have rearranged the low-pass filter to (I hope) reduce blow-by, and have upgraded the amplifier to use a Minicircuits MAV-11BSM+ device.  This should improve the intermodulation distortion and provide a good noise figure.  I have also moved the amplifier to the output of the low-pass filter, to reduce potential out-of-band overload issues.

The SMA jack and plug positions provide the option for the in-line jack/plug and right-angle jack/jack configurations.

I may eventually replace the MAV-11 amplifier with a high-speed current-feedback amplifier, which should result in excellent distortion numbers,  reasonable noise figure, and lower power consumption.  But for now the current design should be a good performer, and I want to verify the performance of the new filter arrangement.

Swiss Army Knife vs Can Opener?

In my last entry I described a feature and option-laden filter/preamp board, comparing it to a Swiss Army Knife.  Great, but sometimes you just want a can opener…

After some serious discussion about how such a design would be used, and the typical requirements, I’ve decided that a major simplification is in order.  (And, of course, a new feature)

Filter-Preamp-simple v1

The consensus was that there was no need for bypassable filters, so the stages are now:

  • 18 dB shelf filter (-9 dB @ 6 MHz)
  • 17 dB preamp
  • 30 MHz elliptic low-pass filter (or 60 MHz as a different assembly)

This board is powered by an external +12V DC supply, and draws about 20 mA.  There is an active-filter stage that should clean up most supply noise.  The new feature is simple low-loss reverse-polarity protection for the power input.

Here is the (simulated) gain of this unit:

simpleAnd the schematic:

Simple Schematic

Actually, the two filters can be bypassed at assembly time as a load-option.  Perhaps this will let this board also be used as an amplifier-only design.

I have sent this design out for PCB fabrication and ordered the components — I can’t wait to see how it all comes together!

 

A Combined Multi-Section Filter and Preamp

Many SDR receivers, especially those designed for full HF-spectrum use, have needed various filters and preamps between the antenna and the SDR.  High-power AM and FM broadcast stations can overload the receiver front-end, so these are filtered out.  The characteristics of atmospheric background noise are such that a “shelf” (or “shelving”) filter which attenuates the lower-frequency range can also be useful in optimizing the SDR dynamic range.

Finally, the SDR sensitivity / input noise-floor at  the higher end of the spectrum can be marginal.  Add the inherent losses of all these filters and a low-noise, high dynamic-range preamp becomes very useful.

So I am designing the “Swiss Army Knife” of SDR front-end modules:Filter-Preamp

No, there aren’t four SMA connectors, only one pair will be installed, giving an “in-line” version, and a “right-angle” version that can fit on a small die-cast enclosure.  There are four sections to this board:

  • AM Broadcast Band filter
  • 15dB Shelf filter
  • 13db gain preamplifier
  • FM Broadcast Band filter

Each of the filters can be bypassed using pin headers and jumpers.  The amplifier components can be omitted during assembly and a jumper used to bypass this section.

The FM band filter allows for 6-meter reception, but many SDR receivers are clocked at 66 MHz or so, and require a lower corner frequency on the low-pass filter.  This filter can optionally be built with a corner frequency at 30 MHz.

Amplifier:

Amplifier

Amplifier simulated with 2N5109

The amplifier is a simple wide-band zero-inductor design (found in the November 1984 edition of Ham Radio magazine, page 100: https://www.worldradiohistory.com/Archive-DX/Ham%20Radio/80s/Ham-Radio-198411.pdf).  It’s become difficult to find the classic 2N5109 transistor, so I am using the more modern BFU90Q, which has similar performance.  But I am simulating with the 2N5109 because that’s the model I could find.

The amplifier draws about 20 mA from a +12V power source, and my board includes a simple but effective filter that eliminates most noise and ripple on the DC source.

Here are the three filter sections:

filters 1

From left to right the first filter is the AM broadcast filter,.  This starts attenuating below 3 MHz, and is at least -50dB down at the top of the AM band.

Next is the 15 dB shelving filter.  In a previous filter I had two 10 dB shelf filters in series, with each of them bypassable.  This limited-size board requires a compromise, so there is just a single filter section.  The inclusion of the AM BCB filter should mitigate the effects of the simpler shelf filter configuration.

The right-hand filter is a elliptic low-pass design, that cuts off at 60 MHz.  The  attenuation in the FM broadcast band, and above, is approximately 80 dB.  This is also an excellent anti-aliasing filter for the SDR.

With the shelf filter bypassed the filter response from 3 to 60 MHz is essentially flat:

filters 3

With all filters and amplifier enabled, the overall gain at 60 MHz is about +10 dB.  The input (blue trace) is -60 dBm, and the output (green trace) is -50dBm :

filters+amp 1

And here is the schematic for the whole thing:

SchematicThe simulated performance shown above should be reasonably close to the actual thing.  At these frequencies the inductors are the largest source of simulation errors, but I am using Coilcraft inductors and their provided simulation models.  These have proven to be remarkably accurate in previous designs.

But this is a tight little board, and layout parasitics may be an issue.  You will see that the (unshielded solenoid) inductors have been oriented to reduce coupling, and (which you can’t see) the ground planes have been relieved underneath the most sensitive tuned circuits.  I do hope that the amplifier won’t turn into an oscillator, but the design and layout do give me some optimism.  I plan to have a working prototype in about a month.

Like the Swiss Army Knife, this design may not be the best tool for every job, but it should be useful in SDR receiver systems.

Acknowledgement: I would like to thank Clint Turner / KA7OEI for his invaluable advice on filters, amplifiers, and optimizing SDR performance.  His excellent blog: https://ka7oei.blogspot.com/2020/08/revisiting-limited-attenuation-high.html

 

Latest Batch of Boards

I’ve just received another batch of QDX External Reference Interface boards.  More info at Turn Island Systems

Also, I just sent out boards for a four-channel RF Combiner / Splitter, which takes four 1W (or lower) signals (80, 40, 20, and 10 meters), and combined them into a single output for feeding a multiband antenna.  These provide at least 20dB port-port isolation, and less than 2dB loss.  If all works as planned, these will be used for Ionospheric research.

MC-CXC-Notch

RF Combiner Notch v0.1 top

And finally, here’s a 1W (approximately) power amplifier, using 74ACT04 digital integrated circuits to drive a wideband transformer.  This takes a 3.3V digital input between 3 and 30 MHz, and produces a 1W square wave output.  External filtering will be required, and the combiner shown above should provide adequate filtering.

OneWATT v0.1 top

There are “better” ways to make a 1W amplifier, but this is quick and easy, and requires no tuned circuits.  I can’t wait to test these designs!

A Little Amplifier

QWATT 0.2 top

In the process of turning my three-output Si5351-based “ClockBox” into a three-band simultaneous FST4W beacon, I decided I needed a small power amplifier to boost the (approximately) 10dBm square-wave outputs up to a 1/4-watt clean sinewave.  Rather than using FETs and transformers, or a Class-E design, I decided to try using the an 74ACT04 hex inverter as the power stage.  Each inverter output can deliver in excess of 25 mA  with about a 4.2V swing (+5V supply) so six of them in parallel looked promising.  And I happened to have a full tube of old 74ACT04 parts in DIP form (remember those?)

So I built one, tuned for the 15 meter ham band:

breadboard 1(Ignore those power-level numbers, I had a bad coax jumper)

I was worried about connecting the outputs directly, afraid that skew would result in excess output-stage current, but some tests showed low unloaded dissipation  up past 30 MHz.  Adding small resistors at each output might be a good tradeoff, but for now I decided not to waste the power.

I used a simple L/C impedance-matching network to transform the 50 Ohm load (antenna) down to about 3 Ohms which matched the ganged inverter output impedance.  Instead of a simple series inductor I used a series L/C, calculated to provide the correct reactance at the design frequency, but giving a high impedance at higher or lower frequencies, and a bit of extra filtering.  This also makes the design slightly more bulletproof — you can run any frequency into it without causing excess dissipation.

The output power of the test board was actually closer to 1/2 W, and the harmonics were slightly better than 40 dB below the carrier.

PNG2

 

The amplifier efficiency is about 60% and the temperature rise on the buffer was well within comfortable limits.  This is good enough that I am having some circuit boards made.  The only frequency-sensitive components are two capacitors, and one toroid inductor.  I would have liked to use small surface-mount inductors, and the board does provide for that option, but the toroid has much lower loss.  The board uses two surface-mount 74ACT04 parts, and a small buffer to drive the 12 inverter inputs.

EMI? Use The Proper Ferrites!

Transmitters and computers often don’t get along.  Cables going to computers, routers, ethernet switches, USB hubs (and anything else with wires) can pick up RF and disrupt operations.  This RF can be coming from your near-by antenna, from leaky coax, or from the transmitter itself.  Usually when this happens the easiest fix is to add ferrite chokes to the cables.  Sometimes it takes several chokes on a cable.  You will end up experimenting.

The ferrites you will find on eBay (etc.) are probably designed for VHF signal suppression. They will work after a fashion on the HF bands, but you will have better results if you use ferrites made from a material optimized for HF frequencies. Cores using “31” material from the “Fair-Rite” company are excellent performers. These come in all shapes and sizes, but the clamp-on core shown below has proven to be quite useful.

Ferrite

https://www.fair-rite.com/product/round-cable-snap-its-431164181/

Fair-Rite Products Corp
Part Number: 0431164181
31 ROUND CABLE CORE ASSEMBLY
Lower & Broadband Frequencies 1-300 MHz (31 material)

You can buy these from Mouser:
http://www.mouser.com/ProductDetail/Fair-Rite/0431164181/?qs=KmHvPbTOE4SbzMQqE/Okzw==

Here are some guidelines for ferrite core use:

  • Put the core as close as possible to the equipment.
  • If possible take two or three turns through the core. Up to a point, the suppression effect is proportional to turns² (turns-squared).
  • If possible, run power and ground together through the core.
  • Before buttoning things back up, secure the heavy core to protect the wires and connectors.  This advice is definitely appropriate for boat radio installations, but perhaps not necessary when in a stable environment.

 

A Simple Matter of Software (SMOS)

A SMOS.  That’s what we hardware engineers (and management, too) call it when something needs to be fixed and the hardware is already out the door.  Fortunately, in this case it was indeed a software fix.

I’m talking about the QDX and the difficulty it had generating very small frequency shifts, as first noted by my friend Glenn (N6GN). I described the problem and my measurement techniques in these posts: http://wb6cxc.com/?p=244, and http://wb6cxc.com/?p=275

I became fascinated by this issue, and while adding some pretty useful features to my Time Interval Counter, the QDX gave me a great way to improve my measurement technique.  In the process I re-connected with an old ham friend, and met some new ones who I really respect.

I also got to know the WSJTX mode FST4W, which uses much smaller/slower FSK than FT8 or WSPR.  For example, a single transmission of FST4W-1800 takes a half-hour with a symbol period (Baud) of 11.2 seconds, using a 0.089 Hz tone spacing.  This requires extreme accuracy and stability on the part of the transmitter and receiver.  The FST4W (and WSPR) modes are being used to measure atmospheric Doppler shifts, among other things.  Here’s a description: https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf

Measuring FSK patterns is one thing, but analyzing the actual audio-to-RF frequency generation behavior called for a more deliberate approach.  So, I set up my PC to generate a slow audio-frequency sweep (using the NCH Tone Generator program), and sent that into the QDX USB port.  Actually, first I sent it to my Icom IC-7200 USB port and measured that output to make sure that my audio sweep (and measurement technique) were suitable.  Here’s a 1000 to 1010 Hz sweep, transmitted on 20 meters:

IC7200 20m sweep 1000-1010As before, my counter is digitally shifting the 14 MHz signal down into the audio range and counting that.  Here, we see a smooth and linear sweep with only a little noise.

I then tried the same sweep input with the QDX:

QDX 20m sweep 1000-1010

Here you can see the uneven and quite large steps, roughly 1.25 Hz each.  This would work (barely) with the 1.465 WSPR tone spacing, but was completely unusable with the smaller tone-spacing modes.  Here’s what FST4W-300 looked like (0.56 Hz tone spacing):

FSTW4-300 30m -1

As you can see, one tone is being entirely skipped over, and the spacing on the others is incorrect.  Not surprising given the sweep results.

I posted my measurements to the QRP Labs groups.io discussion (https://groups.io/g/QRPLabs/topic/qdx_fst4w_300_transmits_only/95257422 and elsewhere), as did Glenn and others, and Hans (QRP Labs owner and designer) dug right in to solving the problem.  He quickly homed in on the algorithm that calculated the fractional divider values for the Si5351 clock generator chip used in the QDX, and he generously traded email with me, describing his progress and solution.  It turns out it was a combination of limited floating point resolution and integer size.  Hans also figured out a way to improve the algorithm by separating the carrier frequency calculations from the audio-offset calculations.  The result was spectacular!  Here’s the 10 Hz sweep using the new  Beta 1_06_005 firmware:

QDXv6.1.5 20m sweep 1000-1010 correct

And here is the QDX transmitting FST4W-1800 (0.089 Hz tone spacing):

FSTW4-1800 30m -v1.6.5 -4

This is perfect.  The frequency-setting is now amazingly good.

And it was all just a Simple Matter Of Software!

But, there is still work to do if we want to use the QDX on the slower FST4W modes.  The QDX transmit frequency drifts as the radio heats up during a long transmit cycle.  This doesn’t really affect modes like FT8 or WSPR, but the small drift (about 1 Hz in fifteen minutes on 20 meters) will cause FST4W-300 and higher modes to fail.  Here is the thirty-minute long FST4W-1800 transmit sequence (remember this is a tone-spacing of 0.089 Hz):

FSTW4-1800 30m -v1.6.5 -5

Probably the only reasonable way to get the needed stability is by using an external 25 MHz reference, probably a GPSDO (GPS Disciplined Oscillator).  The QDX can be easily modified to accept an external reference, and I will be trying this fairly soon.

But all in all, this was a gratifying experience, and I salute Hans and QRP Labs for the speedy and spectacular work in solving a problem that most of the QDX users would never have even noticed.  I now have two more QDX’s on order: https://www.qrp-labs.com/qdx.html

 

Measuring FSK With a Mixing Reciprocal Counter

While evaluating the behavior of the QRP Labs QDX transceiver (my post here:  http://wb6cxc.com/?p=244 ), I put together an old-fashioned mixer / filter to let me make more accurate FSK frequency measurements.  I am using my Time Interval Counter, which counts the cycles of a 100 MHz (10 ns) internal timebase, and calculates the frequency of the input signal using simple math:

Frequency = 1 / Period

This works especially well for lower frequencies, where obtaining precise frequency results with a standard cycle-count counter requires extremely long measurement intervals.  The resolution of a reciprocal counter is a function of the timebase, in this case the 10ns timebase provides eight digits of precision with a one-second count interval (10ns / 1s = 1e-8)

Eight digits is good, but when measuring 10.140 MHz WSPR, with its symbol rate of 1.4648 Hz we need to do better.  With three samples per symbol (about the slowest we can sample it), we only have (10ns/ 0.5s), or about 7.5 digits.  This lets us measure a 10.140 MHz signal to about 1/2 Hz resolution.  This will show us the presence of the modulation, but not much more:

Counter direct div2M

Using an external mixer and VFO to shift the 10 MHz signal down to 100 Hz makes a huge difference in measurement resolution.  With our 1/2 second sample rate we still have 7.5 digits of resolution, but since we a re measuring a 100 Hz signal the resolution is now about 0.00005 Hz!

Setup

But I don’t need an external mixer and VFO — all that can be done digitally inside the gate-array I use on my frequency counter:

TIC-1-768x416

 

So I added those to the FPGA logic: Timing Path 1

 

This is the block diagram of the signal path in the counter.  The blue boxes are contained in the gate-array, and the grey boxes are discrete components on the circuit board.  Not shown are the uController, and a few other sections inside the gate-array.

There are four input stages, configurable for 50-Ohm or High-Z input (compatible with a 10X ‘scope probe), AC or DC coupled.  Each stage, the NCO, the 10 MHz TCXO, and a few other sources (not shown) feed a N-way selector that feeds four divider/timestamp blocks.  The switch also allows any of the input ports to feed a 10 MHz reference clock to the internal 100 MHz PLL.  This allows the counter to use an external OCXO or GPS-disciplined oscillator for increased precision.  In addition, the switch selects the mixer inputs.

The NCO is driven by the 100 MHz clock, and is 29-bits wide.  This provides a frequency resolution of 100 MHz / 2e29, or 0.186xxx Hz, and a maximum frequency of 50 MHz.  The 100 MHz clock means there will be a jitter of 10ns in the NCO frequency.

The NCO or an external signal drives the “clock” of a simple flip-flop mixer, and the external signal feeds the “D” input  This acts as a subtractor.  With perfect input signals there will only be a difference output, there will be no sum as you would see with an analog double-balanced mixer (or with a digital XOR gate).  But we don’t have perfect inputs, as these have been sampled and synchronized by the 100 MHz internal counter clock.  There is plenty of jitter on these mixer inputs, and the output can look like this:

TEK0002 TEK0003This isn’t a mixer difference frequency, it’s the result of jitter on (relatively) close frequencies.  Here the input is 10.14018 MHz and the NCO is running at 10.1387 MHz, giving a 1.483 KHz difference frequency.  But we can’t count that mess!

So I added a simple digital filter after the mixer.  This is a simple 8-bit up/down counter that limits at 0 and 255.  It’s essentially an integrator, counting up when the input is a “1″ and counting down when the input is “0″.  The output goes high when the count hits 255, and stays high until the count hits 0.  This results in a low-pass filter with a cutoff frequency of (100 MHz / 255) / 2, or 196 KHz.  Here’s that same noisy mixer output after it passes through the filter:

TEK0001

This cleaned-up signal is then fed to one of the divider/timestamp stages and the timestamps are read by the uController, converted to frequency,  and then sent over the counter serial port for logging or further processing.  This serial port can only handle report rates of about 50 per second, so the divider has to be set appropriately.  With a 1KHz mixer output the divider is set to 5 for a 50 Hz sample rate (or set to 100 for a 10 Hz rate.)

Here is a 10.140 MHz WSPR measurement, with the NCO set for a difference frequency of about 100 Hz.  The divider is set to 5, giving a sample rate of about 20 Hz:

wspr 2And here are some of the actual frequency measurements:

flist 2

Note that only about seven digits are actually meaningful, but that’s still quite useful.

And unless I decide to do more processing with the local uController, because of the slow serial port update rate this mixer down-conversion method is only useful for fairly low-speed FSK measurements.  Of course this is also useful when making other low-bandwidth measurements, such as clock drift.

And there’s still room left inside the FPGA!  What’s next???

 

QDX Sensitivity Test

I still haven’t done a full evaluation of the QRP Labs QDX transceiver, but I did run a quick check of the receiver performance, comparing it to the Icom IC-7200 (which also has a native  USB interface for audio and CAT control):

ComparisonHere you see two instances of WSJTX, running FT8 on 20 meters.  My off-center-dipole was connected to a coax TEE, feeding both the QDX and the 7200.  No effort was made to match impedances, but since both radios are getting an identical signal that should be good enough for a comparison.  Obviously the transmitters were not activated during this test.

I let the programs run for fifteen minutes and then compared the logfiles.  The7200 logged 524 decodes, while the QDX logged  530.  The Signal/Noise ratio was generally the same, with the QDX showing one or two dB improvement on the stronger signals.  These small differences may be due to the AGC or the slightly narrower filters on the Icom rig.

This test was done if a fairly quiet location, with no nearby strong signals.

Conclusion:  So far, the QDX receiver is a good performer.