Revision of the “Cigarette Pack”- 14MHz SSB QRP Micro-Transceiver

DK7IH microsize QRP SSB  transceiver ("Micro24") for 14 MHz
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz – Fits into one hand
DK7IH microsize QRP SSB transceiver ("Micro24") for 14 MHz
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz

This article describes the “Cigarette Pack” SSB QRP transceiver” for 14MHz that I first had mentioned some months before. Recently, when taking it from the shelf, the transceiver dropped to the floor and was severely damaged. This lead to serious defects in the front panel area, the main frame, the cabinet and so on. The interior parts were, luckily, not affected by the crash. So, I had to revise the whole radio, make a new front panel and cabinet, ply the frame straightly (as far as possible) and so on. This is the full description of the rig now to complete the files here. The good news: The radio is fine again and fully operational!  And the even better news: I still have not started smoking!  smile1

During reconstruction the transceiver has been extended for about 5 mm so that overall length now is 100mm (3.9 inch). This was done because I intended to build in a loudspeaker. The other dimensions remain unchanged: Width is 52mm (2 inch.), height is 30mm (1.2inch). OK it is slightly longer now than a standard pack of cancer sticks, but who cares? Total cabinet volume is 150cm³.

Basic concept

The transceiver is based on the “Micro 23” rig, that I have described here. Some simplifications of that already simplified radio have been made. Here is the full schematic of this even smaller transceiver:

DK7IH microsize QRP SSB  transceiver ("Micro24") for 14 MHz - Schematic
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz – Schematic in full size

Very simple rigs like this one always use parts of the circuit for receive and transmit purpose. Here these parts are the 2 mixers (NE602), the SSB-filter  and the interfrequency amplifier.

Signal flow schematic

The NE602 has a balanced output. With mixer 1 only one of them is used. If higher gain is desired, a broadband (or even better a tuned LC circuit) transformer could be used to connect pin 4 and 5 (the mixer outputs) in push-pull mode. I did not do that to save the transformer.

The signal flow can be derived from the design:

DK7IH microsize QRP SSB transceiver ("Micro24") for 14 MHz - Signal flow on receive and transmit
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz – Signal flow on receive and transmit

Receive mode signal flow

From the antenna relay (not drawn) the rf energy runs through a 2 pole LC filter for 14 MHz. The coils are wound small TOKO coil formers, all respective data is given in the schematic. Coupling is loose via a 3.3pF cap.

NExt stage is an rf preamp for 14MHz with a broadband output. The acitve element here is a dual-gate MOSFET.

After having left this stage the 14MHz signal travels through another 470pF capacitor. This one has high resistance for audio frequency and low for rf frequencies due to the equation: XC =1/(2*PI*f*C). The signal is then fed, together with the audio signal from the microphone (when on transmit), into mixer 1 input on pin 1.  The 1k resistor prevents the rf energy from flowing into the microphone circuit. The two signals are separated from each other by simply exploiting reactance and resistance in a rather clever way 😉.

When receiving the Si5351A clock chip is programmed in a way that the VFO signal (23 MHz) is present on output CLK0.  It is fed into mixer 1 via a small cap to prevent overloading of the mixer. The Si5351A breakout board delivers about 3 Vpp. clock signal, so this must be reduced to about 200mVpp. A 5.6pF capacitor is OK here.

The resulting signal is sent to the SSB filter (a 9MXF24D) that is terminated with 1kOhm and 20pF in parallel. The wanted SSB signal is present at the output of the filter.

Next stage is the interfrequency amplifier, equipped with a dual-gate-MOSFET semiconductor. This one is connected to the AGC chain, on receive a variable voltage is applied to gate 2 (range 0 to 6 V), on transmit the AGC is fully powered to ensure maximum gain.

Next is mixer 2 which is the product detector when receiving. The signal (9MHz +/- sideband shift) is applied to pin 6. Due to the fact that this mixer also serves as transmit mixer, the two signals are taken from the two mixer outputs on pin 4 (serving as audio output) and pin 5 (serving as rf output for transmitting).

Two audio amplifiers (preamplifier and power stage) give a sufficient signal level for an 8 ohm loudspeaker or a headphone.

For the loudspeaker I tried out the tiny ones for smartphones with good success. Only the volume was a little bit low. Then I found another speaker in an old toy of my daughter that turned out to be very much OK for this transceiver. Its diameter is about 3 cm (1.2 inch) and just fits in the housing.

Transmit signal flow

