Date   
Re: Harmonics

Hans Summers
 


Hi Richard

> I have been waiting for over a month now for an order 
> from QRP labs.  All shipments come from Turkey.  
> Great products but shipping time is not so good.

I saw your email and I answered it just now. It does look like that order might be lost in the post. A month is much slower than usual. So I will send you a replacement on Monday when the post office is next open. 

General note re. QRP Labs shipments. The earlier backlog due to the high popularity of the QCX CW transceiver kit http://qrp-labs.com/qcx was cleared. We are currently awaiting stock of 200 more QCX aluminium enclosures http://qrp-labs.com/qcxcase from the manufacturer in Germany. But all other orders (not containing the QCX aluminium enclosure) are being shipped out within 1 business day of order placement. We are using post office airmail shipment, registered, with tracking. Generally we are finding it reliable and in some cases, faster than the former shipments from Japan. 

73 Hans G0UPL

Re: Nextion Error #ubitx #ubitx-help PD5DJ #ubitx #ubitx-help

Björn Pasteuning
 

Hi all, I see there are some troubles getting my HMI files working.

Please checkout these files: https://www.dropbox.com/sh/s189dw3pqazcuct/AADW-3ANYggK5JjPWafA0Bu_a?dl=0

--
73' Björn de PD5DJ
www.pd5dj.nl

Re: Nextion Error #ubitx #ubitx-help PD5DJ #ubitx #ubitx-help

Björn Pasteuning
 

va0.val++

if(va0.val==100)

{

  j0.val=va0.val

  page px

}else

{

  j0.val=va0.val

}

It means, Increment variable va0.val

And if the variable has reached 100 then copy the value of va0.val to j0.val and call page px, other wise only copy the value va0.val to j0.val


--
73' Björn de PD5DJ
www.pd5dj.nl

Re: Spurs - BPF fix? #ubitx

Bill Cromwell <wrcromwell@...>
 

Hi Jerry,

You had me worried. Nobody gets any bragging rights for confusing me. It is too easy to do. The International Olympic Committee once considered adding a game to the winter olympics - "confuse Bill". They had to drop the idea when they discovered there isn't enough gold on the planet for all the medals <sly grin>.

I am proceeding with external low pass filters for operation on 80 through 17 meters. I'm thinking of building 5 of them - one each tailored to a single band - inside a metal tube with appropriate bnc connectors on each end. That would be a no compromise solution until the real fix is in for the radios. The filters could also then be used on other radios as needed. Just not selectable by the Arduino.

Maybe then bandpass filters could use similar construction to tame those higher bands.

Now to order some more magnet wire and cores.

73,

Bill KU8H

On 08/10/2018 07:46 PM, Jerry Gaffke via Groups.Io wrote:
My mistake.
I should have said 15m and 12m
17m is fine with regard to that spur

On Fri, Aug 10, 2018 at 04:14 PM, Bill Cromwell wrote:

The list is having trouble voting? Some of the well equipped techs
have given 17 meters a pass. Now you say it is bad. Which is it?

--
bark less - wag more

Re: Compliance Summary - other radios

Bill Cromwell <wrcromwell@...>
 

Hi,

I have some other solid state gear and the filtering is more serious. My latest purchase (used) is a Hendricks PFR-3 and with only three bands it contains as many of those funny little donuts than the uBitx. They are also well placed. My old Atlas has a complete set of low pass filters on the output AND the interstage filters. It resembles a box of donuts from a real donut shop. I have a Ten Tec receiver that covers from 300 kHz to 30 MHz and has seven switched filters in just the front end and some more in the synthesizer section.

I also have a Dentron 80 meter rig rated for 12 watts with absolutely no filter after the final!! I have it sitting on the shelf just because I cared to remove the cover and look. No filter shows up on the schematic. Can't be. But it is. Now that uBitx has my attention I will probably roll a set of filters for that Dentron too.

