Improving the receiver for the 7MHz QRO transceiver

DK7IH QRO SSB transceiver for 7MHz/40m

After having done lots of QSOs with the 7MHZ QRO transceiver I found that the receiver still had to be improved. The sensitivity was great, the sound also was but there were some difficulties when operating the radio during evening and night times because  some (minor) interference was audible. This symptom had been caused, as usual, by strong broadcast stations transmitting from 7200+ kHz 41m-band. Occasionally “Radio China International” and “Radio Romania International” were discernable. But cure was on the way: The transceiver has a modular concept. Based on this I decided to do a full reconstruction of the receiver module.

The mixer, which is the most crucial part in a 7MHz receiver was changed to an IC mixer using an SL6440 double balanced mixer (formerly produced by Plessey).

sl6440_mixer_ic

The mixer IC offers a very good IMD3 performance (30dBm maximum according to datasheet) plus some decibels (1 to say exactly!) of gain and thus is a good alternative to the dual-gate MOSFET I had used before.

As a special feature there is an input (pin 11) where a current can be applied that determines the overall mixer current. The higher this value is set, the better the IMD3 performance will be. Max. power dissipation for the IC is 1.2 watts but that will require a heatsink. I found that a resistor of 820Ω will lead to a current of 4mA (13V VDD) on pin 11 line and produces good performance without thermally stressing the IC. For optimized IMD3 performance the SL6440 ic should be run in balanced mode.

The receiver schematic in full:

DK7IH 7MHz QRO SSB transceiver - Receiver section (Version 2)
DK7IH 7MHz QRO SSB transceiver – Receiver section (Version 2) – Full size image

Circuit explanation

Input BPF

From the left we start with a two pole band filter for 7 MHz. LC coupling  again is very loose what reduces the receiver’s tendency to overload.

Receive mixer

Next is the SL6440 mixer ic. Input and output are equipped with broadband transformers (data see schematic, please!). The purpose is to convert an unbalanced signal to a balanced one and vice versa. According to the respective entry in data sheet running the mixer in balanced mode enhances performance. Pin11 is used to control the DC operating conditions of the mixer, a resistor (820Ω) sets appropriate  bias for mixer stage. The 3 diodes (1N4148) supply correct voltage to a pin that is called “VCC2” which should be slightly lower than VCC supplied to the output stage. 3 diodes in series produce the required voltage drop.

In experiments it has turned out the even when gain of the mixer ic is only about 1 dB the resulting output of the whole receiver is higher than that of its predecessor and taking into account that receiver generated noise is not a problem on the lower short wave bands, there is no rf preamplifier.

If you encounter birdies maybe the signal level of the VFO is too high. Then switching a smaller capacitor into the VFO signal feedline is the best idea.

Next stage is the filter switch that has been copied from the previous schematic.

Interfrequency amplifier

This stage contains the well-known MC1350 by Motorola. To simplify this section a minimum design has been chosen, Output is unbalanced and broadband. Input also. The only filtering in the whole interfrequency section is done by the SSB filter prior to the interfrequency amplifier. A 100uF capacitor in VDD line helps to suppress audio frequency feedback and self-oscillation in the receiver strip.

Product detector

As you might have realized the transceiver not longer is a “NE602 free zone”, because this mixer now serves as a product detector. A type of usage where the low IMD3 performance does not matter. The low pass filter by the end of the mixer must be chosen according to the user’s preferences concerning pitch and tone.

Audio amp section

Audio preamp is again an ic, the “antique” LM741. Negative feedback has been set to an amount that there is significant gain in this stage (R=330kΩ).

The audio final amp here has been equipped with the TBA820M integrated circuit, the smaller version of the 16 pin TBA820 integrated audio amplifier. The advantage of this ic compared to LM386 is lower distortion and the fact that this ic is not so prone to self-oscillate.

AGC

Automatic gain control nearly is the same like in the former version. The main difference is that MC1350 needs positive voltage to reduce amplifier gain. Thus the output has been punt into the emitter line. The problem when using an NPN transistor in such a circuit is that maximum voltage is limited to Vmax = VDD – VBE. As a consequence you can not get full 12V out when you supply 12V between C and E. Here this does not matter because AGC significantly reduces gain already when reaching 6 volts (Source: Datasheet):

mc1350_vagc_gain-function

Maximum gain reduction (>60dB) occurs between 6.7 and 7 volts.

Also a manual method to reduce gain has been applied. This is by chosing a voltage between 0 and 12V using a potentiometer. To prevent current flowing from the center of the potentiometer into the ADC input detecting the AGC voltage a silicon diode has been installed. To prevent a short circuit of the AGC voltage against GND when the potentiometer is at 0 position (delivering full gain in the MC1350 amp ic) the 5.6k resistor is used.

Changing time constant can be achieved by a second capacitor set in parallel (either by a switch or by microcontroller).

To protect the analog-digital-converter (ADC) in the microcontroller from excessive input voltage, this is limited to 5.1V by a zener diode.

Performance

The receiver is very sensitive. Reception is possible with the famous “wet finger” ;-). With a large antenna (full sized delta loop) no overload is detectable even during evening and night times. Noise is slightly higher compared to that with the MOSFET equipped receiver but very much acceptable for a 7MHz receiver.

73 and thanks again for watching!

Peter (DK7IH)

Advertisements

SSB Transceiver, 7MHz, 50 Watts, with Dual-DDS-System

DK7IH QRO SSB transceiver for 7MHz/40m
DK7IH QRO SSB transceiver for 7MHz/40m

In this paper we will discuss a single sideband amateur radio transmitter/receiver for the 40 meter band that has been designed to ensure  good performance characteristics with reasonable number of parts (no “overkill” in component use), particularly concerning the receiver. Circuit simplicity and over-average performance were to be combined.

The background: Some years ago I had built the ancestor of this transceiver and afterwards posted an incomplete series of articles (starting here). The transmitter was considered to be quite OK (I could even work a station from South Korea when operating as GJ/DK7IH some years ago) but the receiver was weak.

The shortcomings originated from the rf preamplifier I used together with the 1st mixer, an NE602. The latter had severe problems to cope with the high signal levels on the 40 meter band from out-of-band broadcast stations transmitting on the 41m band (f>7200kHz) or from very strong amateur stations transmitting in-band. This is caused by the technical specs of this Gilbert cell mixer. NE602 has been designed for mobile phone applications and not for shortwave radios. Its IMD 3 is only -15dBm whereas it is able to detect weak signals (-119dBm with an S/N ratio of 12 dB) according to datasheet. Due to this NE602 was excluded from being used at least in the receiver.

Another point was that the rig was too small and too densely packed to be called “service friendly”. Thus I dismantled the radio some times afterwards and had in mind rebuilding it with another receiver and a little bit more space inside.

The Basics

The project has had to meet certain requirements that I would like to point out first:

Frequency generation: Dual-DDS-System: AD9835 as local oscillator and AD9834 as VFO. ATMega644A as MCU (Download source code here)