The microphone in this radio is an electret one. The advantage is that these microphones have an internal preamplifier equipped with a field-effect-transistor. The output voltage is fairly high, about 1Vpp. when normally speaking into it. Therefore an audio preamp is obsolete. The microphone signal is directly fed into pin 1 of the first mixer. On transmit the Si5351 signal generator is switched that the 9MHz (+/- sideband shift) signal is fed into pin 6. The SSB filter eliminates the unwanted sideband, the interfrequency amplifier lifts the SSB signal to an appropriate level. The TX mixer is fed with the 23MHz signal resulting in a 14 and 37 MHz signal. The TX band pass filter cleans the signal from the unwanted 37MHz component resulting from the mixer process.

RF power amplifier

The power amplifier is a 3 stage circuit. Stage 1 (preamplifier) brings the signal to about 10 mW. This is coupled into the driver stage via a cap of 0.1uF without any further impedance matching.

The subsequent driver stage shifts the signal level to about 200mW. Linear amplification is ensured her (as well as in the previous stage) by negative feedback in the collector circuit and emitter degeneration with a non-bypassed resistor to GND. An output transformer (winding rate 4:1, impedance rate thus 16:1) lowers the impedance of some 100 ohms to a few 10 ohms present on the input of the final amplifier stage.

The final amplifier brings up a signal level of 3 to 4 Watts PEP. This stage is in AB mode, the appropriate bias is achieved by the 1k resistor going to +12V TX and the current to GND via the silicon diode. This diode must be thermally connectod to the final transistor to stabilize the bias.When the transistor heats up, the silicon diode increases the current through it thus decreasing bias to the transistor.

The 68 ohm resistors serves 2 purposes: First it prevents the input signal from being shorted by the bypass caps in the bias circuit and it stabilizes the rf behavior  of the stage by limiting the gain because certain amounts of the input power are led to GND. This prevents self-oscillation.

DC ad the collector is fed through a radio frequency choke to hinder rf from flowing into the DC line. Radio frequency is directly fed into the low-pass-filter. The output impedance of this stage is roughly 50 Ohms, so the filter can be a 50 ohm circuit with a cutoff frequency slightly above 14MHz.

The VFO section

The Si5351A clock chip used here has three frequency outputs that can be set individually. Only CLK0 and CLK1 are used in this radio. The Si5351A chip is programmed by software in the following manner:

  • Receive: CLK0 is the VFO, CLK1 is the BFO.
  • Transmit: CLK0 is the BFO, CLK1 is the VFO.

The microcontroller reads the tx/rx status and switches the frequencies respectively.

Construction

The radio is a full SMD design on a 0.1″ pitch double sided Veroboard:

DK7IH microsize QRP SSB  transceiver ("Micro24") for 14 MHz - Inside
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz – Inside

The control panel on the left with tuning knob and volume set. The 64×32 pixel OLED between these controls. Following the microcontroller behind the fron panel (here covered). The controller is an ATmega168 on an Arduino Pro mini board.

The isolated board left of the SSB is the AGC section. The receiver and transmitter shared parts follow, the TX band pass filter is in the foreground. The power transmitter is on the right behind the shield. The shield is necessary to avoid unwanted oscillations when rf is coming back from the power transmitter to the band pass filter prior to the tx section.

On the right there is the SMA socket for connecting the antenna plus a 3 pin header for connecting a headphone. When there is no headphone in use a jumper connects the internal speaker to the speaker line. VDD is applied via a standard DC connector.

The underside of the board has only some SMD components and the wiring on it:

DK7IH microsize QRP SSB transceiver ("Micro24") for 14 MHz - Underside
DK7IH microsize QRP SSB transceiver (“Micro24”) for 14 MHz – Underside

“On the air”

My longest distance achieved with this transceiver (after rebuilding it) has been R2DLS near Moscow who gave me a “59”-report. smile1 The antenna in use is, as always, a Deltaloop.

73 and thanks for reading this article!

Peter (DK7IH)

 

 

Advertisements

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

Hint: This article is only a preview to this miniature sideband transceiver. The full description can be found here:

https://radiotransmitter.wordpress.com/2019/04/22/revision-of-the-cigarette-pack-transceiver/


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

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)

A Micro Multibander – Step by step (Part II): VFO and Front Panel

In the last entry about my new project, a micro multibander for QRP SSB HF use, I referred on the circuits of the Si5351 VFO, the microcontroller, OLED module an the other digital circuits controlling the transceiver.

This is the practical side, now: All the digital circuits are placed behind the front panel. This is for practical (to save space in the main cabinet) and electronic reasons. By keeping the digital leads as short as possible you make it is easier avoiding hum, noise and other unwanted radio signals penetrating into your analog circuits, mainly the reciever.

This is how the front section looks from the user side:

