Topics

QCX-SSB: SSB with your QCX transceiver

Guido PE1NNZ
 

Over Christmas I have been playing around with a simple modification that transforms the QCX into a Class-E driven SSB transceiver. With this setup I have been able to make several SSB contacts and FT8 exchanges across Europe and so far this experiment is working reasonable well. It can be fully-continuous tuned through bands 160m-10m in the LSB/USB-modes with a 2200Hz bandwidth, provides up to 5W PEP SSB output and has a software-based full Break-In VOX for fast RX/TX switching in voice and digital operations.

The SSB transmit-stage is implemented in a completely digital and software-based manner: at the heart the ATMEGA328 is sampling the input-audio and reconstructing a SSB-signal by controlling the SI5351 PLL phase (through tiny frequency changes over 800kbit/s I2C) and controlling the PA Power (through PWM on the key-shaping circuit). In this way a highly power-efficient class-E driven SSB-signal can be realized; a PWM driven class-E design keeps the SSB transceiver simple, tiny, cool, power-efficient and low-cost (ie. no need for power-inefficient and complex linear amplifier with bulky heat-sink as often is seen in SSB transceivers).

An Open Source Arduino sketch is used as the basis for the firmware, a hardware modification bypasses the QCX CW filter and provides a microphone input in-place of the DVM-circuit; the mod is easy to apply and consist of four wires and four component changes and after applying the transceiver remains compatible with the original QCX (CW) firmware.

This experiment is created to try out what can be done with minimal hardware; a simple ATMEGA processor, a QCX and a bit of signal processing to make SSB in an artificial manner. It would be nice to add more features to the sketch, and see if the QCX design can be further simplified e.g. by implementing parts of the receiver stage in software. Feel free to experiment with this modification and let me know your thoughts or contribute here: https://github.com/threeme3/QCX-SSB

73, Guido
PE1NNZ

Kārlis Goba
 

Guido, if what you say really works (I know that in theory it could), this is indeed an amazing feat and a gamechanger. Also from the engineering perspective this seems to be a marvel, close to the limitations of ATMega. I will definitely try this out, it tingles my DSP nerve.

--
Karlis YL3JG

Kārlis Goba
 

Can you comment on the sideband suppression level in the _transmitted_ signal?

--
Karlis YL3JG

John VA7JBE
 

I am also keen to hear more about how this performs, though I won’t get a chance to test it myself for a couple of weeks. 

Cheers, 
John VA7JBE 

Jerry Gaffke
 

Certainly interesting, I"ll be following this.

From what I understand of Class E, it would be difficult to have it remain efficient
across all of HF without some sort of switching. 
Though just getting this to work Class C is a big win, with Class E on a favorite band or two.
FT8 is fine with Class E or C, does not need a linear amp. 

Running an 800khz i2c bus into the si5351 is over spec by a factor of two, 
Maybe one of the DDS chips would be more appropriate here.

Amazing this could be done on an Atmega328P.
Again, there might be better choices.

rentwist@...
 

Brilliant!  Does Hans know about this yet?

Jerry Gaffke
 

The 400khz spec is part of the i2c standard.
Easy to imagine that chips can go much faster.
Especially with a short bus and no other loads.

Updating the frequency on an si5351 requires a bunch of register writes.
A DDS chip would require fewer writes and provides much more flexibility.
But the cheapest DDS chips are 10x the price of the $1 si5351.

ARM processors can be cheap and powerful.
But you work with what you got.

And if you got a QCX to do this, that's totally amazing!

Jerry


On Mon, Jan 28, 2019 at 02:32 PM, Jerry Gaffke wrote:

Running an 800khz i2c bus into the si5351 is over spec by a factor of two, 
Maybe one of the DDS chips would be more appropriate here.

Hans Summers
 

 
Brilliant!  Does Hans know about this yet?

I do now, as I am a member here too :-D 

I would be very interested in performance measurements: overall PA efficiency, opposite sideband, and 2-tone tests.

73 Hans G0UPL

Kelly Jack
 

This sounds very interesting.

Are there receive capabilities below 3mhz? I thought the IQ quadrature outputs did not go low enough on the si5351.

Does it matter what the envelope response times are of Q6? I note that these may vary depending on what transistor is used and whether the recently suggested mods have been made?

Presume the code could be extended to do cw also with these mods?

As an aside I have added an extra output socket that takes the IQ outputs straight out for binaural mode listening that works for ssb. a little light on volume (no vol control) but ok with earphones.

Regards 



Simon 
VK3ELH


kumar gaj
 

congrats Guido


Very ingenious  of you to do this !
great achievement
keep up the good work
hope you can send an audio recording of your Transmission
73
Kumar
VU2BGS



On Mon, Jan 28, 2019 at 11:46 PM Threeme Three <threeme3@...> wrote:
Over Christmas I have been playing around with a simple modification that transforms the QCX into a Class-E driven SSB transceiver. With this setup I have been able to make several SSB contacts and FT8 exchanges across Europe and so far this experiment is working reasonable well. It can be fully-continuous tuned through bands 160m-10m in the LSB/USB-modes with a 2200Hz bandwidth, provides up to 5W PEP SSB output and has a software-based full Break-In VOX for fast RX/TX switching in voice and digital operations.