Receiver: Single conversion superhet, 9 MHz interfrequency with commercial filter (supplied by http://box73.de) shared by transmitter and receiver and relay switched, “NE 602-free zone” ;-), 4 dual gate MOSFETs in rf preamp, rx mixer, if amplifier and product detector, audio stages with BC547 as preamp and LM386 as main audio amplifier.

Edit: I found that there was strong signal of self-reception around 7.100kHz which was not a spurious signal from one of the DDS. It has been a mixing product of one or two oscillators together with a signal from the microcontroller. So I changed the interfrequency to 10.7MHz which cured the problem. I tried to calculate the issue but was not succcesful because I do not know all the frequencies in the microcontroller. I think it is most probable that it is a harmonic of the PWM signal I use for controlling the LED front lights.

Transmitter: 4 stages, 3 of them in push-pull mode, Siemens made mixer IC S042P (really old fashioned, but still available) as DSB generator and TX mixer, rf amplifiers (2N2219A) after filter and tx mixer.

Design: Really “cool” with blue backlight. Sandwich built, not the size of a “micro transceiver”, but handy for travelling.

The Block Diagram

The diagram can be derived from the old project, it is nearly the same:

DK7IH QRO SSB transceiver for 7MHz/40m - Block diagram
DK7IH QRO SSB transceiver for 7MHz/40m – Block diagram

The basic outline of the radio is standard and should not be further discussed.

Dual DDS (VFO and Local Oscillator (LO))

This time I wanted to use 2 digital oscillators. The reason was just to have fun. 😉 Here is the schematic:

DK7IH QRO SSB transceiver for 7MHz/40m - Dual DDS (VFO and LO)
DK7IH QRO SSB transceiver for 7MHz/40m – Dual DDS (VFO and LO) – (Full sized image)

Microcontroller (MCU)

The source code has got about 2200 lines. With the GNU C compiler this leads to a HEX-file of about 43kB. Because of this the controller had to have a little bit of more memory. A “644” is a good choice here. It is clocked internally to 8 MHz clock rate. Radio and user data (user operated keys, S-Meter, TX PWR meter, temperature sensors attached to final transistors) is lead to the analog-digital-converter (ADC) of the MCU. Rotary encoder (optical) is fed into digital inputs. Integration of an RTC is projected but not done yet.

DDS1 (VFO)

Here an AD9834 is used. It is overclocked with 110MHz clock rate. For my receiver with a DDS chip purchased from Mouser this works without any abnormality. With a a chip from the “free market” (ebay) I found that there were strange clicks in the signal. So, I do not really recommend overclocking under any circumstance and/or not to such a high degree.

This DDS is is not terminated with a low pass filter. Due to the high clock rate there is no clock oscillator feedthrough which is supported by the  design of the following amplifier having an audio frequency transistor in the last stage (BC547 and later BCY59) that limits high frequency components due to its early gain decay in the frequency spectrum. The two stage amplifier has been designed for excellent linearity to prevent impurities in output spectrum.

mini43-qro-7mhz-dk7ih_12

The first peak showing the 16MHz signal and the next peak is the first harmonic about 30dB below. Other peaks are from local sources (PC, Printer).

The sine wave also looks quite OK:

mini43-qro-7mhz-dk7ih_13

DDS2 (LO)

This one contains an AD9835 synthesizer clocked to 50 MHz. An LPF here is mandatory. A simple but linear amplifier brings the signal up to 3Vpp which is OK for driving the dual gate MOSFET in the receiver. For the transmitter mixers this amount of voltage is too high, small capacitors reduce the voltage to an acceptable value.

LCD

From another project that I once had built and that is not more in use, a dive computer, I had a 4 lines/20 characters text display that is fairly large. This was to be designated as the LCD for this transceiver.

The Receiver

Building a receiver for the 7MHz amateur band is challenging. On one hand the circuit should be very sensitive for weak signal reception, particularly during day when the band conditions are low due to solar radiation and density of the D-layer. This means the receiver should have a higher gain whereas noise figure does not play a predominant role due to band characteristics with high atmospheric noise on 7MHz.

Next request is high dynamic range to eliminate the spurious signals that occur when front end stages are loaded with high input signal levels.

And last but not least AGC control range should be as wide as possible to cope with weak and very strong signals without the request to intervene by adapting manual gain control. For this a preamp also benefits.

Active mixers like the NE602 show low performance under these conditions. Some high-current mixers like the SL6440 exist, but there are alternatives. On one hand the classical diode ring mixer might come into perspective, otherwise Dual-Gate MOSFETs are well known as having a fairly good ability to cope with high signal levels and so don’t tend to  deteriorating the receiver’s performance severely. Besides they offer some gain and low noise figure (which has not been the main objective in this case) and the circuit is very compact and therefore it was the best choice for a receiver that had been intended to be constructed onto a board of 6 x 8 centimeters.

After these thoughts the following circuit turned out to be the right onset for a receiver inside the projected rig.

DK7IH QRO SSB transceiver for 7MHz/40m - The Receiver
DK7IH QRO SSB transceiver for 7MHz/40m- The Receiver (full sized image)

Circuit explanation (Receiver)

Front end

On the left we start with a 2 pole LC band pass filter for 7 MHz. The coils are wound on TOKO style coil formers (5.5mm size), winding data and parallel capacitors are given in the drawing. The coupling capacitor (2.7pF) between the two LC circuits is very small for such a low frequency. This makes the filter response curve sharper but leads to a slight weakening of the signal coming through the filter. But as the whole receiver has plenty of gain and a very good noise figure, this is the reason why  some weakening of the input signal is acceptable.

Preamplifier

Next is the preamplifier for the received band. It is connected to the AGC chain. You can expect some 25 to 30dB  gain swing by driving up gate 2 of the dual gate MOSFET from 0 V to 6V. A 1:1 voltage divider decrease the 0..12V AGC voltage to 0..6 V where th3N205 MOSFET is close to amplify with maximum gain. Exceeding 6 to 7 volts does not result in significant more gain swing, so I usually drive the MOSFET from 0 to 6.5 volts UG2 (with 13 Volts of supplied voltage.

3n205-ug2-gain-figure
UG2->Gain-Function 3N205 (Source: Datasheet)

The coupling when going from the preamplifier to the receiver mixer is in broadband style. The 3N205 has a very high gain and tends to self-oscillate. A second LC circuit makes the device more prone to going self-resonant and hence produce unwanted signals.

RX mixer

This mixer is very simple and needs only a few components. Both signals are fed into the gates of the dual gate MOSFET. Rf goes to gate 1 whereas gate 2 (the AGC input) is fed with the oscillator signal). Gate voltage depends on the voltage drop at the source resistor and therefore is stabilized. The oscillator signal should be in the range of 2 to 3 volts rf (pp) for a dual gate MOSFET. Lower values will deteriorate the performance of the mixer, e. g. its dynamic range. This signal switches the semiconductor and a superposition of the two signals occurs thus leading to the production of sum and difference of the original frequencies. These signals are fed into…

The SSB filter

which is a commercial one (Supplier box.73.de). The reason why I don’t ladder filters anymore is that I found it extremely difficult (not to say impossible) to get a symmetric filter response curve thus making the lower and upper sideband of the receiver sounding different even when the carrier frequency has been adjusted very thoroughly.

The filter is used for the SSB transmitter as well. To ensure maximum signal separation between the two branches (tx and rx) and between filter input and output I again us a high quality rf relay made by Teledyne. When choosing a relay intercontact capacitance  is crucial. It should (if possible) be < 1 pF.

Don’t forget a clamp diode to VDD over the relay coil to eliminate high voltage voltage peaks generated by self inductance when the coil is switched off. Voltages up to 100 Volts can occur. This might damage the transmit-receive section of this transceiver that is equipped with semiconductors only and does not use a relay.

IF amplifier

This circuit is the same like that of the rf preamp. It also is part of the AGC chain, thus delivering another 25 to 30 dBs of gain swing so that overall gain swing is around 50 to 60dB. In practical research over a long period of observation I found that with an antenna delivering high signal voltage (Delta loop) it was not possible to overdrive the receiver  to a level where signal distortion was audible.

A tuned circuit is also placed here to increase gain. Tuned amplifiers usually have higher gain than broadband ones. It is highly recommended to ground the metal cans of the coil to prevent any self-oscillation. But as I found out, this amplifier is not very prone to go to self-oscillation state.

Product detector

Here again a dual gate MOSFET is used. The circuit is nearly the same like the RX mixer except from the output section. We can see a low pass filter here, consisting of 2 Cs (0.1uF) and a resistor (1k). You can use a radio frequency choke instead, 1mH is recommended.

Audio amplifier

This section consists of two parts, a preamp (with bipolar BC547) and a final amplifier (LM386 IC). It is well-known that this IC tends to oscillate. One measure to prevent this is to keep leads short, switch a low-pass filter (capacitor 100uF and R=33Ω) into the VDD line and to reduce the gain capacitor between pins 1 and 8 to a degree where self-oscillations terminate.

A switching transistor cuts off the audio line by short circuiting it when on transmit. This eliminates any noise when switching. The rx/tx switch now is 100% “click free”. A very pleasant way of operation. 😉

AGC

This is another re-use of a circuit I have frequently used before. It is desired to reduce its output voltage down to 0 volts when a more or less strong af signals appear at the input. The agc voltage is derived from the audio signal of the receiver. Some say that this is not the best choice because you need more time (an af cycle last much longer as an rf cycle) for the waveform to generate the regulating DC voltage.

Nonetheless I have never observed popping or unpleasant noise from incoming very strong signals. The agc response rate is so fast that you won’t notice that it just has regulated even when a strong signal comes in. Only with very, very strong signals a slight “plopp” sound is observable but it is not unpleasant.

A second capacitor can be switched in parallel to the 33uF one. This can either be done by a transistor switch (like shown in the schematic) that in this case is controlled by an output PIN of the MCU. An alternative that I found later is to use the MCU pin directly to switch the cap. When not using the additional cap you must switch the pin as an input so that there is no positive voltage from the pin to the circuit. When you intend to ground the transistor (agc in “slow” position) then the pin mus be set as output by defining the DDR-register respectively AND the pin must be set to 0. So you can get rid of the switching transistor.

Another possibility would be to derive the agc from the interfrequency signal. The problem that occurs in this case is that you have to decouple the local oscillator (bfo) very carefully from the place where agc circuit is placed. Otherwise you are at risk to detect the bfo signal by the agc which leads to reduced response range in the agc. In addition this receiver uses a higher rf voltage level for the mixers (2 to 3 Vpp each). By this the amount of stray energy is higher inside the circuit and thus this rf energy might be detected very early by the agc.

In the emitter line there is a resistor (68Ω) which produces a voltage drop when the transistor is driven. This is fed into the ADC of the microcontroller driving the S-meter display part.

The Transmitter

First the circuit:

DK7IH QRO SSB transceiver for 7MHz/40m - The Transmitter
DK7IH QRO SSB transceiver for 7MHz/40m – The Transmitter (full sized image)

Microphone amplifier

This amplifier is a simple common-emitter circuit with the directly grounded emitter of the BC547 transistor. This circuit is linear only for low input voltages but suitable for the connected dynamic microphone since this does not produce more than some millivolts of audio energy. Bias comes from the 390kΩ resistor. At the input you find a 2.2nF capacitor from base to GND which helps to prevent coupling in rf energy from the transmitter to the audio stage and thus leading to an impure signal.

The DSB generator + amplifier

The amplified microphone signal is used to produce a double-sideband signal. The ic I use here is an antique but still available part by German manufacturer Siemens, the S042P. It includes a so-called “Gilbert-cell” mixer and an oscillator but the latter is not used here (Datasheet Application note (in German)).

The S042P mixer needs some more components compared to the well-known NE602 integrated circuit but fewer ones than the MC1496. It is designed for 12V usage, thus no voltage regulation is required.The ic can be applied in balanced mode or non-symmetrical. To save components I use the unbalanced circuit alternative. A slight loss in output power is acceptable in this case, there are amplifiers post each mixer in this transmitter.

Ic gain is about 16.5 dB, DC current is about 3 mA.

A crucial point is the signal level of the local oscillator. S042P needs only some hundred  millivolts of oscillator voltage. To prevent overdriving I experimented with different values of the coupling capacitor. 5.6pF seemed best because the LO produces some volts peak-to-peak.

Following there is an amplifier that is a standard circuit and has been tuned for maximum linearity in order to reduce distortion to a minimum (which is also true for the following stages). You can see the well understood 2 master ways of achieving max. linearity in an amplifier stage:

  • Negative feedback between collector and base (i)
  • Emmitter degeneration (II)

Explanation:

i) The first measure goes along with the 2.7kΩ resistor between collector and base of the transistor. This resistor provides positive dc bias voltage to the base and leads 90° out-of-phase ac voltage to the transistor’s input. This reduces gain and therefore distortion. But due to the fact that the whole transmitter strip has plenty of gain, this loss in gain is not a serious problem.

ii) The 10Ω resistor in the emmitter line is not bypassed by a capacitor. This stabilizes the circuit. When the current through transistor increases the emmitter voltage will rise (according to Ohm’s law) and the voltage between collector and emmitter drops. This reduces voltage difference between base and emmitter and hence also reduces gain.

The coupling to the next stage is done by a capacitor of 0.1uF. This causes some impedance mismatch. But that is as well not a big problem because the gain reduction here helps to prevent the whole transmitter from unwanted oscillations by diminishing overall gain.

TX mixer

Here the second S042P is used. The 9 MHz SSB signal is coupled to pin 13 of the ic, a DC connection is established to pin 11. These two pins represent the base connectors for the two current control transistors and should be bridged by a DC resistor in this circuit.

The 150Ω resistor from pin 10 and pin 12 to GND defines the gain of the mixer. Here you can use down to 150Ω but should have a resistor towards VDD to limit current and avoid excessive heating of the device. In this case another 150Ω is used.

VFO signal is coupled symmetrically to pins 7 and 8 via a small trifilar toroid. See schematic for details and please note that center tap is not used here. This is in contrast to the output transformer where the tap is used to feed supply voltage into the mixer.

Another 7 MHz band pass filter terminates the mixer, data for coils and capacitors is in the schematic.

Power amplifier

This amplifier has got 4 stages and except from the first one all are in push-pull mode. The power distribution for these 4 stages is as follows:

Stage Power
Preamp 5mW
Predriver 200mW
Driver 2.5 W
Final amp 50W

Preamplifier

The first of the 4 power stages is the same as the post dsb generator amplifier so there is not more to add concerning this stage. Rf energy is taken out via a transformer with a primary and a tapped secondary winding. This is to provide the balanced structure necessary for the following push-pull stage.

Prediver

This is the first push-pull stage. Its bias is derived from a voltage divider connected to the tap of the input transformer.

Please note: In contrary to the schematic I have installed 2 devices of the 2SC1973 type because the signal turned out to be much purer with these ones on the spectrum analyzer.

A tapped output transformer feeds the amplified rf energy to next board. Output impedance is 50Ω. The coupling to next stage then is done via a shielded cable of (nearly) the same impedance.

Driver stage

This one has an input transformer also center tapped. The tap goes to a bias network consisting of a current limiting resistor (1kΩ), two diodes forming the lower part of a voltage divider and some capacitors as part of a low pass filter to avoid coupling in of radio frequency (rf) energy. The two diodes must be thermally connected to the cases of the transistors. In case these heat up, the diode increases its conductivity thus reducing its resistance. The bias voltage drops and heating is stopped. So, thermal runaway is prevented.

For these two stages (predriver and driver) DC is fed through low pass filter (RFC and 2 caps 0.1uF) to prevent coupling of rf energy via the VDD line.

Final stage

This stage receives input from a balanced structure without a center fed transformer. Instead bias current is linked in via a network of radio frequency chokes and two resistors of 5.1Ω each.

Bias is provided by a current regulating transistor and should be set to about 100mA.

The MRF455 transistors are mounted directly to the aluminium structure of the sheet metal carrying the whole transceiver boards. When mounting them to the Veroboard I did not solder them directly. I used 1.6mm screws and washers to press the brass connectors to the copper strips of the amplifier board:

DK7IH QRO SSB transceiver for 7MHz/40m - Power amplifier underside
DK7IH QRO SSB transceiver for 7MHz/40m – Power amplifier underside

With this I could have been able to remove the precious transistors without having to unsolder them when the device might have turned out to be a failure. But it was not, thank God!

The output transformer is the one I have used in my old 14MHz PA and the ancestor of this radio. It is from an old ATLAS 215 transceiver and I hope that this will be the final place for the transformer.

Two temperature sensors (KTY-81-210) have been installed to measure the temperature of each transistor. They are connected to the microcontroller via voltage dividers (see schematic, please!)