UBitx is fixable.

73,

Bill KU8H

On 08/11/2018 12:32 AM, Dennis Yancey wrote:
I wonder what other kits and factory radios actually look like in
comparison on exactly the same teapots. For instance, I was listening to
a gentleman who is an extra class talking on 40 meters last night. He
USA using a high dollar radio, so he said, a high dollar amplifier and
he was 3 states away from me. His emissions were covering 8 kHz on
either side of the frequency he was using. That is just one of many. .
--
72 and God bless
KD4EPG
_._,_._,_
--
bark less - wag more

Re: Corrupt ubitx files?

Bill
 

Hi Tom,
I tried to put one of those files in a folder to send it to them, but Norton deleted it. Not sure how to send it. I could not copy the long link from norton. I downloaded from github ; ubitx_manager.exe. It says it was downloaded from amazonaws.com. The threat is HEUR.ADVML.C.

Still looking for a stable file that will open memory manager properly.

Re: 2 ten ohm resisters and button Mic element

jfein2000@...
 

Yes you are quite correct sorry.......knew it wasn't 10k but got it wrong.

Re: Compliance Summary

Ashhar Farhan
 

Warren,
I had compiled data from your own scans. It didnt show any troubling harmonics until 14 mhz. Can you confirm that? 

On Sat, 11 Aug 2018, 10:39 iz oos, <and2oosiz2@...> wrote:

I have assembled some kits like Hendricks or the NS40 by 4sqrp, they all had lowpass filters that beyond being neat designs surely did not suffer the harmonics issue as no relay snake was in there.


Il 11/ago/2018 06:32, "Dennis Yancey" <Kd4epg@...> ha scritto:
I wonder what other kits and factory radios actually look like in comparison on exactly the same teapots. For instance, I was listening to a gentleman who is an extra class talking on 40 meters last night. He USA using a high dollar radio, so he said, a high dollar amplifier and he was 3 states away from me. His emissions were covering 8 kHz on either side of the frequency he was using. That is just one of many. .  
--
72 and God bless
KD4EPG

Test for solving Spurs #ubitx

Ian Lee
 

I learned Spurs while reading the group 's mail today.
It seems to be difficult to control with LPF or BPF because it occurs near the main transmission frequency.
And I understood that it was caused by the frequency generated to pass the 45Mhz Filter.
I read that the Spurs were slightly beyond specification.
I have experience certifying commercial electronic devices, but I am not familiar with FCC amateur radio test specifications.

I modified the code slightly. I have figured out a 10dB reduction in my instrument, but I can not be confident. If you have someone who can test, please test.
You do not need to modify the hardware. Just upload the firmware and test it.

The .HEX file is located below.
https://drive.google.com/open?id=1ddzye3oOeIgzoM1KuSqk1AEdH0Wx0VBy

For how to upload firmware, please refer to the link below.
http://www.hamskey.com/2018/08/ubitx-firmware-cec-version-1097beta.html

If you are using stock LCD (16x02 Parallel), upload the file 'UBITX_CEC_V1.09TEST_16P.hex'
If you are using Nextion LCD, please use 'UBITX_CEC_V1.09TEST_NX.hex'

I would also appreciate if you test the Spurs test as well as the issues that appear when you first press a PTT or CW Key.

Source code : 
The source code below is not versioned (include wrong version tag). Please use for reference only.
https://drive.google.com/open?id=1Z-oKnVibYRkHQKoas6zLCkNqFbbOnu-1

Thank you for reading the mail.

Bitx40 spot function

Ken
 

Hi All

Quite a while ago there was discussion on unbalancing DBM for a spot function. I'd like this on a stock Bitx40.

73

Ken VA3ABN

Re: Corrupt ubitx files?

Ian Lee
 

bill

The latest version of ubitx_Manager can be downloaded below. (Beta)

For non-beta versions, please click the link below.
You can see all the versions and records so far.