The SSB transmit-stage is implemented in a completely digital and software-based manner: at the heart the ATMEGA328 is sampling the input-audio and reconstructing a SSB-signal by controlling the SI5351 PLL phase (through tiny frequency changes over 800kbit/s I2C) and controlling the PA Power (through PWM on the key-shaping circuit). In this way a highly power-efficient class-E driven SSB-signal can be realized; a PWM driven class-E design keeps the SSB transceiver simple, tiny, cool, power-efficient and low-cost (ie. no need for power-inefficient and complex linear amplifier with bulky heat-sink as often is seen in SSB transceivers).

An Open Source Arduino sketch is used as the basis for the firmware, a hardware modification bypasses the QCX CW filter and provides a microphone input in-place of the DVM-circuit; the mod is easy to apply and consist of four wires and four component changes and after applying the transceiver remains compatible with the original QCX (CW) firmware.

This experiment is created to try out what can be done with minimal hardware; a simple ATMEGA processor, a QCX and a bit of signal processing to make SSB in an artificial manner. It would be nice to add more features to the sketch, and see if the QCX design can be further simplified e.g. by implementing parts of the receiver stage in software. Feel free to experiment with this modification and let me know your thoughts or contribute here: https://github.com/threeme3/QCX-SSB

73, Guido
PE1NNZ

erik@...
 

@Guido,

Nice you run the SI5351 at 800kHz, will try that too.
Out of curiosity. It seems you use single I2C data byte writes in si5351_SetupMultisynth instead of using the auto address increment of the SI5351, is that for any reason?
--
Erik@Home

Michael Baker
 

Outstanding!!
Keep us in the loop on your progress..Mike  K7DD




On Tue, Jan 29, 2019 at 10:33 AM <erik@...> wrote:
@Guido,

Nice you run the SI5351 at 800kHz, will try that too.
Out of curiosity. It seems you use single I2C data byte writes in si5351_SetupMultisynth instead of using the auto address increment of the SI5351, is that for any reason?
--
Erik@Home

freefuel@...
 

Hi Guido, do you know if this modification could also be applied to the U3S beacon? 

Thanks ,
Justin N2TOH  

ajparent1/KB1GMX
 

The U3s does not have the  ability to alter power out by MPU control.  

Allison

ajparent1/KB1GMX
 

The mod interferes with cw ability due to the use of the key jack for the mic.
However the radio could before that.  A different mod could prevent that.  The
bigger issue is the code I've seen does not consider doing CW at all.  So
adding the code for that and software "switching" for that needs to be added. 
CW is easy compared to doing SSB.  Keep in mind its not an add to the QCX 
program its a wholesale replacement and leaves out a lot (all the built in digital
modes and CW reader) and I doubt all that would fit.

Q6 depending on the mod it may be an issue.  Doing EER means getting the
amplitude phase correct with frequency change or you get all manner of artifacts.

The IQ quadrature still can't go below 3 or was it 3.5 mhz.  I'm puzzled by Guidos
comments on that.  If the IQ VFO is not 90 degrees then the  RX still works but
as a simple DCRX without image rejection.  There are ways around that but
none trivial or compatible with current QCX code.

Its possible to mod the QCX to get better SSB image rejection using new constants
in the all pass and modifying the 200hz audio filter as something SSB friendly.

However read the file or go to the web site and read the basic methods are there.
Also the details of the mods to do it beside changing the code completely. And it was
done to test a specific idea, simple SSB using 8bit MPU and a class E amplifier
using the EER technique (synthesize frequency and amplitude and control the
NCO and Amplifier to assemble the resulting signal).

The whole thing is interesting to me but at best its an experimental project
for SSB.   It differs from the usual SDR as well.  If more cpu is needed to do
decent SSB then STM32F4 level 32bit MPU then going to the more common
SDR approaches for SSB is the better way to go and yields a cleaner signal.

What lacking is detailed testing of the transmitted signal quality and purity.  Doing
SSB this way can easily create all manor of trash on the band if minor details are
wrong.   

Allison

ajparent1/KB1GMX
 

Jerry,

FT8 does not even require SSB as it has no amplitude information.  PSK31
does for an example.  The 5351 can generate the tones directly so
FT8/FT8-call and friends are more of an software Encode and Decode 
issue.

Also running I2S at higher speeds is far from uncommon.  Most parts easily 
do that to the megabit/second level.  The base spec of 400khz has not kept 
up  with serial EEproms and other devices where speed is a useful attribute.

As to DDS, most of them have a phase register that might be easier to
use.  However it has to be one of the very high end parts to avoid problems
with SFDR.  Since the 9850 is pretty poor for SFDR and still nowhere as
cheap a 5351 the choices may be a matter of balance.

The other side of the coin is expensive DDS and CPUs that can do the
RX side as well as TX pushes for STN32F4 class parts and full out SDR
which avoids some of the reconstruction problems and possible errors.