Low Pass Filter and Power Measurement Unit

For the low pass filter I use 2 toroids T50-2. These might appear small but from one source (that I have forgotten) I remember to have found that for 50 watts of power this core is still suffice. Metal powder cores can stand much more power compared with same sized ferrite toroids.

The power measurement unit consists of a network that starts with a resistor of 12kΩ to ensure a significant voltage drop in signal level, then two rectifier diodes (1N1418 or equivalent) follow, some low pass filtering eliminating the last rf energy and the resulting direct current voltage is fed to a variable resistor to set an adequate voltage level for the ADC in the microcontroller.

The rf output made out of a two-tone audio signal measured at the antenna connector:

DK7IH QRO SSB transceiver for 7MHz/40m - Two tone signal, power about 57 watts, close to overdrive
DK7IH QRO SSB transceiver for 7MHz/40m – Two tone signal, power about 57 watts, close to overdrive

The spectroscopical analysis shows the signal on the f -> V figure:

DK7IH QRO SSB transceiver for 7MHz/40m - Output spectrom with max. Pout (>50W PEP)
DK7IH QRO SSB transceiver for 7MHz/40m – Output spectrum with max. Pout (>50W PEP)

RX/TX-switching

A very simple circuit. Two PNP power transistors are used but they don’t have that much to do. They are only designed for switching the low-power parts of the radio. The high current to the drivers and final amplifiers is permanently present in the collector lines but the bias lines are tx/rx-switched and go to 0V during receive periods. This reduces requirements for the power rating of the switch board.

DK7IH QRO SSB transceiver for 7MHz/40m - RX/TX switch board.
DK7IH QRO SSB transceiver for 7MHz/40m – RX/TX switch board.

When pushing the PTT the base of the lower transistor is pulled to GND. So it becomes conductive and TX DC is applied. Via the diode the upper transistor loses its negative voltage and becomes non-conductive.

Construction

The Backlight

One interesting thing was the blue backlight to illuminate the front panel controls. It is made using SMD LEDs that are soldered to small pieces of Veroboard and fixed with 2-component glue to transparent light-scattering plastic bought from a local supplier for architects and designers. This material is used for making models of houses and stuff like that. As light distributor this material is excellent. The LEDs are powered by a linear transistor connected to the pulse width modulation (PWM) output of the microcontroller so that light intensity is adjustable.

Hint: When programming the PWM functions it might occur that PWM frequency is audible in the receiver. If something like that occurs another frequency can be selected without changing the performance as soon as it is high enough that human eyes aren’t able to recognize a flickering.

DK7IH QRO SSB transceiver for 7MHz/40m
DK7IH QRO SSB transceiver for 7MHz/40m

The covers used for the labels and the LCD shield are made from 2mm acrylic and fixed with screws of 1.6 respective 2mm diameter.

The two push-buttons right in top position consist of two bars of acrylic (4.2mm diameter) and are having mechanical contact to small spring-loaded switches behind the front panel:

mini43-qro-7mhz-dk7ih_16

Directly under these acrylic bars there are two LEDs shining into these rods and because of total reflection inside the tubing the optic conductor is sending the light to the front side when the LEDs are powered on. That is how it looks at night:

mini43-qro-7mhz-dk7ih_19

 

General setup

This is a sandwich construction again. On the first side there is the DDS  board (left), the receiver (center) TX mixer and preamplifier (right) and the SSB generator (back). Also there is a 5 lead connector holding the 5 ISP lines (MOSI, MISO, CLK, RESET and GND). This makes firmware updates easy because you don’t have to open the case when you want to update software.

DK7IH QRO SSB transceiver for 7MHz/40m - DDS, RX, TX mixer and SSB generator
DK7IH QRO SSB transceiver for 7MHz/40m – DDS, RX, TX mixer and SSB generator

The other side holds the TX low pass filter plus power measurement unit (left), the power amplifier (center) and the predriver and driver (right). In the back you can see the rx/tx switch board:

DK7IH QRO SSB transceiver for 7MHz/40m - TX LPF, PA, Drivers, RX/TX switch board.
DK7IH QRO SSB transceiver for 7MHz/40m – TX LPF, PA, Drivers, RX/TX switch board.

“On the air”

Again big fun this transceiver! During the ARRL DX contest last weekend I could work some statesiders. With Delta Loop and 50 watts, fairly OK. Working Europe all day is no problem with 50 watts.

During the first QSOs I had reports that the audio sounded clear but somehow “narrow”. I had used an electret mike that time and could not use a dynamic one because the preamplifier following the microphone did not have enough gain. Then, to solve this problem, I decided to do a full reconstruction of the SSB generator board. The one then had used had an AN612 mixer integrated circuit (from an old CB radio). This one was dismantled and replaced by the S042P board. The change took me 3 hours to develop and solder but it paid. I use a Motorola dynamic microphone now that has a very rich and clean sound. I monitored it on a web based SDR receiver, made a recording and found it to be OK.

OK, dear fellow hams, that’s the story so far, some supplements will sure be made, so stay tuned!

Thanks for reading and vy 73 de

Peter (DK7IH)

Going back in time: “Old school” transceiver for 20 meters with 20 watts of output

"Old school" SSB transceiver for 14MHz by DK7IH (2018)

Hi again! This project directly “beams” you back to the “Good ol’ 80s” when there was no stuff like “DDS, “OLED” or even “SDR” or other modern technology we today use to build our radios.

I designed this transceiver using the “old school” techniques because in a German QRP forum on the internet some hams originated a “Back to the roots”-movement which I thought was a great idea. So I too went back in time 3 decades and constructed a radio like I did it in the eighties at the beginning of my “homebrew career”. That meant: No digital stuff, just a simple VFO but (and that is new) higher rf output power because condx are fairly low on the hf bands currently.

I later presented this radio at an annual German convention of homebrewing hams called the “Black Forest Meeting” named by the place where it is held the beginning of October each year.

To give you an impression, that’s how the radio looks from the outside. Pretty “old school”, isn’t it?

“Old school” SSB transceiver for 14MHz by DK7IH (2018)

The main design objectives were very simple:

  • Compact in size (even without using SMD components),
  • Analog VFO with vernier drive (1:10 gear) and variable capacitor,
  • No digital stuff (=> no digital noise!),
  • RF Output in the range from 15 to 20 watts pep in SSB,
  • Single conversion superhet (9MHz interfrequency)
  • No “save as many components as possible”-design.

First the block diagram giving you the basic structure of this radio::

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – basic outline

The VFO

I decided to use an analog VFO in this project due to three reasons:

  1. It’s really old style,
  2. it is much less prone to produce any unwanted “birdies”, and
  3. phase noise performance usually is better than most of the digital ways to generate a signal.

For the VFO I chose the Hartley design characterized by a tapped coil. This type uses less critical components than a comparable Colpitts circuit thus reducing number of parts (2 caps in this case that are avoided) which might lead to unwanted frequency changes (drift).

How to build a VFO that is really stable

Lots of pages have been written about this topic. This another one. First, be aware of the fact that it is not possible to build a VFO that has the same frequency stability like a modern digital system. This is because these systems are all crystal controlled. But it is possible to achieve a drift of some dozen Hertz within an hour or so which is absolutely sufficient for having even a longer QSO.

The main problem is based on physics, or thermodynamics to say more exactly. All material expands when heated and contracts when ambient temperature decreases. OK, some exceptions exist, water below 4°C is the commonly known example of them.

Avoiding thermal runaway

Heat is the problem in such a circuit. It comes from the interior of the components when current flows through them and from the outside, for example when the transceiver is exposed to sunlight or placed near another source of thermal energy. Also heating of the final rf amplifier stages may contribute to heating the cabinet inside. The electronic parts forming the central strucure of the tuned circuit exert the main influence connected to thermal runaway of the frequency that is generated.

The general approach is: When we can’t avoid physical effects we must choose components that change their values in such a way to compensate the changing of the values of the other parts. That means we have to look carefully on temperature coefficients of the varoius components we intend to build into our VFO.

Choosing the “right” components for your VFO

Choosing advantageous components is crucial for frequency stability. So I did some brief research to find out more about temperature coefficients of coils of various types and available capacitors. Here are some of the outcomes.

Explanation of syntax: If a relation is negative, a minus sign (“-“) is given. In this case the value (C or L) decreases when temperaure increases. A plus sign (“+”) indicates a positive coefficient. When the relation of value change by temperature change is weak (that means no intense changing of the value when heated), there is only one “-“-sign. The more “-“-signs you have, the higher this respective ratio is. The same applies for “+”-signs to indicate a positive relation.

Capacitors:

  • Ceramic capacitors: —
  • Polystyrene capacitor: –
  • NP0 (C0G) capacitor: no measurable effect

Inductors:

  • Air coil on polystyrene coil former: +++
  • Coil wound on T50-6 yellow toroid: +

Based on this short survey, the best combination would be NP0- and Polystyrene caps together with an inductor wound on an T50-6 (yellow) core. Hopefully their temperature behavoiur will compensate more or less and lead to best stability. Hint: On the photos appearing later in this text you will see an air coil wound on a TOKO style coil former that has been used because it does not need so much space.

The VFO circuit

I finally chose the Hartley circuit for my VFO. There it is:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – VFO

VFO Circuit explanation

Starting from the left you can see the tapped coil (here 60 turns tapped at 10 turns from the bottom end) on a 5.5 mm TOKO style coil former without any core. In parallel there are various capacitors (polystyrene and NP0 mixed) to build up the total capcity. It is common use to spread the total capacity needed to various single capacitors because it has turned out that the effects of temperature change are less significant if you use more (and therefore smaller) single capacitors.

A 100k resistor is used to pull the gate to ground and therefore provides a correct bias at the FET’s gate. The 1N914 diode is a so called “clamp” diode that has been installed to stabilize (and therefore reduce) the rf voltage in order to avoid excessive rf voltage coming to the FET’S gate which would lead to distortion. This diode has a negative side effect, but that an be accepeted for a VFO in the rf bands: It slightly increases phase noise because it works as a regulator. With some the designs you can see this diode in reverse position, don’t worry, the regulating effect takes place either.

To ensure the oscillator to produce radio waves, in-phase feedback between gate and source is generated via the tap you can see with the coil. A tap of about 1/6 of the whole number of windings provides enough feedback voltage to let the oscillator start by its inherent thermal noise and generate clear sine waves afterwards. Putting the tap too close to the “hot end” will cause distortion because the amount of energy coupled back to the gate will be too high. Also instabilites are probable because of excessive drive power to the gate of the FET.

On top of the tuned circuit there is a varactor diode that is used to be controlled by a positive voltage to form a RIT (receiver independend tuning) control circuit. It is very loosely coupled to the tuned circuit to minimze temperature effects and because only 1 or 2 kHz “swing” is needed. The generation of the RIT voltage will be described later in this text.

The main tuning capacitor

An air capacitor is mandatory here! You can either use a ready made one from the surplus market. But to keep it as small as possible I built my own by dismanteling one of old variable capacitors formerly used for homemade AM radios. Use a small drill to remove the rivets, dismantle the capacitor completely and rebuild it again as an air capacitor (get rid of the plastic dielectric interlayers!) by using M2-screws and nuts. Youl will have evenings of endless fun with this game! 😉

Buffering and amplifying the Signal

The second stage with another FET is very loosely coupled to the source of the first FET. This is made to minimize effects of load changes to the frequency. This stage is a so called “source follower” giving a very low impedance signal to the final stage that is responsible for the amplification of the signal to a level of 2 to 3 volts pp which you will need for the rx mixer that has been designed as a dual-gate-MOSFET mixer (see receiver chapter later!).

DC voltage in the VFO