Ian KD8CEC

2018년 8월 11일 (토) 오후 8:48, Bill <allerthomes@...>님이 작성:

Hi Tom,
I tried to put one of those files in a folder to send it to them, but Norton deleted it. Not sure how to send it. I could not copy the long link from norton. I downloaded from github ; ubitx_manager.exe. It says it was downloaded from amazonaws.com. The threat is HEUR.ADVML.C.

Still looking for a stable file that will open memory manager properly.


--
Best 73
KD8CEC / Ph.D ian lee
kd8cec@...
www.hamskey.com (my blog)

Re: Compliance Summary

Warren Allgyer <allgyer@...>
 

Farhan

My scans are in the Photos section on this board. They show non-compliant harmonics at two watts out on all bands, all modes through 20 meters with the one exception of 80 meter SSB. 

Not shown in the files , although I can retest and post them, are non-compliant “45 MHz minus Cartier” spurs on all bands 20 meters and higher. 

WA8TOD

Re: Bitx40 spot function

M Garza <mgarza896@...>
 

Hi Ken,
Please look at Allard's firmware.  
It provides many features with just a few mods to the hardware.  SPOT is one of the features, I believe.

73s

Marco - KG5PRT 

On Sat, Aug 11, 2018, 8:55 AM Ken <chase8043@...> wrote:
Hi All

Quite a while ago there was discussion on unbalancing DBM for a spot function. I'd like this on a stock Bitx40.

73

Ken VA3ABN

Re: Harmonics

OldEngineer
 

I stand with a foot in each camp and am fortunate that I have several radios at my disposal, the uBitx stands idle as I watch the discussion.  I have an on going project constructing band pass filters for activities such as Field Day where we have multiple stations on different bands but in close proximity.  The filters are from the well known "Ugly Filter Project" and seem to work quite well.  In line with the uBitx they are quite inexpensive, don't require a great deal of equipment or test gear to construct and work well for the intent of their use.  A question for those knowledgeable and experienced enough to answer.  While not the compact portable and automatic system of the radio itself, would a manually inserted filter from this project suffice to insure a clean presence on the bands?  While in the letter of the law it would not serve as it seems the law addresses the explicit piece of equipment itself not the installation with outside accessories, it could at least afford a cost effective and attainable answer for most Hams to achieve the intent.

Re: 2 ten ohm resisters and button Mic element

Ralph Mowery
 

I guess that I will be measuring the resistors instead of just looking at the colors from now own.  I just hate it when 'standards' change, or one countries 'standard' is different from another.

At work we had some large 480 volt 3 phase cabinets.  The master disconnect switch was always red for off, and green for on.  Was that way for 40 years.  Then around 2000 we got in a lot f equipment made over seas.  Seems that they wanted to use red for on meaning it was not safe to open and green for off meaning it is safe to open.  When dealing with 480 volts and over 200 amp circuits we sure do not need that kind of confusion, but have it.








On Sat, Aug 11, 2018 at 2:45 AM, Ian Reeve <ian.radioworkshop@...> wrote:
Please be mindful that there are resistor codes with three bands plus a forth for tolerance and four band plus a fifth for tolerance.I always measure them now to check and it is not unusual either to find one wrongly marked or indeed open circuit.Takes a few seconds to check each resistor,well worth the time .


Re: Nextion Error #ubitx #ubitx-help PD5DJ #ubitx #ubitx-help

 

Bjorn:

 

Forgive my ignorance in this area, but it seems that your limited code (see below)…

 

va0.val++

if(va0.val==100)

{

  j0.val=va0.val

  page px

}else

{

  j0.val=va0.val

}

 

…Is insufficient for generating graphics and software control on a 4.3-inch Nextion.

 

CEC’s HMI files are far more involved (see below).

 

PRE-INITIALIZE:

//Hide Mode Buttons

vis bLSB,0

vis bUSB,0

vis bCWL,0