Front panel of a SSB QRP micro multiband transceiver for SSB (C) 2018 DK7IH)
Front panel of a SSB QRP micro multiband transceiver for SSB (C) 2018 DK7IH)

The 3 potentiometers on the left (still awaiting suitable knobs) are for audio volume, receiver gain and mic gain. A switch will allow to switch the AGC from fast to slow. The S-meter has been taken from an old CB mini radio. All does not fit that much, some mechanical work still has to be done. 😉

Front panel of a SSB QRP micro multiband transceiver for SSB (C) 2018 DK7IH)
Front panel of a SSB QRP micro multiband transceiver for SSB (C) 2018 DK7IH)

This is the module taken from the side. All electronic stuff is mounted onto a 8cm x 6cm double sided veroboard. I use M2 spacers of various lengths to keep the “subboards” in place, like the Si5351 breakout, that you can see in the middle of the picture. These spacers are available from Chinese vendors on ebay and help a lot to build very compact electronic stuff. All joints and bolts are kept in M2, too.

The module is finished with a 1.5mm aluminium board where the plugs for the connectors are fed through. These connectors will be equipped with home-made plugs (1″ technology) and then connected to the respective parts of the analog circuits like receiver or transmitter.

qrp-ssb-multiband-micro-dk7ih-frontpanel-side2
Front panel of a SSB QRP micro multiband transceiver for SSB (C) 2018 DK7IH)

Here is another view of the lateral arrangement: The old-style S-meter stripped from an old HANDIC-brand CB radio was purchased on ebay for a few Euros. There ist still a lot of old CB stuff there, giving enthusiast homebrewers a large stock in interesting electronic and radio-related material.

(To be continued)

A Micro Multibander – Step by step (Part I)

This project tries a new personal approach in designing a very small (i. e. a micro) QRP radio. And also new is the way I want to report about it. The blog entries will be published more or less simultanously to the building progress of the respective modules.

1 A brief project description

The main objective is to set up a SSB QRP transceiver for 6 HF bands (similar to my 5-bander introduced in 2015) now starting with 160m, then 80m, 40m, 20m, 15m and 10m at last.

Another idea I have in mind is to build the rig from separate modules for each single stage so that each main circuit (mainly receiver and transmitter section) is constructed with the needed stages on verobaords that are mechanically identical.

The idea behind that is that a board which does not show top performance in function (or even completely fails) can be changed quickly and an improved version can be installed easily without the need to throw the whole receiver (for example) into the junk box labelled with “failed projects”.

Band switching will be done by small relays again (I purchased 60 SMD relays for 40€ some months ago). The band filter section will be shared by tx and rx section this time. This saves space and reduces effort.

The transmitter will be a 4 stage unit again (more or less the same like in my 5 bander). Output power projected is 5 to 10 watts on all the bands.

The receiver is designed once again as a single conversion superhet because experiments with double conversion were not successful due to a large number of spurs audible in the receiver.

The first mixer is set to be an SBL-3 diode ring mixer. This will give the receiver a very good handling of strong signals, I hope. IF amplifier will be a two staged one with dual gate mosfets controlled by an audio derived AGV voltage. The rest? The usual suspects, I would say. Wait and see!

1.1 The VFO module

I have become quite familiar with SiLab’s Si5351 oscillator module the recent months. I first used it in my “Micro 20-3” trx which was a success. The module is very small, completely ready for use (I’m still using a breakout board made by Adafruit) and able to handle 5V. It provides 3 oscillators that can be programmed independently to put out something lieke a square wave ranging from 8kHz to 160MHz. I have developed a software that avoids any tuning noise, so, this oscillator (which is a clock oscillator by intention) can be used as a VFO for an amateur project.

To keep the effort simple, I reused the 1306 oled module that you can see in lots of my previous projects. Both boards (Si5351 and 1306 oled) are controlled by I²C-bus which allowes me to use a relatively simple micro controller. In this case again I have the Arduino Pro Mini containing an ATMega168 controller (16 MHz) on board. If it should turn out that I might need more memory, the same board here is on stock carrying an ATmega328 controller. Let’s see how this will work out.

This is the circuit of the complete VFO module:

Si5351 VFO for Micro Multiband QRP SSB TRX (C) DK7IH 2018
Si5351 VFO for Micro Multiband QRP SSB TRX (C) DK7IH 2018

The module will be placed behind the front panel.

Tuning will be done by a Bourns optical encoder that turns very smoothely. I purchased some for under 5 Euros each from pollin.de. An unbeatable price! Unfortunatley they have been quickly sold out.

The core of this module is the Arduino Pro Mini microcontroller centered on the diagram. It is connected to the Si5351 breakout board and the 1306 oled display by I²C bus.