Voltage stabilization is crucial for best performance of this critical part of the radio. Supply voltage changes always lead to frequency changes. So a two-level buffering is common use here. The first (and most critical) stage is buffered twice (10V voltage regulator integrated circuit 78L10 and subsequently by a 6.2V zener diode) whereas the buffer and the amplifier stages are supplied with 10V regulated DC voltage only.

Ambient thermal isolation

To avoid the VFO being affected by interior thermal convection (flow of warm air inside the cabinet) it is recommended to shield the VFO from the rest of the transceiver. I do not recommend using metal sheets as walls here because these form other unwanted capacities that will lead to thermal effects on the generated frequency. Metal also is a good conductor for thermal energy, so you might run counter to your goals. My thermal insulation therefore is made of simple cardboard.

The Local Oscillator (LO)

This oscillator is much more uncritical than the VFO because it is crystal controlled. The purpose of the LO is to supply a carrier signal for the SSB modulator. Due to the fact that there are two sidebands we theoretically can use this LO must be switched to either one of two possible frequencies. In case of an interfrequency of 9MHz (9000kHz) these are: 9001.5 kHz for the first sideband and 8998.5 kHz for the second sideband. Please note that I did not write “USB” or “LSB” because the frequencies forming each sideband might be changed because of the frequency plan of the transceiver where by mixing with the VFO frequency the sideband might be inverted depending on if you add or substract the VFO frequency from the 9MHz-SSB signal.

There are several possibilities to produce these two frequencies:

  1. Using two different oscillators each equipped with a single crystal,
  2. switching two crystals with one osillator,
  3. using a variabale capacitor or a coil to “pull” one crystal to the desiered frequency.

Discussion:

  1. This method means high effort but surely is the most exact one because there are no influences of the unneeded choice to the other crystal currently on duty.
  2. Is the worst idea because the unswitched crystal is highly prone to influence the freqeuncy of the switched one because they are linked to parasetic capacities within the wiring, the switch and so on. Forget this one espacially when using the internal oscillator of a NE602/SA612!
  3. This to my point of view is the best compromise between circuit simplicity and function. You can see this way of sideband switching in my transceiver.

This is my local oscillator:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – Local Oscillator (LO)

It is a simple Colpitts circuit where in-phase feedback and feedback voltage control are achieved  by a series of two identical capacitors. A simple switch,  a capacitor (90pF max.) and a coil (4 to 8uH max.) that are either connected to the base of the transistor via the 9MHz crystal determine the sidband freqeuncy of the oscillator. Signal is taken out via the collector.

The Receiver

The receiver will be presented step-by-step starting with the front end stage:

The RF Preamp

This stage is connected to the antenna relay. It provides an amount of basic amplification for the antenna signals. But that is not the main purpose. Noise figure improves significantly if you use a stage with low inherent noise. Thus a dual-.gate MOSFET is installed here. This semiconductor is also used to control stage gain because gate 2 of the MOSFET is connected to the AGC chain of the transceiver. About 12 dB gain swing are possible here. Stage gain is about 15dB.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – RX PREAMP

Note the position of the primary and secondary windings of the input and the output coil. To avoid self-oscillation the output (drain) of the MOSFET is connected to the untuned part of the LC circuit. Coils must be shielded and should be equipped with ferrite heads (in the photo the piece in left bottom corner).

The Receiver’s Mixer

In this stage also a dual-gate MOSFET is used. This type of mixers provides good capabilities to cope with high signal levels without producing unwanted signals (high IMD3), gives some dB of gain and is low-noise also.

One “disadvantage”, if you want to say so, is that it needs a little bit of higher VFO drive (about 2 to 3 volts pp). Gate 2 bias is generated via the voltage drop on the source line. The tuned circuit in drain line is adjusted to the desired interfrequency. See the schematic for the exact winding data and parallel capacitor.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – RX MIXER

The SSB Filter section

Transmitter and receiver share the same SSB filter in this transceiver. So some sort of switching is recommended even if circuits exist that go without one. I used a high quality relay made by Teledyne that I bought in a 10-piece bundle for low price (1€ each!) via a well-known internet marketplace. Caution: Some SMD-relay I tested prior to building this rig were disastrous concerning signal isolation between terminals. To avoid any disappointment or frustration  I recommend testing a relay before you finally install it.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – SSB FILTER

All connections to the rest of the circuit must be made with shielded cable. I found an interesting alternative: I sometimes design my own very thin shielded “cable” with brass tubing (1 mm inside diameter) where I put insulated cable inside. The brass tube is connected to GND on the Veroboard. You can not bend these tubes but longer lines can be interrupted for a short piece so that the “bend” can be made by putting two parts of tubing in 90° degree angle for example.

The IF Amplifier

This one might look familiar to you. It is a simple “remake” of the front-end stage. The one remarkable thing is the secondary of the output transformer. This coil has 4 windings (prim. 16 turns). The secondary is center tapped (2 + 2 turns). This is because the product detector (SSB demodulator) has a symmetric input. Very important in this stage is the 100uF capacitor in VDD line. This cap prevents the stage from AF resonating and self-oscillations on the VDD line and makes the receiver much more “quiet”.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – IF AMP

The SSB demodulator

This stage is probably the most “old-school” part of the whole transceiver. It uses an old CA3028A differential amplifier as mixer circuit:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – PROD DET

You won’t be able to buy large amounts of this IC anymore. And if you get one, the prices are close to or beyond a rip-off. But there is an alternative. You can build your own “IC”. Watch this page where all the information you need is provided!

Signal input goes to the paired transistors forming the amplifier stages. LO is fed into the line transistor that is used to set the current of the differential amplifier thus providing a switching and therefore superposition of the two signals.

The output circuit is made of an audio transformer formerly used in the final audio amp  of old AM radios (coil resistance is about 300Ω each side). The 2.2nF capacitors eliminate remainders of the rf signals and “ground” the terminals of the AF transformer.

Audio amplifier

This final receiver part consists of two stages: An audio preamplifier with a bipolar transistor and a final amp with a TBA820M integrated circuit.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – AUDIO AMPS

The two caps 0.22 and 0.1uF determine how the higher frequency components in the audio signal are cut off. The higher the total value the more the higher frequency components of the audio signal will be limited due to the equation XC=1/(2*PI*f*C).

Tr1, which is a universal purpose NPN transistor, provides high gain. Thus a 10k resistor is installed to form a voltage divider with the audio gain potentiometer.

In the final stage I use a TBA820M ic (8-pin DIL version). This one is more linear than the well-known LM386 that you usually can find in this place and it is not so prone to self-oscillation. The cap aside the 100uF in the top left corner of the schematic is not marked, its value is 0.1uF.

Loudspeaker impedance is 8Ω.

The AGC

Automatic gain control makes listening to signals much more comfortable. AGC voltage is audio derived, like in my other transceivers. The circuit also is nearly the same:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) –

Due to the very high gain of the product detector this stage is directly connected to this circuit and not to the AF preamp. A potentiometer is used to set the threshold of the AGC onset.

Next stage is a simple audio preamplifier followed by a “Greinacher Circuit” serving as voltage doubler and providing DC voltage proportional to the audio signal level. A dc amplifier with another NPN transistor lets its collector voltage drop as soon as it is fed with significant dc input voltage. Thus this voltage decreases and so it can be used to control gate 2 of the MOSFETs in the various receiver stages that are equipped with tetrodes.

The S-Meter is connected to the emmitter of the final transistor. If conductivity in the transistor rises, the emmitter becomes more positive and the S-Meter needle is deflected proportionally. The 220Ω potentiometer in the emmitter line must be set in accordance to the respective S-Meter you are using. One shortcoming should be mentioned: If you have a not so sensitive meter then the value of the pot can be set to nearly 100Ω or above. This will prevent the collector from dropping to nearly 0V in case there is a strong signal and hence reduce the maximum dB you can get from the AGC chain.

The Transmitter

The transmitter section is designed for an output level of about 20 watts and uses 4 stages all equipped with bipolar transistors. The last stage is a push-pull stage, the 3 low-power stages are single ended. I prefer push-pull for the last stage (if possible)  because this circuit inherently does not create even harmonics thus simplifying output filtering.

The first parts of the transmitter to be shown here are the microphone amplifier, the SSB-generator and the TX mixer:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) -MIC AMP

The mic amp is simple but provides enough gain and good linearity for using an old-style dynamic microphone. It works in common emmitter mode and has gain of about 15 to 20 dB.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – SSB GEN

The audio signal amplified by the microphone amplifier is fed into PIN1 (Input 1) of an NE602/SA612 mixer IC which is the simpliest way to generate a DSB signal with a Gilbert cell. LO input is fed to PIN7 and should be in the range of 200 to 300mVpp. Thus a 12pF cap has been installed to limit LO voltage going to input at PIN7.

Carrier suppression is around 45dB when LO offset frequency is correctly set for each of the two sidebands and LO voltage is not much higher than the 300mVpp mentioned before.

The DSB signal produced by this mixer goes on to the SSB filter relay and filter that has been described before. The use of shielded cable is mandatory, too.

The TX Mixer

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TX MIXER

You won’t be able to recognize many differences if you compare this TX mixer to the DSB generator. In fact, there are none.

The 14MHz Band Pass Filter

Next is the band pass filter that consists of 2 coupled tuned LC circuits for 14MHz. They are also wound on TOKO style coil formers. Data can be found in the schematic underneath.

It is important to also install the ferrite heads that are provided with most of the coil formers and to use the shield “metal cans” that are also standard for these coils. This is to prevent stray coupling of rf energy into the first stage of the power amplifier strip and therefore preventing self-oscillation of the transmitter strip.

For proper adjustment set the transmit frequency to about half of the frequency swing ((i. e. to about 14.200 kHz) and tune for max. output.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) -BPF

If you modulate with a two-tone signal to the mic amp you should see about 500mVpp by the output of the BPF when the chain is fully driven.

The Preamplifier

We start with the low power end of the power transmitter section. A bipolar rf type transistor is the center part of this stage.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TX PREAMP

This one is a standard circuit and has been “trimmed” for maximum linearity in order to reduce distortion to a minimum (which is also true for the following stages). You can see the well understood 2 master ways of achieving max. linearity in an amplifier stage:

  • Negative feedback between collector and base (i)
  • Emmitter degeneration (II)

Explanation:

i) The first measure goes along with the 2.7kΩ resistor between collector and base of the transistor. This resistor provides positive dc bias voltage to the base and leads 90° out-of-phase ac voltage to the transistor’s input. This reduces gain and therefore distortion. But due to the fact that the whole transmitter strip has plenty of gain, this loss in gain is not a serious problem.

ii) The 10Ω resistor in the emmitter line is not bypassed by a capacitor. This stabilizes the circuit. When the current through transistor increases the emmitter voltage will rise (according to Ohm’s law) and the voltage between collector and emmitter drops. This reduces voltage difference between base and emmitter and hence also reduces gain.

The coupling to the next stage is done by a capacitor of 0.1uF. This causes some impedance mismatch. But that is as well not a big problem because the gain reduction here helps to prevent the whole transmitter from unwanted oscillations by diminishing overall gain.

The Predriver

This stage is somehow a copy of the stage before but allows more current to flow through the stage. It is also operated in class “A” mode and uses the same methods to maximize linearity like the preamp stage.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TX PREDRIVER

You can use a 2N3866 transistor here which is available. But any other rf power transistor for driver stages (2SC1973 etc.) will also do the job well. A heatsink is recommended even if stage current ist not that high. T1 should be a toroid, a “pig-nose” core in this place to my experience is not the best choice. The 10uH RFCs are ready made ones but you can also wind 20 turns of 0.4mm enameled wire to a FT37-43 toroid core.

RF output of this stage could be measured as 100mW into a 50Ω load.

The Main Driver

This stage has an old 2SC2078 CB transistor and is operated in class “AB” mode. An alternative could be a 2N3553 that is available on ebay for example. A heatsink is neccessary for whatever type you use.

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TX DRIVER