Allison

Kārlis Goba
 

Allison, I think you're overlooking one important point here, and that is the suitability of class C/D/E for amplification of such generated SSB signal, as I understand. It's not argued that it's somehow easier to generate - no, plus it's subject to errors of mathematical approximations (Hilbert transform, arc tangent, jitter). If you can still go 5W SSB with just 3 BS170s, that's a marvel. Even if the resulting RF stage is not very linear in the baseband, some degree of IMD can be tolerated for speech, as long as it's all within the channel.

I agree that a measurement of TX signal quality/purity is absolutely necessary.

--
Karlis YL3JG

Jerry Gaffke
 

I find this interesting mostly because it stretches my head a bit on how to generate SSB.
Traditionally, we amplitude modulate and then filter out all but one sideband,
(unless you're old enough to remember the B&W 2Q4).
This results in a roughly 3khz wide band of RF signals, all at different amplitudes.
That's primarily a frequency domain approach.

Guido reports that just nudging around a PLL oscillator without any amplitude variation
results in an intelligible SSB signal.  (Though Allison mentions that the lack of
amplitude variations will result in undesired artifacts.)  Seems halfway between 
a frequency domain approach and a time domain approach.

Weird, but more surprising to me is that a $10 8bit RTL SDR can capture a couple mhz of spectrum.
So could easily capture all of 40 meters during a contest, and from that data resolve all those signals simultaneously.
You could run that backwards, and transmit all of 40 meters using a single 8 bit DAC.
(Don't try this at home!).  That's a time domain approach.

The QCX provides a way for Guido to shape the envelope through the key shaping integrator at Q6,
though I can imagine there are better ways to do this.  Many of the cheap STM32F ARM processors
provide a suitable 12 bit DAC that could be made use of for this.   And the 12 bit ADC's would
be better at listening to the microphone as well.

That the $1 Si5351 is responsive enough to get usable results is quite a surprise, the only real bottleneck
there is the I2C interface.   I wonder if we can go faster than 800khz, perhaps by ignoring the ACK
coming back from the Si5351?   Erik mentions that Guido's code does not do burst writes, so we could
pick up a factor of 2 or 3 there while holding it at 800khz.  In short, this is a very interesting demo 
platform, but there's plenty of room for improvement if signal purity is lacking.
If I2C proves too slow for a clean signal, the $14 Si5340 has an SPI interface that would allow
further experimentation.  I'm sure there are other PLL devices that could be considered.

The ARM chip plus Si5351 cost a total of about $3, the remainder is a CW transmitter with "key shaping"
driven from the ARM's DAC.  The result could be both cheaper and more power efficient than any other scheme
for generating an SSB signal.

Jerry, KE7ER

 

Kārlis Goba
 

This isn't really a contender in means of _generating_ a SSB signal. There are much easier methods to do that, e.g. with a quadrature modulator with two (I and Q) audio signals generated by a MCU. I'm pretty sure that's what QSX will do, and what modern transmitting SDRs do (except for the ones that can run their DACs directly in the RF band).

There is no need to filter sidebands anymore with crystal filters etc. Those days are gone.

Guido's method is not much simpler in terms of generation (due to probable source of many errors that might jeopardize TX quality beyond what is allowed for a SSB signal on air), but rather a neat hack of existing hardware. What it stands out is that it allows for a simple and efficient amplification.

--
Karlis YL3JG

Jerry Gaffke
 

Perhaps. 
But Guido's method does away with the dual mixers of the SDR approach, and requires only one DAC.
Any of them require an si5351 or something else more expensive to generate the carrier.
Unless you're fabbing your own chips, Guido's approach might get by with cheaper hardware.

Yes, filter rigs are "traditional". 
But they are how most of us understand what an SSB signal is.

You're right, the fundamental advantage of this approach is that it allows the use of
a non-linear RF amp, powering it from a switch mode power supply.  More efficient.
Though FET's are not as clean when powered from lower voltages than they are designed for,
that may limit how well this can work.

You can build an efficient AM transmitter by modulating a final non-linear amp in a similar manner,
driving that amp with a constant frequency carrier.  As has been done for 100 years.
The trick here is that the carrier is now not a constant frequency, but jumps around a little bit.
The notion that this little trick can somehow suppress the carrier and opposite sideband is still
bending my head some.  

Jerry, KE7ER


On Thu, Jan 31, 2019 at 08:18 AM, Kārlis Goba wrote:
This isn't really a contender in means of _generating_ a SSB signal. There are much easier methods to do that, e.g. with a quadrature modulator with two (I and Q) audio signals generated by a MCU. I'm pretty sure that's what QSX will do, and what modern transmitting SDRs do (except for the ones that can run their DACs directly in the RF band).

There is no need to filter sidebands anymore with crystal filters etc. Those days are gone.

Guido's method is not much simpler in terms of generation (due to probable source of many errors that might jeopardize TX quality beyond what is allowed for a SSB signal on air), but rather a neat hack of existing hardware. What it stands out is that it allows for a simple and efficient amplification.