vis bCWU,0

//Hide IFS

vis hIFS,qIFS.picc //found bug by VE1BWV

//Hide Text Line for compatiable with Character LCD

vis t0,0

vis t1,0

vis nCWNum,0

vis tCWText,0

vis bAction,0

//Added Version 1.1

vis bStep1,0

vis bStep2,0

vis bStep3,0

vis bStep4,0

vis bStep5,0

 

tmMAI:

 

//===================================

// Nextion LCD -> Process for MCU

//===================================

//===================================

//SEND COMMAND STX(3BYTE) + COMMAND + DATA (4byte) + ETX(3BYTE)

//===================================

if(rSendNeed.val==1)                      //Check Need transsfer

{

  printh 59                                                       //MAGIC

  printh 58                                                       //MAGIC

  printh 68                                                       //MAGIC

  prints rSendCommand.val,1   //MODE CHANGE

  print rSendData.val                     //VALUE

  printh FF                                                       //MAGIC

  printh FF                                                       //MAGIC

  printh 73                                                       //ETX

  rSendNeed.val=0

  if(rSendCommand.val==1)

  {

    //Hide Mode Buttons

    page px

  }else if(rSendCommand.val==17)

  {

    //Hide Tune Step Buttons

    page px

  }

}

//===================================

// Process for MCU -> Nextion LCD

//===================================

// Always display (Graphic or Text Mode)

//===================================

// Check condition for Frequency Shift display (CWL, CWU)

// if changed Current Frequency, Mode, sys2 = 1

sys2=0

// Current FREQ Display

if(pm.vc.val!=-1)

{

  if(nTemp4.val!=1)

  {

    //Save Last received Freq

    nLastFreq.val=pm.vc.val

    //if changed vfo, replace vlMainVFO Value

    //Display Hz

    nTemp0.val=pm.vc.val%1000

    cov nTemp0.val,txtFreqHz.txt,3

    //Display Khz

    pm.vc.val/=1000

    nTemp0.val=pm.vc.val%1000

    cov nTemp0.val,txtFreqKHz.txt,3

    //Display Mhz

    pm.vc.val/=1000

    cov pm.vc.val,txtFreqMHz.txt,0

    pm.vc.val=-1

    sys2=1

  }

}

//TX/RX Status

if(pm.ct.val!=-1)

{

  if(pm.ct.val==0)

  {

    //TX

    qInTX.picc=0

  }else

  {

    //RX

    qInTX.picc=1

  }

  pm.ct.val=-1

}

//TX STOP Status

if(pm.cx.val!=-1)

{

  if(pm.cx.val==0)

  {

    //TX

    qTXStop.picc=0

  }else

  {

    //RX

    qTXStop.picc=1

  }

  pm.cx.val=-1

}

//Display Active A/B

if(pm.cv.val!=-1)

{

  if(pm.cv.val==0)

  {

    bVFOAB.txt="VFO.A"

  }else

  {

    bVFOAB.txt="VFO.B"

  }

  nActiveVFO.val=pm.cv.val

  pm.cv.val=-1

}

//Display Current Mode

if(pm.cc.val!=-1)

{

  //Save Last received Freq

  nLastMode.val=pm.cc.val

  if(pm.cc.val==2)

  {

    bMode.txt="LSB"

  }else if(pm.cc.val==3)

  {

    bMode.txt="USB"

  }else if(pm.cc.val==4)

  {

    bMode.txt="CWL"

  }else if(pm.cc.val==5)

  {

    bMode.txt="CWU"

  }

  pm.cc.val=-1

  sys2=1

}

//Display Dial Lock

if(pm.cl.val!=-1)

{

  if(pm.cl.val==0)

  {

    //UnLock

    qLock.picc=0

    //UnLock all Thouch area

    tsw 255,1

  }else

  {

    //Lock

    qLock.picc=1

    tsw 255,0

    tsw qLock,1

  }

  pm.cl.val=-1

}