Correctly set bias for “AB” operation is ensured by the 1kΩ resistor from VDD to the bias circuit. The 1kΩ resistor limits the current whereas the diode works as a stabilizing element (thermistor). It must be connected directly to the case of the transistor ensuring good thermal contact. If the temperature of the devices rises the resistance of the diode will decrease. Hence current through the diode increases thus reducing the part of the current that can pass through the base-emmiter line of the 2SC2078. Quiescent current is stabilized and thermal runaway is prevented.

The rf output is uncommonly terminated with a low-pass-filter. This is because I first intended to build the transceiver for an output level of about 4 watts. But then I had the idea that the space still available on the veroboard could be used by another amplifier definitely leaving the QRP power level. So I left the circuit how it first was and just added the final amplifier stage.

Output of this driver stage now ist set to 1 watt into a 50Ω resistor.

The Final RF Amplifier

Now let’s go for the power machine in this transceiver:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TX POWER AMP

2 rf power transistors 2SC1969 by Eleflow provide up to 20 watts of rf power. Bias for such a high power stage can not be set by a simple resistor. Here a line transistor (BD137) serves as current control. Diodes D1 and D2 (1N4002 or equ.) follow the same purpose like the single one in the stage described before. They must be mounted with excellent thermal contact to each of the 2 power devices which ensures secured protection against thermal runaway. The transistors also must be connected to a large heatsink. I use Aluminium metal strips (2mm thickness) to connect them to the back wall of the cabinet.

RF is fed into the power transistors via a network of 8.2Ω  resistors and two 22uH rf chokes that seperate the rf line from the dc bias line letting only dc pass. This method makes construction of the input transformer easier. Winding ratio is 4 turns primary, 2 turns secondary. This is because the input impedance of the stage ist fairly low (aorund some ohms).

The output transformer is a homemade “pig-nose” of 6 toroids FT50-43, where 3 toroids are stacked (using 2-component glue) and 2 of these stacks are glued in parallel (see picture at the end of this text for details!). Winding ratio is  1 + 1 (primary center tapped) to 4 on secondary.

Quiescent current of this stage should be set to about 100mA.

A low-pass-filter terminates this stage and is connected to the antenna relay.

In addition you find a section to measure rf power. This is again the so called “Greinacher-Circuit” which doubles the voltage and serves as a charge pump. The dc output of this circuit directly leads to the S-Meter indicating output power of the transmitter.

Performance

First the spectrum of the signal with the transmitter fully driven to 20 watts output power with a two-tone-signal:

IMD3 is about 28dB below signal peak which I think is acceptable.

Amplitude diagram is as follows:

2-Tone-Signal Amplitude
2-Tone-Signal Amplitude

Max. radio frequency voltage is 90.4Vpp which calculates to about 20 watts of rf power (P=(Vpp/(2*SQR(2)))²/50Ω).

Power switch board and RIT voltage

A 12V relay with two pairs of contact sets is the heart of this unit. DC power is lead to TX, RX and permanent supply via the respective power lines.

RIT voltage generation is a little bit more complicated. When the RIT switch is in “OFF” position, RIT voltage always is taken from the fixed voltage divider that is formed of the two 4.7k resistors either when on receive or transmit mode.

If RIT is “ON” then there are two possibilities: When on receive mode, RIT voltage is gained from the 10k lin. potentiometer in the front panel. When on transmit mode RIT again is taken from the fixed voltage divider.

There is also a false polarity protection diode. This can be any silicon type with max. current >= 5 A.

"Old school" SSB transceiver for 14MHz by DK7IH (2018) - TR SWITCH RIT
“Old school” SSB transceiver for 14MHz by DK7IH (2018) – TR SWITCH RIT

Mechanics

The construction is sandwich style made of 2 layers:

“Old school” SSB transceiver for 14MHz by DK7IH (2018) -Inside View – VFO, LO, RX, SSB generator, TX mixer etc.
“Old school” SSB transceiver for 14MHz by DK7IH (2018) -Inside View TX and switchboard

OK, that’s the story. Thanks for joining me on the trip to the past! 😉

73 de Peter.

Shrinking a QRP transceiver to (nearly) the size of a pack of cigarettes

The challenge started some weeks ago, when John, ZL2TCA, commented to this blog

you next challange is to build a rig into a cigerette packet size case.

My problem: I don’t smoke, have never smoked and probably never will. 😉 But I have a new transceiver for 20 meters, that might come close to the dimensions of a pack of “cancer sticks”.

DK7IH pocket sized qrp transceiver 20-4 a
DK7IH pocket sized QRP transceiver 20-4

The transceiver is nearly the same circuit as applied with the “Micro 20-III” but uses a single ended final amplifier instead of a push-pull circuit. I hope to find time the next days to publish an article on this rig featuring full description of the radio. Currently I’m in the IOTA contest and working stations from all over Europe.

73 de Peter

Reviewing and improving the semi-automatic antenna tuner

Foreword

When I built the semi automatic tuner two years ago I did not take into account some possible shortcomings the device could suffer from. The first of these I noticed when I exceeded power levels of about more or less than 50 watts. In some cases there was rf incoupling leading the microcontroller to fail so that the relay setting was invalid for the given combination of frequency and antenna. The next point was that the algorithm to set the capacitor was far from being optimized. And, as I found out, the maximum inductance I had inlcuded was far too high. On the other hand the lowest indcutance was to big to ensure very fine tuning. So this was revised, too by stepping the inductors more carefully.

The consequence then was a complete reconstruction of the tuner trying to avoid the problems from rf stray energy being coupled into the microcontroller and improving the software and hardware.

Abstract

Thsi article describes a microcontroller driven semi-automatic antenna tuner capable of handling power levels up to 150 watts. The device is a low pass filter tuner manually tuned by setting the optimized L/C combination by hand and then storing the values into the EEPROM of the mictrocontroller to recall them later (seperately for each band from 80 to 10 meters including WARC bands). The tuner ist designed to couple long wire antennas (i. e. longer than half a wavelength) in the frequency range from about 3 MHz to 30 MHz. The antennas can be balanced or non-balanced.

The device uses 7 coils wound on iron powder toroids and a variable capacitor controlled by a motor with a reduction drive and a a device that detects the current turning angle of the rotator.

Also integrated you will find a measurement section to give the current standing wave ratio and put out this on the display.

General layout

The tuner consists of two main parts:

  • The microcontroller unit
  • The RF unit containing the tuning coils and the variable capacitor.

Let’s see the schematic first:

DK7IH semi automatic antenna tuner V2 (schematic)
DK7IH semi automatic antenna tuner V2 (Schematic FULL SIZE)

Circuit description

Starting on the left side, you see the microcontroller unit equipped with an 8-bit AVR microcontroller (ATMega16 or similar). The user interface is very simple and made of 6 push buttons. These are connected to GND via switchable individual resistors leading to the ADC3 input of the cntroller. The pull up resistor for ADC3 is activated thus forming a voltage divider and thus an individual ADC value for each push button to be recognized by the software. This is done because it saves control lines and controller ports to a wide extent.

The LCD is a two line 16 characters LCD.

Output ports are connected to ULN2003 driver ICs. These ICs contain a driver capable to handle up to 30V DC including a clamp diode so this IC can drive mtors and relays directly. There are capacitors of 0.1uF connected to the port lines to minimize rf coupling effects.

The RF board is made of 7 coils wound on T68-2 toroids with the inductances given in the schematic:

  • L1: 0.1uH: 4 turns,
  • L2: 0.25uH: 7 turns,
  • L3: 0.5uH: 9 turns,
  • L4: 1uH: 13 turns,
  • L5: 2uH: 19 turns,
  • L6: 4uH: 26 turns,
  • L7: 8uH: 37 turns.

Wire gauge is 0.4mm. The inductors are shortened by a 12V relay each if neccessary. So you can (by binary calculation) set any value from 0.1 uH to close to 16uH.

An output transformer is used to give a balanced out for e. g. doublet antenns. It is 10 turns bifilar on a 2.5 cm toroid ferrite core of No. 43 material. If you use a non-balanced antenna you can leave out this transformer.

The capacitor in my construction is a 200pF max. butterfly capacitor with air as dielectric.  The advantage of a butterfly type is that it needs only 90° angle to turn it from minimum to maximum capacity. The motor (a 5V dc version) is connected via a 240:1 gear drive by TAMIYA. The motor is pulse driven so it can be directly connected to 12 Volts with running danger to damage it.

The drive has two outlets providing one axle at each side of the drive. To one of the axles I connected the capacitor, the other one connects to a potentiometer to report the current swing angle to the microcontroller. This allows precise feedback of the capacitor’s current position which is essential for setting it to the desired value. The value of this variable resistor does not really matter since it is only a simple voltage divider. Anything between 1k and 10k should fit. Make sure that you use a piece that is easy to turn to minimize friction. To connect the axles I used PVC tubing with an inside diameter of 3 mm.

Also included is a measurement section to give the user a current reading of VSWR. The coupler can be anything you should regard as proper. I used a strip power coupler from an old CB radio. But other systems should also work.

To compensate losses when tuning low frequencies I added a DC amplifier based on an operational dual system amplifier (LM358). There is no means to reduce sensitivity. This is done by regulating the input power of the driving transmitter. The software will give you a readout for FWD and REF power in the range from 0 to 999. Tune to maxmimun FWD and minimum REF energy and everything will be alright! 😉

Practical aspects

To minimize RF couping into the microcontroller I seperated the control board from the RF board by putting it on a seperate veroboard with an aluminium shielding underneath:

DK7IH semi automatic antenna tuner V2 (inside view)
DK7IH semi automatic antenna tuner V2 (inside view)

The RF board is mounted to the bottom of the case, here with dismantled controller board. The controller board is sited on top of the package.

DK7IH semi automatic antenna tuner V2 (inside view)
DK7IH semi automatic antenna tuner V2 (inside view)

On the right side there is the variable butterfly capacitor, on the board, centered you can see the motor plus the reduction drive. On the left side of this there is a small potentiometer that forms the turning angele detector. To connect this to the ADC of the controller it is highly recommended to use shielded cable!

To come to an end, here is the deveice positioned under the roof window of my shack directly connected to the ladder line:

DK7IH semi automatic antenna tuner V
DK7IH semi automatic antenna tuner V”

Thanks for reading and enjoy your radio! 73 de Peter (DK7IH)

The software