Si5351: Output 0 is used as VFO terminal and output 1 carries the LO signal with 9Mhz. To avoid digital noise spreading on the +5V line a 100µF capacitor should be switched close to the VDD terminal. Proper and short grounding also is recommended to avoid spurs.

OLED1306: Also a 100µF electrolytic capacitor has been added including a 10µH rf choke forming a low pass filter together. I found that these oleds a very prone to distribute digital noise via VVD line, so this measure contributes much to keep your receiver clean from any unwanted signal spektrum generated by the oled.

Keep in mind to tie SCK and SDA lines to +5V via two resistors of 4.7kOhms each!

Band switching: It is software controlled. To save output ports I did not connect the 6 relay drivers for the 6 bands directly to the ports of the microcontroller. I’m using an open collector BCD to DEC driver (74LS145) instead. Ports PB0, PB1 and PB2 are forming a 3-bit pattern that is switched to 6 output lines (output 0 to output 5) of the BCD2DEC driver IC. 74LS145 is capable of handling switch voltages up to 15V thus working with 12V coil relays is easy.

User control interface: This rig has 4 different switches that will be explained later from the functional point of view. The operator can set nearly all functions of the transceiver by using these push buttons and the main tuning wheel. The buttons  switch to GND by 4 different resistors and are read by PC0 port of the micro. PC0 equivalents to  channel 0 of the integrated analog-to-digital converter (ADC) inside the ATMega168. This also saves controller ports to a large extent (using 3 instead of 6 ports!). So, all in all, I think I can dare controlling a multibander by a relatively small microcontroller.

(To be continued!)

The „Micro20 III“ – A Simplified Pocket Size SSB Transceiver for 14 MHz

by Peter Rachow (DK7IH)

After having built my first shirt-pocket transceiver about a year ago I occasionally thought of how this or a more or less modified design could be made simpler to save components and therefore limit space as well as reducing the complexity of the whole rig. This was due to the fact that I thought that the ancestor (see link above!) of this project was somehow „overkill“ because I used plenty of stages redundantly that could have been used for receive and transmit operation.

Before we go into the details of this new project, let’s have a look on the new micro transceiver (here operating portable as EA8/DK7IH/QRP from the island of Fuerteventura):

The “Micro20 III (by Peter Rachow, DK7IH)

Cabinet size is about 10 by 4 by 5.5 centimeters which equals to a volume of 220 cubic centimeters (cm³).

Making it more simple without detereorating the performance?

Under the aspect of simplifying the circuit I remembered that I had searched for simple designs of transceiver circuits some years ago intensely. After having revisited some of them on the Internet my attention was caught by the „Antek“-Transceiver that has been published by SP5AHT a while ago. This was an ideal basis for my purpose because I intended to build a „2 mixers+1 filter“ circuit in order to make at least 2 of the 4 mixers that are necessary for a fully functionally SSB transceiver redundant. The central part of SP5AHT’s design matched my requirements in an ideal way:

“ANTEK” Transceiver by SP5AHT

SP5AHT’s circuit uses one mixer (US2 in the schematic) to serve as the receive mixer during rx periods and for the balanced modulator when on transmit. Then the resulting signal is fed through the filter and subsequently processed by mixer 2 (US3). This mixer works as the product detector on receive mode and as transmit mixer when you are on the air. The two oscillators (VFO and LO) are fed to the respective mixer depending on the current operation. This is done by a simple relay connected to the PTT. So when changing from receive to transmit the two oscillators are swapped thus changing the complete function of the circuit.

To get rid of the relay and because I wanted to use the Si5351A clock oscillator chip, my idea was making two of the 3 oscillators present in the clock chip act as LO and VFO. By software, when switching from rx to tx, these oscillators’ frequencies are simply swapped. The microcontroller driving the Si5351A reads the PTT and when pressed to talk the frequencies present on CLK0 and CLK1 are put out reversely. Thus no hardware switching is required.

In addition the audio amps in the end of the receiver chain are powered off. Instead of this the rf power amp of the transmitter section is connected to +12V DC as well as the microphone amp. The antenna relay disconnects the receiver front end from the antenna line and connects the antenna to the LPF that is installed after the rf power transformer of the rf power amp final stage.

By this the whole transceiver is constructed much simpler and lots of circuitry has been removed from the rig.

The block diagram

Micro20-III SSB QRP transceiver by DK7IH – Block diagram