//SDR Mode

if(pm.cj.val!=-1)

{

  if(pm.cj.val==0)

  {

    //RX

    bSDR.txt="SPK"

    bSDR.picc=0

  }else

  {

    //TX

    bSDR.txt="SDR"

    bSDR.picc=1

  }

  pm.cj.val=-1

}

//IFS Graph

if(pm.vi.val!=-1)

{

  //Display IFS Graph

  //Offset change, range -20000 ~ +20000 => 0 ~ 4000

  nIFS.val=pm.vi.val

  if(pm.vi.val<-2000)

  {

    pm.vi.val=-2000

  }else if(pm.vi.val>2000)

  {

    pm.vi.val=2000

  }

  pm.vi.val+=2000 //0~4000

  hIFS.val=pm.vi.val

  pm.vi.val=-1

  vis hIFS,1

}

//===========================================

//Display CW Options

//===========================================

if(pm.vt.val!=-1)

{

  nTone.val=pm.vt.val

  pm.vt.val=-1

  sys2=1

}

if(pm.ck.val!=-1)

{

  if(pm.ck.val==0)

  {

    tKey.txt="Straight"

  }else if(pm.ck.val==1)

  {

    tKey.txt="IAMBICA"

  }else if(pm.ck.val==2)

  {

    tKey.txt="IAMBICB"

  }

  pm.ck.val=-1

}

if(pm.vs.val!=-1)

{

  nWPM.val=1200/pm.vs.val

  pm.vs.val=-1

}

if(pm.vy.val!=-1)

{

  nDelay.val=pm.vy.val*10

  pm.vy.val=-1

}

if(pm.ve.val!=-1)

{

  nSDelay.val=pm.ve.val*2

  pm.ve.val=-1

}

//========================================

//Display Boot Message

//========================================

if(pm.cm.val==1)

{

  pm.cm.val=-1

  tCallSign.txt=pm.sc.txt

  tVersion.txt=pm.sv.txt

}

//===================================

// Select Graphic Mode / Text Mode

//===================================

if(pm.c0.val!=nDispStatus.val)

{

  if(pm.c0.val==1)      //Text Mode

  {

    vis t0,1

    vis t1,1

  }else

  {

    vis nCWNum,0

    vis tCWText,0

    vis t0,0

    vis t1,0

    vis bAction,0

    t1.txt=""

  }

  nDispStatus.val=pm.c0.val

}

//========================================

//Text Line Mode for compatible with Character LCD

//========================================

if(nDispStatus.val==1)

{

  //CW Text Mode Check

  if(pm.cy.val!=-1)

  {

    //CW Text Mode

    if(pm.cy.val==1)

    {

      vis nCWNum,1

      vis tCWText,1

    }else

    {

      //Normal Text Mode

      vis nCWNum,0

      vis tCWText,0

    }

    pm.cy.val=-1

  }

  if(pm.cw.val!=-1)

  {

    nCWNum.val=pm.cw.val

    pm.cw.val=-1

  }

  if(pm.sa.txt!="JJ")

  {

    tCWText.txt=pm.sa.txt

    pm.sa.txt="JJ"

  }

  if(pm.s0.txt!="JJ")

  {

    t0.txt=pm.s0.txt

    pm.s0.txt="JJ"

  }

  if(pm.s1.txt!="JJ")

  {

    t1.txt=pm.s1.txt

    pm.s1.txt="JJ"

    substr t1.txt,sTemp0.txt,0,4

    if(sTemp0.txt=="PTT-")

    {

      vis bAction,1

    }else

    {

      vis bAction,0

    }

  }

  //===========================================

  //ATT, IFS

  //===========================================

  //ATT Changing from Text Mode

  if(pm.vf.val!=-1)

  {

    hATT.val=pm.vf.val

    nATT.val=pm.vf.val

  }

  //IFS Changing from Text Mode

  if(pm.ci.val!=-1)

  {

    if(pm.ci.val==0)

    {

      vis hIFS,0

    }else

    {

      vis hIFS,1

    }

  }

}else