(Apology for having some comments in German. I have been using this code for centuries! 😉

/*****************************************************************/
/*              Antennatuner with ATMega 16 V2                   */
/*  ************************************************************ */
/*  Microcontroller:  ATMEL AVR ATmega16, 8 MHz                  */
/*                                                               */
/*  Compiler:         GCC (GNU AVR C-Compiler)                   */
/*  Author:           Peter Rachow DK7IH                         */
/*  Last cahnge:      2018-07-27                                 */
/*****************************************************************/

/*    PORTS */
// O U T P U T 
// LCD 
// RS      = PD2
// E       = PD3
// D4...D7 = PD4..PD7

//Coil relays: PC0...PC6
//Motor drive on/off: PD1
//Motor direction relay: PD0
//Extra capacitor 200pF: PC7 (not yet!)

//I N P U T
//ADC0: SWR-Meter 0
//ADC1: SWR-Meter 1
//ADC2:
//ADC3: Keys
//ADC4: Potentiometer for Capacitor position

#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <avr/eeprom.h>
#include <util/delay.h>

int main(void);

#define LCD_INST 0x00
#define LCD_DATA 0x01

#define MAXCAP 220
#define CAPDELAY 10
#define MAXBANDS 7

void lcd_write(char, unsigned char);
void set_rs(char);
void set_e(char);
void lcd_init(void);
void lcd_cls(void);
void lcd_line_cls(int);
void lcd_putchar(int, int, unsigned char);
void lcd_putstring(int, int, char*);
int lcd_putnumber(int, int, long, int);
void lcd_display_test(void);

//BAND DISPLAY & MISC
void show_band(int);
void show_meter(int, int, int);
void define_chars(void);

//Coils & Cpas
void set_coils(int);
void set_cap(int);
void rotate_cap(int);
int get_cap(void);

//ADC
int get_adc(int);
int get_keys(void);

//Delay
void wait_ms(int);

//String
int int2str(long, int, char *, int);
int stringlen(char *);


long runsecs = 0;

/**************************************/
/* Funktionen und Prozeduren fuer LCD */
/**************************************/
// LCD 
// RS      = PD2
// E       = PD3
// D4...D7 = PD4..PD7

/* Ein Byte (Befehl bzw. Zeichen) zum Display senden */
void lcd_write(char lcdmode, unsigned char value)
{
    int x = 16, t1;
	
    set_e(0); 

    if(!lcdmode)
	{
        set_rs(0);    //RS=0 => INST
	}	
    else
	{
        set_rs(1);    // RS=1 => DATA
	}	

    wait_ms(4);
	
    //Hi nibble
    set_e(1);
	for(t1 = 0; t1 < 4; t1++)
	{
	    if(value & x)
	    {
	       PORTD |= x;
	    }
        else	
	    {
           PORTD &= ~(x);
	    }  
		
		x <<= 1;
	}	
	set_e(0);
	
	x = 16;

	// Lo nibble
	set_e(1);
	for(t1 = 0; t1 < 4; t1++)
	{
	    if((value & 0x0F) * 16 & x)
	    {
	       PORTD |= x;
	    }
        else	
	    {
           PORTD &= ~(x);
	    }  
		
		x <<= 1;
	}
    set_e(0);

}

//RS
void set_rs(char status) //PD2  
{
    if(status)
	{
        PORTD |= 4;
	}	
    else
	{
	    PORTD &= ~(4);
	}	
}

//E
void set_e(char status)  //PD3
{
    if(status)
	{
        PORTD |= 8;
	}	
    else
	{
	    PORTD &= ~(8);
	}	
}

/* Ein Zeichen (Char) zum Display senden, dieses in */
/* Zeile row und Spalte col positionieren           */
void lcd_putchar(int row, int col, unsigned char ch)
{
    lcd_write(LCD_INST, col + 128 + row * 0x40);
    lcd_write(LCD_DATA, ch);
}


/* Eine Zeichenkette direkt in das LCD schreiben */
/* Parameter: Startposition, Zeile und Pointer   */
void lcd_putstring(int row, int col, char *s)
{
    unsigned char t1;

    for(t1 = col; *(s); t1++)
	{
        lcd_putchar(row, t1, *(s++));
	}	
}


/* Display loeschen */
void lcd_cls(void)
{
    lcd_write(LCD_INST, 1);
}


/* LCD-Display initialisieren */
void lcd_init(void)
{
    /* Grundeinstellungen: 2 Zeilen, 5x7 Matrix, 4 Bit */
    lcd_write(LCD_INST, 40);
    lcd_write(LCD_INST, 40);
    lcd_write(LCD_INST, 40);

    //MAtrix 5*7
    lcd_write(LCD_INST, 8);

    /* Display on, Cursor off, Blink off */
    lcd_write(LCD_INST, 12);

    /* Entrymode !cursoincrease + !displayshifted */
    lcd_write(LCD_INST, 4);
	
	//4-Bit-Mode
    lcd_write(LCD_INST, 2);	
	
	lcd_cls();
}


//Write number with given amount on digits to LCD
int lcd_putnumber(int col, int row, long num, int dec)
{
    char *numstr = malloc(32);
    int l = 0;
    if(numstr != NULL)
    {
        int2str(num, dec, numstr, 16);
        lcd_putstring(col, row, numstr);
        l = stringlen(numstr);
        free(numstr);
        return l;
      
    } 
    return 0;
}


void lcd_line_cls(int ln)
{
    int t1;
	
	for(t1 = 0; t1 < 15; t1++)
	{
	    lcd_putchar(ln, t1, 32);
	}
}	
/*****************************************/
//           STRING FUNCTIONS
/*****************************************/
//INT 2 ASC
int int2str(long num, int dec, char *buf, int buflen)
{
    int i, c, xp = 0, neg = 0;
    long n, dd = 1E09;

    if(!num)
	{
	    *buf++ = '0';
		*buf = 0;
		return 1;
	}	
		
    if(num < 0)
    {
     	neg = 1;
	    n = num * -1;
    }
    else
    {
	    n = num;
    }

    //Fill buffer with \0
    for(i = 0; i < 12; i++)
    {
	    *(buf + i) = 0;
    }

    c = 9; //Max. number of displayable digits
    while(dd)
    {
	    i = n / dd;
	    n = n - i * dd;
	
	    *(buf + 9 - c + xp) = i + 48;
	    dd /= 10;
	    if(c == dec && dec)
	    {
	        *(buf + 9 - c + ++xp) = '.';
	    }
	    c--;
    }

    //Search for 1st char different from '0'
    i = 0;
    while(*(buf + i) == 48)
    {
	    *(buf + i++) = 32;
    }

    //Add minus-sign if neccessary
    if(neg)
    {
	    *(buf + --i) = '-';
    }

    //Eleminate leading spaces
    c = 0;
    while(*(buf + i))
    {
	    *(buf + c++) = *(buf + i++);
    }
    *(buf + c) = 0;
	
	return c;
}

//STRLEN
int stringlen(char *s)
{
   int t1 = 0;

   while(*(s + t1++));

   return (t1 - 1);
}


//BAND DISPLAY
void show_band(int b)
{

    char *band_str[] = {"80m", "40m", "30m", "20m", "17m", "15m", "12m", "10m"};
    lcd_putstring(0, 13, band_str[b]);
}

//Meter (max. value = 25)
void show_meter(int value, int value_old, int pos)
{
	#define MAXBLOCKS 4
    int v1, v2, v3, i1;
	
    //Clear meter (5 chars) if new value > old value
    if(value < value_old)
    {
        for(i1 = 0; i1 < MAXBLOCKS; i1++)
        {
	        lcd_putchar(1, i1 + pos * 6, 32);
        }
	}
			
	v1 = (int) value / MAXBLOCKS; //Full blocks, 5 cols each
    v2 = value - v1 * MAXBLOCKS;  //Rest
	if(v1 > MAXBLOCKS)
	{
		v1 = MAXBLOCKS;
	}
	
	if(value >= value_old)
	{
	    v3 = (int) value_old / MAXBLOCKS; //Full blocks, 5 cols each, already drawn
	}
	else
	{  
		v3 = 0;
	}	    
	
	//Full blocks	
	for(i1 = v3; i1 < v1; i1++)
	{
	    lcd_putchar(1, i1 + pos * 6, 4); 
	}
	
	//Rest
	if(i1 < MAXBLOCKS)
	{
		if(v2)
	    {
	        lcd_putchar(1, i1 + pos * 6, v2 - 1);
	    }
        else
        {
            lcd_putchar(1, i1 + pos * 6, ' ');
        }
	}
}

//PROGRAM CUNSTOM CHARS FOR S-SMETER
void define_chars(void)
{
    int i1;
	unsigned char adr = 64;
						  
	unsigned char b1[] = {0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, //S-Meter blocks 
	                      0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
						  0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00,
						  0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00,
						  0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
						  	0x0,0x0,0x4,0xe,0x4,0x0,0x0, 0, //+
						  	0x4,0xe,0x4,0x0,0x4,0xe,0x4,0, //++
						  0x00, 0x01, 0x02, 0x12, 0x0A, 0x04, 0x00, 0x00  //Tick
						  
						  };					  
	//Dummy operation!
	lcd_write(LCD_INST, 0);
	lcd_write(LCD_DATA, 0);

    //Load data into CGRAM
	for(i1 = 0; i1 < 64; i1++)  
	{
	    lcd_write(LCD_INST, adr++);
		lcd_write(LCD_DATA, b1[i1]);
	}
}		


/////////////////////////////////////
//
// C O I L S & C A P S
//
/////////////////////////////////////
void set_coils(int pattern)
{
    int unsigned t1, x = 1, p = pattern;
    
    //Inductance in uH  * 100
    int i0[] = {10, 25, 50, 100, 200, 400, 800}, i1 = 0;
    
    //lcd_putstring(0, 10, "    ");
    //lcd_putnumber(0, 10, p, -1, -1, 'l', 0);
    
    for(t1 = 0; t1 < 7; t1++)
    {
		if(p & x)
        {
            PORTC &= ~(x);      
            i1 += i0[t1];
        }
        else
        {    
            PORTC |= x;
        }
        x <<= 1;
     }       
     lcd_putstring(0, 0, "       ");
     lcd_putstring(0, lcd_putnumber(0, 0, i1, 2), "uH");
}

void set_cap(int cap)
{
               
    if(cap < 0 ||cap > MAXCAP)
    {
		return;
	}
	
	lcd_putstring(0, lcd_putnumber(0, 7, cap, -1) + 7, "pF");
	wait_ms(500);
	/*	
    lcd_putnumber(0, 0, get_adc(4), -1, -1, 'l', 0);
    lcd_putnumber(0, 8, cap, -1, -1, 'l', 0);
    lcd_putnumber(1, 0, (int) adc0, -1, -1, 'l', 0);	
    */       
    
    while(get_cap() > cap)
    {
		rotate_cap(0);
		lcd_putstring(0, 7, "      ");
        lcd_putstring(0, lcd_putnumber(0, 7, get_cap(), -1) + 7, "pF");
        if(get_keys() == 5 || get_keys() == 6) //Quit if band QSY key is pressed
        {
			return;
		}	
    }
    
    while(get_cap() < cap)
    {
		rotate_cap(1);
		lcd_putstring(0, 7, "      ");
        lcd_putstring(0, lcd_putnumber(0, 7, get_cap(), -1) + 7, "pF");
        if(get_keys() == 5 || get_keys() == 6) //Quit if band QSY key is pressed
        {
			return;
		}	
    }
        
    

}

//Measure real cap val from sensor
int get_cap(void)
{
	double val = (double) (get_adc(4) - 384) * MAXCAP / 256;
	
	return (int) val;
}
	
void rotate_cap(int direction)
{
	if(direction)
	{
		PORTD &= ~(1); //RelayOFF      
	}
	else
	{
	    PORTD |= 1;   //Relay ON	
	}	
	
	PORTD |= 2;   //Motor ON
	wait_ms(CAPDELAY);
	PORTD &= ~(2);  //Motor OFF      
	wait_ms(CAPDELAY);
}	


ISR(TIMER1_OVF_vect)   	   // Timer1 Überlauf
{ 
    runsecs++;
    TCNT1 = 57724;	  
} 

//***************************************************
//                      ADC
//***************************************************

int get_adc(int adcmode)
{
    int adc_val = 0;
	
	
	ADMUX = (ADMUX &~(0x1F)) | (adcmode & 0x1F);     // Kanal adcmode aktivieren PA0=TUNE
    wait_ms(3);
	
    ADCSRA |= (1<<ADSC);
	wait_ms(3);
	
	adc_val = ADCL;
    adc_val += ADCH * 256;   
	
	while(ADCSRA & (1<<ADSC));
	
	return adc_val;
}	

//Read keys via ADC0
int get_keys(void)
{

    int key_value[] = {18, 22, 29, 43, 74, 132};  
       	
    int t1;
    int adcval = get_adc(3);
        
    //TEST display of ADC value 
    /*
    lcd_cls();
    lcd_putnumber(0, 0, get_adc(3), -1, -1, 'l', 0);
    return 0;    	
    */
    
    for(t1 = 0; t1 < 6; t1++)
    {
        if(adcval > key_value[t1] - 2 && adcval < key_value[t1] + 2)
        {
			 return t1 + 1;     
        }
    }
    
    return 0;
}

/***************************************************/
/* Wartezeit in Millisekunden bei fck = 8.000 MHz  */
/***************************************************/
void wait_ms(int ms)
{
  int t1, t2;

  for(t1 = 0; t1 < ms; t1++)
    for(t2 = 0; t2 < 137 * 8; t2++)
      asm volatile ("nop" ::);
}

int main()
{
	int t1;
	int key;     //Keystroke
	int adc_val; //Value of ADC
    int i = 65;  //L
    int band = 0;
    int l1 = 0, c1 = 0;
    
    //Standard values for DK7IH antenna
    //L=      - (128), 8uH(64), 4uH(32), 2uH(16), 1uH(8), 0.5uH(4), 0.25uH(2), 0.125uH(1)
    int std_l [] = {65, 33, 12, 8, 6, 4, 3, 2, 1};
    int std_c [] = {172, 41, 75, 110, 88, 55, 33, 17};
    
    //Meter data
    int s0, s1;
    int s0_old = -1, s1_old = -1;
    int s0off, s1off;
    int loopcnt0 = 0;;
        
    int ok = 0;
    long runsecs2 = 0;
	
	/* Set ports */
    /* OUTPUT */
    DDRB = 0x1F; //Relays 1.55 of cap switching
    DDRC = 0x7F; //Relays for coils             
    DDRD = 0xFF; //LCD data on PD4...PD7
                 //LCD RS:PD2, E:PD3
                 //PD0, PD1: Relay 6 and 7 of cap switches
    
    PORTA = 0x08; //Pullup resistor for keys' input   
    
    //Display
    lcd_init();
	wait_ms(500);
	lcd_cls();
	lcd_putstring(0, 0, " DK7IH Antenna");				
	lcd_putstring(1, 0, " Tuner Ver. 2.0");				
	wait_ms(500);
	lcd_cls();
			
	//Watchdog abschalten
	WDTCR = 0;
	WDTCR = 0;
    	
	//ADC initialisieren
    ADMUX = (1<<REFS0);     // Referenz = AVCC
    ADCSRA = (1<<ADPS2) | (1<<ADPS1) | (1<<ADEN); //Frequenzvorteiler 64 u. //ADC einschalten
	ADCSRA |= (1<<ADSC); //Eine Wandlung vornehmen
	while (ADCSRA & (1<<ADSC)); //Eine Wandlung abwarten
    adc_val = ADCL;
    adc_val += ADCH * 256;   //Wert auslesen
	adc_val = 0;
	
	//Timer 1
	TCCR1A = 0;                      // normal mode, keine PWM Ausgänge
    TCCR1B = (1<<CS12) + (1<<CS10) ;   // start Timer mit Systemtakt, Prescaler = /1024
	                                    //Auslösung des Overflow alle Sekunde sec.
    TIMSK = (1<<TOIE1);   // overflow aktivieren.
	TCNT1 = 57724;        //Startwert für Sekundentakt

    //Define custom chars for meter
    //define_chars();

    //Load standard data if eeprom cell empty
    for(t1 = 0; t1 < 8; t1++)
    {
		if(eeprom_read_byte((uint8_t*)(t1 * 2)) == 255)
		{ 
			eeprom_write_byte((uint8_t*)(t1 * 2), std_l[t1]);
			eeprom_write_byte((uint8_t*)(t1 * 2 + 1), std_c[t1]);
		}
	}		
				
		
    //Get recent data           		
   	band = eeprom_read_byte((uint8_t*)32);
   	if(band < 0 || band > MAXBANDS)
	{
	    band = 3;
	}
	show_band(band);
	
	l1 = eeprom_read_byte((uint8_t*)(band * 2));
	if(l1 >= 0 && l1 < 128)
	{
		set_coils(l1);
	}
	else
	{
		set_coils(65);
		lcd_line_cls(1);
		lcd_putstring(0, 0, " -x-uH");
		wait_ms(1000);
	}
	c1 = eeprom_read_byte((uint8_t*)(band * 2) + 1);	
	if(c1 >= 0 && c1 < MAXCAP)
	{
		set_cap(c1);
	}
	else
	{
		set_cap(110);
		lcd_line_cls(1);
		lcd_putstring(0, 0, " -x-pF");
		wait_ms(1000);
	}	
    sei();

    show_band(band);
    
    //Calculate 0-offset of swr meter
    s0off = get_adc(0);
    s1off = get_adc(1);
    
    for(;;) 
	{
		key = get_keys();
		if(i > 0 && key == 2)
		{
			i--;
		    set_coils(i);
		    wait_ms(50);
		}    
		
		if(i < 127 && key == 1)
		{
			i++;
		    set_coils(i);
		    wait_ms(50);
		}    
				
		while(get_cap() > 0 && key == 4) //C(-)
		{
			rotate_cap(0);
		    lcd_putstring(0, 7, "      ");
            lcd_putstring(0, lcd_putnumber(0, 7, get_cap(), -1) + 7, "pF");     
            wait_ms(100);
            key = get_keys();
		}    
		
		while(get_cap() < MAXCAP && key == 3) //C(+)
		{
			rotate_cap(1);
		    lcd_putstring(0, 7, "      ");
            lcd_putstring(0, lcd_putnumber(0, 7, get_cap(), -1) + 7, "pF");     
            wait_ms(100);
            key = get_keys();
		}    

        if(band > 0 && key == 6)         //Band (-)
        {
			band--;
		
			while(!eeprom_is_ready());
		    eeprom_write_byte((uint8_t*)32, band);
										
			lcd_putstring(1, 0, "Recalling.");
				
			l1 = eeprom_read_byte((uint8_t*)(band * 2));
			c1 = eeprom_read_byte((uint8_t*)(band * 2 + 1));

	        if(l1 >= 0 && l1 < 128)
	        {
		        set_coils(l1);
		        i = l1;
	        }
	        else
	        {
		        set_coils(65);
		        lcd_putstring(0, 0, " -x-uH");
		    }    
									
														
			if(c1 >= 0 && c1 <= MAXCAP)
			{
			    set_cap(c1);
			}	
			else
			{
				lcd_putstring(0, 7, "-x-pF");
			}	
				
			show_band(band);
			lcd_putstring(1, 0, "             ");
			while(get_keys());
		}
		
        
        if(key == 5) //Band (+)
		{
		    show_band(band);
			lcd_line_cls(1);
			
		    runsecs2 = runsecs;
			ok = 0;
			lcd_putstring(1, 0, "Waiting....");
			while(get_keys() == 5 && !ok)
			{
			    
			    lcd_putnumber(1, 10, 3 - (runsecs - runsecs2), -1);
				if(runsecs - runsecs2 > 2)
				{
				    ok = 1;
				}	
			}	
			
			if(runsecs > runsecs2 + 1) //Key has been pressed for longer than a second, new values for current band to be set
			{                          //Also store values in EEPROM 
			    while(!eeprom_is_ready());
				eeprom_write_byte((uint8_t*)(band * 2), i); 
				
			    while(!eeprom_is_ready());
				eeprom_write_byte((uint8_t*)(band * 2 + 1), get_cap());
				
				while(!eeprom_is_ready());
				eeprom_write_byte((uint8_t*)32, band);
								
	            lcd_line_cls(1);
				lcd_putstring(1, 0, "Stored.");				
				wait_ms(1000);
				lcd_line_cls(1);
			}
            else	
			{
			    if(band < MAXBANDS) //Change band 1 up
				{
				    band++;
				}
                				
				while(!eeprom_is_ready());
				eeprom_write_byte((uint8_t*)32, band);
				
				show_band(band);
				
				lcd_putstring(1, 0, "Recalling.");
				
			    l1 = eeprom_read_byte((uint8_t*)(band * 2));
				c1 = eeprom_read_byte((uint8_t*)(band * 2 + 1));
								
	            if(l1 >= 0 && l1 < 128)
	            {
		            set_coils(l1);
		            i = l1;
	            }
	            else
	            {
		            set_coils(65);
		            lcd_putstring(0, 0, " -x-uH");
		            wait_ms(1000);
		        }    
									
														
			    if(c1 >= 0 && c1 <= MAXCAP)
			    {
			        set_cap(c1);
			    }	
			    else
			    {
				     lcd_putstring(0, 7, "-x-pF");
			    }	
			    lcd_putstring(1, 0, "             ");
			}	
		}
		
		//Meter check
        if(loopcnt0++ > 10)
        { 
            
            s0 = get_adc(0) - s0off;
            s1 = get_adc(1) - s1off;
            
            if(s0 != s0_old)
            {
				if(s0 > 999)
				{
					s0 = 999;
				}	
				lcd_putstring(1, 0, "FWD:    "); 
				lcd_putnumber(1, 4, s0, -1);
				s0_old = s0;
			}
			
			if(s1 != s1_old)
            {
				if(s1 > 999)
				{
					s1 = 999;
				}
				lcd_putstring(1, 8, "REF:     "); 
				lcd_putnumber(1, 12, s1, -1);
				s1_old = s1;
			}	
            
            loopcnt0 = 0;
        }    
        
	}
	return 0;
}


 

A compact project: The “Micro42” – Another “shirt pocket” SSB transceiver.

The Micro42 - A really pocket sized SSB QRP transceiver for 7MHz

Having deferred the work on the “micro multibander” for some time I finished another small QRP rig (this one for 7MHz) that is suitable for my summer excursions by bike or hiking the local mountains here in the State of Rhineland-Palatinate or the Black Forest that is not that far away on the other side of the Rhine valley.

Besides, this transceiver to be discussed here is some sort of a “remake” of a 20 meter rig I built 3 years before. And this time, the transceiver really fits into a shirt pocket without having to wear “XXXXL”- clothing. ;-):