Circuit explanation: During receive periods the signal is fed into the antenna jack whose line is switched by the antenna relay and fed to the first band pass filter for 14MHz when listening to the band. Afterwards it is amplified by a dual-gate MOSFET transistor that is connected to the AGC line that reduces gain when strong signals are detected. The next stage is mixer 1 where a VFO signal of about 24 MHz comes from CLK0 of the Si5351A module.

The result of this mixing process is the IF of about 9 or 10.7 MHz or whatever frequency you are about to use depending on the filter you have installed. This signal is amplified by another dual-gate MOSFET. On receive mode this stage is also under AGC control. When transmitting it is powered to full gain of about 18dB applying +12V via a 2:1 voltage divider consisting of 2 resistors with 82k each.

Next step is mixer 2 where the IF signal is mixed with a 9 resp. 10.7 MHz LO signal (receive mode serving a product detector) or with the VFO signal in mixer 2 serving as tx mixer.

On receive two audio stages (a preamp with LPF in advance and a power amp) amplify the audio signal to a level that can be fed into an 8 Ohm loudspeaker.

On transmit a BPF eliminates the unwanted mixing products and a three stage rf power amplifier lifts the signal to a power level of 3 watts peak power.

The Main RF Section

This central section of the rig consists of the two mixers mentioned before, a commercially made (in my case) 10.695 MHz filter stripped from an old CB radio, some amplifier stages and so on. The circuit is the following one:

The “Micro20-III” SSB QRP transceiver by DK7IH – Main RF board

Starting from left side top there is the first receiver amplifier stage using a dual-gate MOSFET. The use of a MOSFET transistor ensures that the noise figure and sensitivity of the whole receive improve very much. The stage is comnnected to the AGC chain. The dc voltage applied by the AGC section varies in the range from 0 to 6 V DC. In addition it can be set by hand by turning a front panel mounted potentiometer that alters the DC voltage in the range from 0 volts to max. volts from the ADC section.

The input is a single tuned circuit using 4 (antenna side) by 16 turns (MOSFET gate side) on a TOKO 5,5 mm coil former. Parallel capacity is 47 pF. In drain line of the transistor the same filter is used coupling the signal to the first mixer (NE612). Note that the second filter is reversed (secondary in drain line) to avoid self-oscillation of the preamp stage.

This mixer’s signal is fed with 2 different input signals (antenna or microphone) and with 2 different oscillator frequencies: about 24 MHz on receive mode or 10.695 +/- 1.5 kHz depending on sideband used when on transmit. The resulting interfrequency signal is fed into an SSB filter which is terminated by 2 resistors of 1k each side to ensure proper impedance matching.

Next stage is the interfrequency amplifier which is the same circuit like the receiver’s preamplifier. This one is also connected to the AGC’s DC line. On transmit mode with no AF signal on the AGC present this stage runs on full gain.

The chain is completed by the second mixer serving as product detector on receive and as tx mixer when going “on the air”.

The audio and AGC section

The “Micro20-III” – A small 20 meter QRP SSB transceiver by DK7IH – Audio amp and AGC

This section also is no “rocket science”. A simple preamplifier using a bipolar transistor (BC846) in common emitter mode, a low pass filter (R=1k and C=0.22uF) and an LM 386 amplify the resulting af sig to an adequate volume to listen to the sound even in an environment that is not 100% noise free.

The RF power module

This is a circuit I have built several times and it’s capable of delivering up to 5 watts of rf power. In this transmitter I’m not driving it beyond 3 watts which is suffice to establish connections on the 20 meter band worldwide a well performing antenna provided.

The “Micro20-III” – A small 20 meter QRP SSB transceiver by DK7IH – RF Power Amp

Emitter degeneration and negative feedback are present in preamp and driver stage to ensure maximum linearity. Both stages are operated in class A mode. The final stage works as a push-pull stage using class AB. Push-pull mode eliminates even order harmonics by circuit feature. A heatsink is mandatory for the final stage (the mounting frame in my case) and at least recommended for the driver. The values for the broadband transformers are stated in the schematic above.

The VFO module

This one is equipped with the clock oscillator chip Si5351A by Silicon Labs. I use it mounted to the well known Adafruit breakout board that can handle 5 volts even if the chip is designed for 3.3V. So, this board is compatible to standard microcontrollers like the ATmega168 that is applied in my transceiver. The display is the 1306 chipset based OLED that is also designed for 5 volts supply voltage. Both, the Si5351 and the OLED are designed for I²C-interface which is called “Two Wire Interface” (TWI) in Atmel’s language. The major advantage this interface has got is that only 2 control lines are required, one of them clock (SCL) and the other data line (SDA) to transfer data to the respective units. Basically you need two pull up resistors to tie these lines to +5VDD but I use the internal pull-up resistors in the Atmega168’s ports that do the job well.