{

  //========================================

  //Graphic Mode

  //========================================

  nTemp0.val=-1

  nTemp1.val=-1

  //Display Other VFO

  if(nActiveVFO.val==0)

  {

    //Other VFO is B

    nTemp0.val=pm.vb.val

    nTemp1.val=pm.cb.val

  }else

  {

    //Other VFO is A

    nTemp0.val=pm.va.val

    nTemp1.val=pm.ca.val

  }

  if(nLastSubFreq.val!=nTemp0.val)

  {

    nLastSubFreq.val=nTemp0.val

    nSubFreq.val=nTemp0.val

  }

  //Other VFO is B

  if(nLastSubMode.val!=nTemp1.val)

  {

    nLastSubMode.val=nTemp1.val

    if(nTemp1.val==2)

    {

      tSubMode.txt="LSB"

    }else if(nTemp1.val==3)

    {

      tSubMode.txt="USB"

    }else if(nTemp1.val==4)

    {

      tSubMode.txt="CWL"

    }else if(nTemp1.val==5)

    {

      tSubMode.txt="CWU"

    }

  }

  //Draw Smeter

  if(pm.cp.val!=-1)

  {

    jSMeter.val=pm.cp.val*10

    pm.cp.val=-1

  }

  //Display tune step

  if(pm.cn.val!=-1)

  {

    if(pm.cn.val==1)

    {

      nTuneStep.val=pm.v1.val

    }else if(pm.cn.val==2)

    {

      nTuneStep.val=pm.v2.val

    }else if(pm.cn.val==3)

    {

      nTuneStep.val=pm.v3.val

    }else if(pm.cn.val==4)

    {

      nTuneStep.val=pm.v4.val

    }else if(pm.cn.val==5)

    {

      nTuneStep.val=pm.v5.val

    }

    pm.cn.val=-1

  }

  //Option Display

  //Split

  if(pm.cs.val!=-1)

  {

    if(pm.cs.val==0)

    {

      qSPL.picc=0

    }else

    {

      qSPL.picc=1

    }

    pm.cs.val=-1

  }

  //RIT

  if(pm.cr.val!=-1)

  {

    if(pm.cr.val==0)

    {

      qRIT.picc=0

    }else

    {

      qRIT.picc=1

    }

    pm.cr.val=-1

  }

  //===========================================

  //ATT, IFS

  //===========================================

  //ATT

  if(pm.vf.val!=-1)

  {

    if(pm.vf.val==0)

    {

      qATT.picc=0

    }else

    {

      qATT.picc=1

    }

    hATT.val=pm.vf.val

    nATT.val=pm.vf.val

    pm.vf.val=-1

  }

  //IFS

  if(pm.ci.val!=-1)

  {

    if(pm.ci.val==0)

    {

      qIFS.picc=0

      vis hIFS,0

    }else

    {

      qIFS.picc=1

      vis hIFS,1

    }

    pm.ci.val=-1

  }

}

//Frequency Shift display for CWL, CWU

if(sys2==1)

{

  //Changed Frequency or Mode

  if(pm.ch.val==1)                        //Frequency Shiftdisplay

  {

    if(nLastMode.val==4)      //CWL

    {

      sys2=nLastFreq.val-nTone.val

      sys2+=pm.vh.val               //Find adjust frequency for cwl, cwu by user's configuration

    }else if(nLastMode.val==5)      //CWU

    {

      sys2=nLastFreq.val+nTone.val

      sys2+=pm.vh.val               //Find adjust frequency for cwl, cwu by user's configuration

    }else

    {

      sys2=nLastFreq.val

    }

  }

  if(sys2!=1)     //applied shift value

  {

    nTemp0.val=sys2%1000

    cov nTemp0.val,txtFreqHz.txt,3

    //Display Khz

    sys2/=1000

    nTemp0.val=sys2%1000

    cov nTemp0.val,txtFreqKHz.txt,3

    //Display Mhz

    sys2/=1000

    cov sys2,txtFreqMHz.txt,0

  }

  sys2=-1

}

 

 

