Last edited · 10 revisions  

 


What they are:

There are two major issues:

Harmonics for the 80/40/20m bands that are over or barely within accepted levels (-43dbc).

(EDIT: in some countries, ~50dB is the accepted level. eg VK.)

Spurs, or unwanted signals that result from harmonics and other mix products that primarily impact bands over 20mhz. 

 

Likely causes:

Harmonics at the antenna jack are a result of the low pass filters not functioning up to design.  The cause is board layout not component failure or design error.  The board layout tends to have signals where they should not be and compromises the filters.

Spurs, this is more complex but again board layout is the contributor as it again allows signal from other part of the radio to get into the 45mhz amplifier and add signals not desired.  The result is a plethora new and unwanted signals at high levels.

 

Fixes in uBitx v5 Boards:

uBitx v5 Changes.

 

Other fIxes that seem to work:

Raj and others have experimented with and tested possible solutions.  The basic one that seems best is adding another 45mhz crystal filter and is a trivial add.

Harmonics:  Many solutions.  They are board level changes and external filters.  External filters are known to work and are a safe bet.  The board level fixes can be involved and also work well.

Initial outline more to come....

 

For the harmonic fixes there are several outboard low pass filters from external sources.

One harmonic solution....  Massively rework the board.

This mod has a few features.  It uses no new parts unless you break any of the existing ones.

On transmit a maximum of one relay is active compared to before where it was as many as three.

The filter relays are in the correct position before TX avoiding a lot of moving relays during CW operation.

 

 

Image of the offending area, everything is colors has to go!

 

Rewire this way.

 

New image for board bottom remove copper and bridge with wire.   REd is remove and Blue is wire.   It will require scraping the green epoxy coat to solder to the copper.

 

With that done flip the board over and remove everything marked in red.  We will replace those with wires later.

 

We will now exchange the positions of the 10 and 80M filters for layout and switching reasons.

Before adding in new wires we remove the components L11,12,13 and C230,231, 232, 233 Keep in order and set aside. this is the 10M filter.

Repeat the removal for L20, 21, 22 and C242, 243, 244, 245, 247 this is the 80m filter.

Install the parts for the 10M fitler where the 80M filer came out of.

Put the 80m filter parts where the 10M filter was.  Due to layout C243 and 44 have to be stacked like bricks on top the other and same for C245, 246 when installing them.

Now we add new wires to replace those removed and this is marked in blue.  Also Relays are installed from under the board.  The will align only one way. the wires should be insulated and 26 guage is adequate using short direct connections (minimal slack).  anchoring them to the board with superglue is ok.  The wire from K3 to K1 is a piece of RG316 or RG174 coaxial cable insure the braid is grounded at both ends.  This goes from K3 pin 14 to K1 Pin12 sand routed under the board from one end to the other.  Length is not critical.

Several more wires.  We also removed the switched DC feed to the relays so we put it back.   So for Kt1, Kt2 and Kt3 a wire from pin 8 must go to DC plus 12V on P1.  the easy way is a from kt3 to kt2 to kt1 then to DC 12V+ at P1.  The other wire is from K1 (way over near the power connector) to pin 8 of K3 to telling when its time to be in the TX position.

 

 

Last step is to change the code to select the correct relay.

Code repalcement in the ubitx Vx.x code,ino file.

 

Existing code to tbe replaced:

/**

 * Select the properly tx harmonic filters

 * The four harmonic filters use only three relays

 * the four LPFs cover 30-21 Mhz, 18 - 14 Mhz, 7-10 MHz and 3.5 to 5 Mhz

 * Briefly, it works like this, 

 * - When KT1 is OFF, the 'off' position routes the PA output through the 30 MHz LPF

 * - When KT1 is ON, it routes the PA output to KT2. Which is why you will see that

 *   the KT1 is on for the three other cases.

 * - When the KT1 is ON and KT2 is off, the off position of KT2 routes the PA output

 *   to 18 MHz LPF (That also works for 14 Mhz) 

 * - When KT1 is On, KT2 is On, it routes the PA output to KT3

 * - KT3, when switched on selects the 7-10 Mhz filter

 * - KT3 when switched off selects the 3.5-5 Mhz filter

 * See the circuit to understand this

 */

 

void setTXFilters(unsigned long freq){

  

  if (freq > 21000000L){  // the default filter is with 35 MHz cut-off

    digitalWrite(TX_LPF_A, 0);

    digitalWrite(TX_LPF_B, 0);

    digitalWrite(TX_LPF_C, 0);

  }

  else if (freq >= 14000000L){ //thrown the KT1 relay on, the 30 MHz LPF is bypassed and the 14-18 MHz LPF is allowd to go through

    digitalWrite(TX_LPF_A, 1);

    digitalWrite(TX_LPF_B, 0);

    digitalWrite(TX_LPF_C, 0);

  }

  else if (freq > 7000000L){

    digitalWrite(TX_LPF_A, 1);

    digitalWrite(TX_LPF_B, 1);

    digitalWrite(TX_LPF_C, 0);    

  }

  else {

    digitalWrite(TX_LPF_A, 1);

    digitalWrite(TX_LPF_B, 1);

    digitalWrite(TX_LPF_C, 1);    

  }

}

 

Replacemnt code.

 

/* The new code for revised layout selects one and only one relay for the band needed.

*

* KT1 selects the 80M filter

* KT2 selects the 20M filter

* KT3 selects the 40M filter

* if none are selected the inline 10M filter is already in place.

*/

 

void setTXFilters(unsigned long freq){

  

  if (freq > 21000000L){       // the default filter is with 35 MHz cut-off

    digitalWrite(TX_LPF_A, 0);

    digitalWrite(TX_LPF_B, 0);

    digitalWrite(TX_LPF_C, 0);

  }

  else if (freq >= 14000000L){ // the 14-18 MHz LPF is is in place

    digitalWrite(TX_LPF_A, 0);

    digitalWrite(TX_LPF_B, 1);

    digitalWrite(TX_LPF_C, 0);

  } 

  else if (freq > 7000000L){  // For the  7-10mzh filter

    digitalWrite(TX_LPF_A, 0);

    digitalWrite(TX_LPF_B, 0);

    digitalWrite(TX_LPF_C, 1);    

  }

  else {                      // for the 3.5 to 5mhz filter

    digitalWrite(TX_LPF_A, 1);

    digitalWrite(TX_LPF_B, 0);

    digitalWrite(TX_LPF_C, 0);    

  }

}