The “Micro20-III” – A small 20 meter QRP SSB transceiver by DK7IH – VFO with Si5351, ATmega168 and OLED 1306

Problem to be mentioned: When testing the early version of the receiver I found the OLED to be very noisy. After a brief research I realized that the signals that were audible in the receiver traveled on the VDD line. Thus I inserted an 82R series resistor and a set of blocking capacitors in the place which made the noise fully disappear.

Practical setup

The main board of the transceiver is made of a 5 by 7 cm breadboard with double-sided soldering pads each connected by a small tubing electrically connecting the both sides of the pad . This is a big advantage when you solder SMD components because you can setup the circuit on both sides of the board and save a lot of space. NExt is that it is nearly impossible to dissolder the pads even if you are resoldering the spots many times. The reason: The soldering pads are rivets anchored on both sides of the carrier of the board.

The components that aren’t available in SMT are standard through-hole but there are only a few like the SSB filter or some old 40673s I used instead of e. g. BF991. Coils for low power are wound on TOKO 5.5 mm coil formers. Power rf transformers are connected to soldering nails in the board. The inside view plus a centimeter scale:

The “Micro20-III” – A small 20 meter QRP SSB transceiver by DK7IH – Inside view from top

On the left you can see the front panel with the controls, behind the panel the OLED and then the main rf board. The Si5351 is mounted vertically on top left from the AGC board. Underneath there is the receiver’s front end (hidden by the red power supply cable). On the right I sited the power transmitter, at the bottom there is the relay for tx/rx switching. All is built into a 9 * 5.5 * 4 cm Aluminum frame.

Being “on air” with the rig

Operating is really fun with this micro transceiver. Since the finishing of the transceiver 4 weeks ago I was on air daily. Here are some regions of the world I could establish successful contacts with. Antenna is a Delta Loop fed in on upper corner about 12 meters above ground.

Plans for the future

Several options may be my next project: First I got plans are to expand this rig to a multibander (due to Si5351’s capabilites of generating max. 160MHz signals), build a PA of about 30 watts max. power (with 2 transistors 2SC1969 in push-pull mode) or to rebuild the transceiver for 17 meter band and hoping that conditions will be better the next couple of years. Let’s see what the real deal will be! 😉

73 de Peter (DK7IH)

 

A simple software to control the Si5351A clock generator chip

A fellow radio amateur who visited my website gave me a hint for a very cheap module that is capable of generating rf sginals up to 200 MHz. It is the well-known Si5351A clock generator chip made by Silicon Labs (datasheet).It is available by ADAFRUIT mounted to a breakout board using 0.1″ conventional spacing. The chip itself is very small, so by using the ADAFRUIT stuff you don’t have to bother soldering SMDs to a PCB. (Link to ADAFRUIT). The chip is designed for 3.3V supply, on the Adafruit board you can find circuits to make this chip usable for 5V supply and 5V control lines. So it is compatible to standard 5V digital equipment.

adafruit_products_2045iso_orig

(Picture courtesy ADAFRUIT)

In contrast to the DDS chips I have been using before this one produces square waves. But especially for mixer purposes in a radio this can be an advantage because mixers generally are well controlled by square waves. And due to the mandatory post-mixer filtering circuitry harmonics are easily suppressed.

The Si5351 generator is intended to replace clock sources of all kinds, build PLL generators etc. It is fully programmable via I2C bus, in ATMega language called “TWI” (two wire interface).

My software does not use the Arduino code or other libraries, all TWI functions are written into the file to make understanding more easy without the neccessity to watch different files.

Basic guidelines for programming

Programming the Si5351 is a little bit more complicated than to set the frequency of the AD9xxxx DDS chips by Analog Devices that are well mentioned on my website. The programming of the PLL(s) and the synthesizer(s) is described in AN619 of SiLabs (Link). There are 2 steps to get the desired frequency out of the module.

Step 1: Set the PLL to a basic frequency (in my code to f=900 MHz)

Step 2: Divide this frequency using a “MultiSynth” divider to the desired output frequency using a set of equations given in AN619 and send this to one of the outputs (CLK0 to CLK2 with the Si5351A).

For handling step 1 you can see the function void si5351_start(void) in the code. Step 2 is done by the function void si5351_set_freq(int synth, unsigned long freq). Both functions look similar due to the fact that basic arithmetics do not differ very much. They got in common that you first have to calculate a set of integer values and subsequently write them into a larger number of registers of the Si5351. To understand this more easily I have written the register numbers into the code. It is highly recommended to watch the register table in AN619 to see the corresponding memory locations.