Is your code supposed to be inserted into CEC’s code? I am at a complete loss as to how to make your GUI work????

 

David A Posthuma, WD8PUO

 

From: BITX20@groups.io <BITX20@groups.io> On Behalf Of Björn Pasteuning
Sent: Saturday, August 11, 2018 4:45 AM
To: BITX20@groups.io
Subject: Re: [BITX20] Nextion Error #ubitx #ubitx-help PD5DJ

 

va0.val++

if(va0.val==100)

{

  j0.val=va0.val

  page px

}else

{

  j0.val=va0.val

}

It means, Increment variable va0.val

And if the variable has reached 100 then copy the value of va0.val to j0.val and call page px, other wise only copy the value va0.val to j0.val

--
73' Björn de PD5DJ
www.pd5dj.nl

Re: Nextion Error #ubitx #ubitx-help PD5DJ #ubitx #ubitx-help

 

Bjorn:

 

I am sorry, but the new files do not seem to have any different code than the previous download files.

 

David A Posthuma, WD8PUO

 

From: BITX20@groups.io <BITX20@groups.io> On Behalf Of Björn Pasteuning
Sent: Saturday, August 11, 2018 4:41 AM
To: BITX20@groups.io
Subject: Re: [BITX20] Nextion Error #ubitx #ubitx-help PD5DJ

 

Hi all, I see there are some troubles getting my HMI files working.

Please checkout these files: https://www.dropbox.com/sh/s189dw3pqazcuct/AADW-3ANYggK5JjPWafA0Bu_a?dl=0

--
73' Björn de PD5DJ
www.pd5dj.nl

Re: Test for solving Spurs #ubitx

ajparent1/KB1GMX
 

On Sat, Aug 11, 2018 at 06:54 AM, Ian Lee wrote:
https://drive.google.com/open?id=1Z-oKnVibYRkHQKoas6zLCkNqFbbOnu-1
What did you do and how is it supposed to work?  There are 17 files and ways to much to look at for an answer.

There is no logical fix for the spur in in the control code.  

Allison

Re: Spurs - BPF fix? #ubitx

ajparent1/KB1GMX
 

Glen,

Looks like that would work...  To do your test you built it too, good.

Now the challenge.. add realys to switch it in place to repealce the 9 element low pass filter
for above 20mhz.  You can use TX-A  the control as that is in active for above 21mhz.

the logic is if KT1 is not picked activate your relays to inert the new filter where the
low pass was.  The collector of q17 is at 12V when that is the case and that can be
used to drive a 2n3904 hooked up like Q17 too activate the added relays.''

For testing insert it with wires(coax) and see if the spur at the output is below -43dbC.

FYI I'd move the corner frequency up to about 22.5mhz because its tempting to try 15M
that way save for the spur for that is 23.5ish  (45- |21.2 to 21.45|= 23.8 to 23.55mhz).

Allison


Re: Test for solving Spurs #ubitx

W2CTX
 

IN THE SI5351.INO i FOUND:


// User program may have reason to poke new values into these 3 RAM variables
uint32_t si5351bx_vcoa = (SI5351BX_XTAL*SI5351BX_MSA); // 25mhzXtal calibrate
uint8_t si5351bx_rdiv = 0; // 0-7, CLK pin sees fout/(2**rdiv)
uint8_t si5351bx_drive[3] = {1, 1, 1}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2
uint8_t si5351bx_driveSSB[3] = {1, 0, 3}; // for reduce Spurs
uint8_t si5351bx_clken = 0xFF; // Private, all CLK output drivers off
int32_t calibration = 0;