The Micro42 - A really shirt pocket sized QRP SSB transceiver
The Micro42 – A really shirt pocket sized QRP SSB transceiver (this is my work shirt, so don’t mind the stains! 😉 )

General circuit description (instead of presenting a block diagram)

The rig uses two mixers NE602 plus one filter as central elements. The signal way is reversed when switching from receive to trasmit mode. This is done by 2 relays and is a well known technique for simple QRP rigs. You will find lots of equivalent ideas on the internet (Example 1, Example 2).

But not to ignore the shortcomings of these designs: They are somehow inferior to my requirements, particularly concercing receiver performance. I prefer to have higher signal gain and an AGC circuit. AGC for me is a must. But these designs can be expanded easily, so I added an AGC controlled interfrequency amplifier with dual gate MOSFET BF998 into the receiver’s signal path enhancing performance significantly.

Frequency layout

The frequency generation of the superhet transceiver scheme is simple: Again I use one interfrequency (i. e. 9MHz). The VFO is DDS based on AD9835 operating below the desired radio frequency, which means that it is set to the range of about 2 MHz. Due to this low frequency you could replace the DDS by a VFO if you don’t like the relatively complex work with the software programming and microcontroller stuff). A 2MHz VFO can also be made very stable, so this is an alternative not to be ignoered.

Due to the fact that the schematic is not very difficult to analyze you are kindly requested to refer to it for further talking:

Schematic - The Micro42 - A really shirt pocket sized QRP SSB transceiver
Schematic – The Micro42 – A really shirt pocket sized QRP SSB transceiver. Click for full size picture

Circuit description

In the center of the schematic you can see the main elements of the circuit: One SSB filter (9MHz), correctly terminated by 2 resistors of 1k each (to ensure proper filter response curve) and two relays with a double set of switches. These relays reverse the way the signal travels through the filter. The advantage of this: You can use the integrated oscillator of the NE612 controlled by a crystal and a tuning capacitor to set the carrier frequency correctly for the lower sideband because the mixer is used as SSB generator and as product detector in common.