The software is very simple. You can generate one frequency that will be transferred to CLK0 output on the PCB. Watch the code:

/*****************************************************************/
/*             RF generator with Si5153 and ATMega8              */
/*  ************************************************************ */
/*  Mikrocontroller:  ATMEL AVR ATmega8, 8 MHz                   */
/*                                                               */
/*  Compiler:         GCC (GNU AVR C-Compiler)                   */
/*  Author:           Peter Rachow (DK7IH)                       */
/*  Last Change:      2017-FEB-23                                */
/*****************************************************************/
//Important:
//This is an absolute minimum software to generate a 10MHz signal with
//an ATMega8 and the SI5351 chip. Only one CLK0 and CLK1 are used 
//to supply rf to RX and TX module seperately. 

//I have tested this software with my RIGOL 100Mhz scope. Up to this
//frequency the Si5331 produced output.

//The software is more for educational purposes but can be modfied 
//to get more stuff out of the chip.
//
//73 de Peter (DK7IH)

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

/////////////////////
//Defines for Si5351
/////////////////////
#define SI5351_ADDRESS 0xC0 // 0b11000000 for my module. Others may vary! The 0x60 did NOT work with my module!

//Set of Si5351A register addresses
#define CLK_ENABLE_CONTROL       3
#define PLLX_SRC				15
#define CLK0_CONTROL            16 
#define CLK1_CONTROL            17
#define CLK2_CONTROL            18
#define SYNTH_PLL_A             26
#define SYNTH_PLL_B             34
#define SYNTH_MS_0              42
#define SYNTH_MS_1              50
#define SYNTH_MS_2              58
#define PLL_RESET              177
#define XTAL_LOAD_CAP          183

//The unavoidable functional stuff
int main(void);
void wait_ms(int);

//  TWI Declarations
void twi_init(void);
void twi_start(void);
void twi_stop(void);
void twi_write(uint8_t u8data);
uint8_t twi_get_status(void);

//  SI5351 Declarations
void si5351_write(int, int);
void si5351_start(void);
void si5351_set_freq(int, unsigned long);

/////////////////////
//
//   TWI-Functions
//
/////////////////////
void twi_init(void)
{
    //set SCL to 400kHz
    TWSR = 0x00;
    TWBR = 0x0C;
	
    //enable TWI
    TWCR = (1<<TWEN);
}

//Send start signal
void twi_start(void)
{
    TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
    while ((TWCR & (1<<TWINT)) == 0);
}

//send stop signal
void twi_stop(void)
{
    TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
}

void twi_write(uint8_t u8data)
{
	TWDR = u8data;
    TWCR = (1<<TWINT)|(1<<TWEN);
    while ((TWCR & (1<<TWINT)) == 0);
}

////////////////////////////////
//
// Si5351A commands
//
///////////////////////////////
void si5351_write(int reg_addr, int reg_value)
{
   twi_start();
   twi_write(SI5351_ADDRESS);
   twi_write(reg_addr);
   twi_write(reg_value);
   twi_stop();
} 

// Set PLLs (VCOs) to internal clock rate of 900 MHz 
// Equation fVCO = fXTAL * (a+b/c) (=> AN619 p. 3 
void si5351_start(void) 
{ 
  unsigned long a, b, c; 
  unsigned long p1, p2, p3; 
   
  // Init clock chip 
  si5351_write(XTAL_LOAD_CAP, 0xD2);      // Set crystal load capacitor to 10pF (default),  
                                          // for bits 5:0 see also AN619 p. 60 
  si5351_write(CLK_ENABLE_CONTROL, 0x00); // Enable all outputs 
  si5351_write(CLK0_CONTROL, 0x0F);       // Set PLLA to CLK0, 8 mA output 
  si5351_write(CLK1_CONTROL, 0x2F);       // Set PLLB to CLK1, 8 mA output 
  si5351_write(CLK2_CONTROL, 0x2F);       // Set PLLB to CLK2, 8 mA output 
  si5351_write(PLL_RESET, 0xA0);          // Reset PLLA and PLLB 
 
  // Set VCOs of PLLA and PLLB to 900 MHz 
  a = 36;           // Division factor 900/25 MHz 
  b = 0;            // Numerator, sets b/c=0 
  c = 1048575;      //Max. resolution, but irrelevant in this case (b=0) 
 
  //Formula for splitting up the numbers to register data, see AN619 
  p1 = 128 * a + (unsigned long) (128 * b / c) - 512; 
  p2 = 128 * b - c * (unsigned long) (128 * b / c); 
  p3  = c; 
 
  //Write data to registers PLLA and PLLB so that both VCOs are set to 900MHz intermal freq 
  si5351_write(SYNTH_PLL_A, 0xFF); 
  si5351_write(SYNTH_PLL_A + 1, 0xFF); 
  si5351_write(SYNTH_PLL_A + 2, (p1 & 0x00030000) >> 16); 
  si5351_write(SYNTH_PLL_A + 3, (p1 & 0x0000FF00) >> 8); 
  si5351_write(SYNTH_PLL_A + 4, (p1 & 0x000000FF)); 
  si5351_write(SYNTH_PLL_A + 5, 0xF0 | ((p2 & 0x000F0000) >> 16)); 
  si5351_write(SYNTH_PLL_A + 6, (p2 & 0x0000FF00) >> 8); 
  si5351_write(SYNTH_PLL_A + 7, (p2 & 0x000000FF)); 
 
  si5351_write(SYNTH_PLL_B, 0xFF); 
  si5351_write(SYNTH_PLL_B + 1, 0xFF); 
  si5351_write(SYNTH_PLL_B + 2, (p1 & 0x00030000) >> 16); 
  si5351_write(SYNTH_PLL_B + 3, (p1 & 0x0000FF00) >> 8); 
  si5351_write(SYNTH_PLL_B + 4, (p1 & 0x000000FF)); 
  si5351_write(SYNTH_PLL_B + 5, 0xF0 | ((p2 & 0x000F0000) >> 16)); 
  si5351_write(SYNTH_PLL_B + 6, (p2 & 0x0000FF00) >> 8); 
  si5351_write(SYNTH_PLL_B + 7, (p2 & 0x000000FF)); 
 
} 
 