void i2cWrite(uint8_t reg, uint8_t val) { // write reg via i2c
Wire.beginTransmission(SI5351BX_ADDR);
Wire.write(reg);
Wire.write(val);
Wire.endTransmission();
}

void i2cWriten(uint8_t reg, uint8_t *vals, uint8_t vcnt) { // write array
Wire.beginTransmission(SI5351BX_ADDR);
Wire.write(reg);
while (vcnt--) Wire.write(*vals++);
Wire.endTransmission();
}

uint8_t si5351Val[8] = {0, 1, 0, 0, 0, 0, 0, 0}; //for reduce program memory size

void si5351bx_init() { // Call once at power-up, start PLLA
uint32_t msxp1;
Wire.begin();
i2cWrite(149, 0); // SpreadSpectrum off
i2cWrite(3, si5351bx_clken); // Disable all CLK output drivers
i2cWrite(183, SI5351BX_XTALPF << 6); // Set 25mhz crystal load capacitance
msxp1 = 128 * SI5351BX_MSA - 512; // and msxp2=0, msxp3=1, not fractional
//uint8_t vals[8] = {0, 1, BB2(msxp1), BB1(msxp1), BB0(msxp1), 0, 0, 0};
si5351Val[2] = BB2(msxp1);
si5351Val[3] = BB1(msxp1);
si5351Val[4] = BB0(msxp1);

i2cWriten(26, si5351Val, 8); // Write to 8 PLLA msynth regs
i2cWrite(177, 0x20); // Reset PLLA (0x80 resets PLLB)
}

extern char NowTXMode;

void si5351bx_setfreq(uint8_t clknum, uint32_t fout) { // Set a CLK to fout Hz
uint32_t msa, msb, msc, msxp1, msxp2, msxp3p2top;
if ((fout < 500000) || (fout > 109000000)) // If clock freq out of range
si5351bx_clken |= 1 << clknum; // shut down the clock
else {
msa = si5351bx_vcoa / fout; // Integer part of vco/fout
msb = si5351bx_vcoa % fout; // Fractional part of vco/fout
msc = fout; // Divide by 2 till fits in reg
while (msc & 0xfff00000) {
msb = msb >> 1;
msc = msc >> 1;
}
msxp1 = (128 * msa + 128 * msb / msc - 512) | (((uint32_t)si5351bx_rdiv) << 20);
msxp2 = 128 * msb - 128 * msb / msc * msc; // msxp3 == msc;
msxp3p2top = (((msc & 0x0F0000) << 4) | msxp2); // 2 top nibbles
uint8_t vals[8] = { BB1(msc), BB0(msc), BB2(msxp1), BB1(msxp1),
BB0(msxp1), BB2(msxp3p2top), BB1(msxp2), BB0(msxp2)
};
i2cWriten(42 + (clknum * 8), vals, 8); // Write to 8 msynth regs

//if TX Mode and SSB
if (inTx == 1 && NowTXMode == TX_SSB)
{
i2cWrite(16 + clknum, 0x0C | si5351bx_driveSSB[clknum]); // use local msynth
}
else
{
i2cWrite(16 + clknum, 0x0C | si5351bx_drive[clknum]); // use local msynth
}

si5351bx_clken &= ~(1 << clknum); // Clear bit to enable clock
}
i2cWrite(3, si5351bx_clken); // Enable/disable clock
}

On August 11, 2018 at 10:37 AM ajparent1/KB1GMX <kb1gmx@...> wrote:

On Sat, Aug 11, 2018 at 06:54 AM, Ian Lee wrote:
https://drive.google.com/open?id=1Z-oKnVibYRkHQKoas6zLCkNqFbbOnu-1
What did you do and how is it supposed to work?  There are 17 files and ways to much to look at for an answer.

There is no logical fix for the spur in in the control code.  

Allison