A word on chosing the proper relays: An intense examination of the relays’ data sheet is essential. I built a prototype of this transceiver on a breadboard prior to soldering the components to a veroboard. I found that some SMD relays have signifikant coupling capacities between the unused relay contacts (in the range of some Picofarads). So stray coupling was a severe problem. Later I used some second-hand Teledyne RF relays that I had purchased via ebay two years ago (price originally 50€!) for 1€ each. These relays are absolutely superb!

The receiver

Before we go: In the circuit scheme above I missed out the antenna switch relay because I think every homebrewer knows what to do in this case. 😉 So the receiver’s signal path starts with a band filter for 7MHz consisting of to tuned LC circuits.  The coupling is relatively loose. As coils I use the well known coil formers in TOKO style with 5.5mm outside measure.

Coil data for the 7MHz band pass filter (BPF) is 39 turns primary and 9 turns secondary of 0.1 mm enameled wire. The respective capacitor is 33pF. This is a high L to C ratio which gives you excellent LC quality factor. This is mandatory especially when working on the 40 meter band, because of the strong broadcasters starting from 7.200 kHz intermodulation might be a problem when the receiver is connected to a high gain antenna and broadcasters’ signals might overload the first mixer (remember that NE612 has a relatively low IM3!). If you still should have problems coping with too strong out-of-band signals you can reduce the coupler from 4.7pF down to 2.7pF.

In practical terms I could not detect any unwanted signal products even when using an antenna with high rf output voltage. One reasons for this is, that there is no rf preamplifier for the receiver. This avoids overloading the first mixer generally.

The NE612 has two mixer inputs and two outputs. This makes it very suitable for this sort of radio. In receive mode pin 2 of the right NE612 is used as signal input. VFO signal is fed into pin 6. The resulting mixer products are taken out from pin 4. Next the 9MHz filter follows from right to left.

The 9MHz IF signal then is fed into an IF amplifier. This one is equipped with a dual gate MOSFET (BF998), gain is about 15dB when full AGC voltage is applied wich leads to about 6V by the 1:1 volatge divider in the applied to gate 2 of the MOSFET.

The left NE612 is the product detector. I use the internal oscillator with a 9MHz crsytal and a tuning capacitor here. This saves building an extra oscillator and simplifies the rig again.

One AF low pass filter made of 1k resistor, 100uF rf choke and a 0.1 uF capacitor eliminates high frequency remainders generated by the mixing process.

The audio stages are also made simple: One preamplifier (using bipolar transistor in grounded emmitter circuit) and a final stage with LM386 transform the signal to a level that is sufficient to be fed into a small 8 ohm loudspeaker or a set of standrd MP3-player headphones. Because the rig is very small and there was definetely no space for a loudspeaker I use headphones instead.

Keep an eye on the power supply switching of the two audio stages. The problem was to eliminate the switching click and pops to a minimum and to avoid acoustic feedback when unsing a loudspeaker. So the audio preamp is only connected to DC on receive. When switching to transmit the charged capacitors avoid instant cut off supplying some Milliseconds DC to the amp until significantly discharged. The main amplfier on the other hand is connected to permanent DC supply. So it won’t pop when switching from tx to rx an vice versa but can cause feedback. To avoid feedback a transistor is used to cut the speaker/earphone from the power amplifier.

AGC

AGC is audio derived. A two stage amplifier provides a DC voltage analog to the audio input sginal strength. First amplifier stage is a common emitter bipolar transistor supplying sufficient audio voltage. This voltage is rectified by a two diode circuit letting only the positive halfways pass. You can use silicon diodes (1N1418) oder Schottky diodes here. An electrolytic capacitor (100uF/6V) provides the time constant respectively DC decay once the signal has disappeared. Output of the DC stage is split. The collector is connected to 12V via a 4.7k resistors causing a voltage drop when the transitor’s conductivity increases. The emitter is fed to the ADC of the microcontroller (pin ADC1) causing a proportional voltage to the voltage of the applied audio signal so that on the OLED an S-meter can be displayed.

The transmitter

An electret microphone picks the operator’s voice. The signal output level of these microphones is high enough to drive the left NE612 (which serves as balanced modulator in this case) directly. Signal input for the mixer should be 200mV RMS according to data sheet. An electret produces about 0.5 to 1 V pp if spoken with a decent voice in the distance of some centimeters. So you have more than enough audio signal power for the modulator.

BTW: Carrier suppression of the modulator is excellent. I achieved 56dB without doing anything else!

The resulting DSB signal then is fed into the SSB filter, the SSB signal subsequently is directly sent into the right NE612. A band pass filter for 7 MHz eliminates the unwanted mixer products. You should have 400 to 500 mV pp of rf signal here when the transmitter input is fully driven. I recommend a two-tone test generator to check out the linearity of this and the remaining amplifier stages!

Next parts of the transmitter are a band pass filter (same coils and capacitors like th rx bandpass filter), a preamplifier and a driver. The later should put out about 150 mW into a 50 ohm load. They are made more linear by emitter degeneration (4.7 and 2.2 ohm resistors for predriver and driver) and negative feedback. This helps to ensure that transmitter performance is fine when IMD3 products are concerned even if the main IMD3 problems usually occur in the final stage.

To transfer the rf power into the final stage proper impedance matching is mandatory. Input impedance of the final stage is fairly low (<10ohms), therefore a broadband (down)transformer is used. Data is: Core T37-43, primary 12 turns, secondary 4 turns of 0.4 mm enamled wire.

Last stage is a single ended linear amplifier in AB mode equipped with a 2SC1969 rf power transistor by eleflow.com.

BIAS circuit: The combination of the 1k resistor, a silicon diode (1N4002 or equ.) and a capacitor sets up the correct bias. Bias is fed into the cold end of the input transformer. Quiescant current should be around 40mA. A good thermal contact between the diode and the transistor is recommended. As the transistor gets warmer the diode will increase its conductivity so reducing bias current. This will prevent thermal runaway effectively!

To avoid bulky output transformers the PI-filter (7MHz LPF) is part of the tank circuit of the final amplifier transistor. For this power level this is an acceptable and practical solution because the output impedance of the stage is nearly equivalent to 50 Ohms. A certain mismatch is not a severe problem. DC to the final transistor is applied via an rf choke, for exact data please refer to the schematic!

T2 helps to suppress unwanted signals that I encountered when taking the transmitter from the dummy load test environment to a real antenna. I observed unwanted parasetic oscillation in the range of about 1MHz. T2 has a low reactance for this frequency range thus eliminating the oscillations in a reilable way by short circuiting them towards ground.

Powered with 12.5V DC the transmitter will put out slightly more than 5 watts PEP.

DDS VFO

AD9835 is a simple but well performing 10-bit DDS chip made by Analog Devices (AD). It is controlled via 3 SPI lines transmitting the frequency data. Maximum output frequency is around 16MHz when the chip is clocked with its maximum clock rate of 50 MHz. Oscillator output voltage is some hundred millivolts peak-to-peak, so you can connect the output directly to pin 6 of the NE612 mixer.

Control signals come from an Arduino Pro Mini board. The microcontroller in this module is, if you are an Arduino user, preinstalled with a bootloader program. I overwrote this small portion of code and use the ATMega168, which is the core of the Arduino, in “native” mode. My software is written in C and transferred via “AVR dude” software using the ISP lines MOSI, MISO, SCK and RESET. These lines are not in the schematic, please refor to ATmega168 data sheet. Alternatively you can use, like shown in the schematic, an ATmega168 controller. So you have to de neccessary wiring on your own.

You will find the source code here. I packed it into an Open Document Text File because of problems I encountered when I tried to store the code into this Blogtext. If you need a compiled HEX-file, please feel free to email me!

Display is a very small OLED with 64 by 32 pixels. The OLED is, to my point of view, a little bit noisy. To suppress any rf traveling on VDD line I use an 82 ohm resistor and a set of bypass capacitors of 100uF and 0.1uF capacity closely connected  to the OLED VDD pin to GND.

A low pass filter by the output of the DDS ensures spectral purity and avoids clock oscillator feed through. Remember that if you need another output frequency other than 2 MHz you should redesign the low pass filter.

Frequency control

Tuning is done by a rotary encoder connected to PD5 and PD6 of the microcontroller. I use the pull up resistors internal to the microcontroller, so you won’t see any other things than the mere encoder.

Tunings steps are selected by pushing the encoder knob or another suitable push button. This button is connected to ADC0 in the ATMega168 via a 3.9k resistor. The resulting ADC voltage might be problem because of a certain variation in the values of the pull up resistors that form the second resistor of the voltage divider.  There is an outcommented section in the code that will show you the exact ADC value that has to be typed into the code so that key recognition works exactly.

The button once pushed will increase the tuning step by a certain amount of Hz. Steps are 10, 50, 100 (standard step), 250, 500, 1000 and 5000 Hz in and endlessly revolving chain.  The step will be reset to 100Hz (standard tuning step) by leaving the tuning knob idle for 2 seconds. That’s all with the controls. Very simple, but sufficient.

Practical aspects

The transceiver is constructed on a double sided veroboard with 6 by 8 centimeters area. Components are through hole and SMD where available. The Arduino is mounted to the front panel (another Veroboard carrying the controls etc.) as well as the OLED is. The veroboard is inserted into an aluminium frame connected to the front panel with 4 lateral M2 screws:

Mounting frame - The Micro42 - A really shirt pocket sized QRP SSB transceiver
Mounting frame – The Micro42 – A really shirt pocket sized QRP SSB transceiver

Design hints:

Wiring can be made by using the colored lines stripped from old parallel printer cables. These cables have a diameter of precisely 1mm an fit through the holes of the veroboard excactly.

If you connect any external components that are not on the same veroboard use standard 2.54 mm (0.1″) male and female board connectors! This will make it much easier to dismantle and reassemble the rig in case troubleshooting is neccessary.

Use M2 srews instaed of M3 when building very small rigs like this one!

The reverse side of the main arrangement:

Reverse side of mounting frame - The Micro42 - A really shirt pocket sized QRP SSB transceiverord-and-front-assembled-in-frame-reverse
Reverse side of mounting frame – The Micro42 – A really shirt pocket sized QRP SSB transceiver

Two brass made bends (from the local hardware store and each cut to a length of 8 centimeters) hold the PCB inside the mounting frame. A winding has been cut into the brass to fix the bends with screws in M2.

Final assembly

Together with 2 halves of a bent aluminium cabinet covered with “DC-fix” (a German manufacturer of self-adhesive PVC coating) the final rig looks like that:

The Micro42 - A really pocket sized SSB QRP transceiver for 7MHz
The Micro42 – A really pocket sized SSB QRP transceiver for 7MHz

So, that’s the end of the story so far. Now it’s time for going outdoor and test the rig in field use. 😉

73 and thanks for watching!

Peter (DK7IH)

A Micro Multibander – Step by step (Part III): The Receiver (Overview)

Work is in progress. The recent weeks I finished all the 6 modules that are going to be the receiver:

  • Band pass filter section
  • Relay switches for switching the BPFs
  • RF preamp, RX mixer and IF preamp
  • IF main amp
  • Product detector and AF amp section
  • AGC unit

Mounted together to an aluminium carrier board it looks like this:

Receiver board for Micro Multiband QRP SSB TRX (C) DK7IH 2018
Receiver board for Micro Multiband QRP SSB TRX (C) DK7IH 2018

On the picture the board is not equipped with the neccessary wiring yet to give the reader more sight on the single circuits. Next I will draw a schematic of each board to point out the used circuitry for those who want to build this or a similar receiver.

First test are promising so far, the receiver is sensitive, has a very low noise figure (due to dual gate MOSFETs in the preamp and the two main IF amp stages) and has shown no problems to cope with high out-of-band broadcaster signals on the 40 meter band which is due to the SBL-3 mixer I have used that has a good IM3 performance..

Thanks for watching an 73 de Peter (DK7IH)