void si5351_set_freq(int synth, unsigned long freq) 
{ 
   
  unsigned long  a, b, c = 1048575; 
  unsigned long f_xtal = 25000000; 
  double fdiv = (double) (f_xtal * 36) / freq; //division factor fvco/freq (will be integer part of a+b/c) 
  double rm; //remainder 
  unsigned long p1, p2, p3; 
   
  a = (unsigned long) fdiv; 
  rm = fdiv - a;  //(equiv. b/c) 
  b = rm * c; 
  p1  = 128 * a + (unsigned long) (128 * b / c) - 512; 
  p2 = 128 * b - c * (unsigned long) (128 * b / c); 
  p3 = c; 
   
  //Write data to multisynth registers of synth n 
  si5351_write(synth, 0xFF);      //1048757 MSB 
  si5351_write(synth + 1, 0xFF);  //1048757 LSB 
  si5351_write(synth + 2, (p1 & 0x00030000) >> 16); 
  si5351_write(synth + 3, (p1 & 0x0000FF00) >> 8); 
  si5351_write(synth + 4, (p1 & 0x000000FF)); 
  si5351_write(synth + 5, 0xF0 | ((p2 & 0x000F0000) >> 16)); 
  si5351_write(synth + 6, (p2 & 0x0000FF00) >> 8); 
  si5351_write(synth + 7, (p2 & 0x000000FF)); 
} 
/////////////////////////////////////////////
//              M  I  S  C  
/////////////////////////////////////////////
//Substitute defective _delay_ms() function in delay.h
void wait_ms(int ms)
{
    int t1, t2;
    int dtime = (int) 137 * 8;

    for(t1 = 0; t1 < ms; t1++)
    {
        for(t2 = 0; t2 < dtime; t2++)
        {
            asm volatile ("nop" ::);
        }
    }        
}

int main(void)
{
	unsigned long t1, freq = 10000000;
	PORTC = 0x30;//I²C-Bus lines: PC4=SDA, PC5=SCL 
				
	twi_init();
	wait_ms(100);
	si5351_start();
	wait_ms(100);
	
	si5351_set_freq(SYNTH_MS_0, freq);
    wait_ms(5000);
    
    for(;;)
    {
		//Increase frequency in steps of 1kHz 
	    for(t1 = 10000000; t1 < 10090000; t1+=1000)
	    {
			si5351_set_freq(SYNTH_MS_0, t1);
			wait_ms(1000);
		}	
	}	
    return 0;
}

I found lots of code for the Si5351 on the web, most of it much too long for my ideas. I reused some of the better parts and added some corrections and modification to fit my needs.

Some authors join the two functions (PLL definition and multisynth definitions) in the set_freq() function. I tried to avoid this because the code will be faster if you only set the PLLs once and afterwards just modify the frequency. Another idea that should be avoided is to switch off the PLLs during reprogramming the frequency. Unpleasant short-term absence of receiving signal is an outcome of the switch-off strategy. I leave the Pll running the whole time.

Thanks again for watching my amateur radio blog!

73 de Peter