Date   
Re: RF power chain mods and improvements..

ajparent1/KB1GMX <kb1gmx@...>
 

This string is 275 entries and counting long for those that use email rather than web site you loose a
huge amount of context and replies never mind the ability to look back.

I stopped writing on improvements over 20mhz as any increase in power makes
the over 20mhz spur a greater issue. Do so at your own risk.

For Q90 the BFR106or a similar high FT part is a winner.  Keep Ie under 20ma.

For the pre-driver and driver....

THe whole point is to get more gain at higher frequencies as the 3904s can be
pretty dismal at 10M.  The 2n2222s are better that but for better 10M you need
2n3866 or 2n5109 and transformer optimizations.  Even with that it wants to
do stupid high power at 80m and less than half at 10M.  So the C81/r83 mod
is needed to tame down 80m (470pf/8.2ohms from memory).

If your not interested in over 20mhz 2N2222A(to18). Ie 20ma max per device.
If you are interested in over 20mhz 2n3866 or 2n5109. Ie can be higher but take care for heating.

The various transformers need help too.  Look back for specific winding info.  
Memory test of what I used: 
T8 (q90) 5t #30 bifilar on FB43-2402  
T9 FB43-302 4t trifilar #28
t10 FB43-302 4t trifilar #26
T11 FB61-202 3T/4T #24

To take advantage of the transformer mods you needs ot make other changes....
See the progression!

2n3866 kitsandparts. com 6.00$ for two.  RFparts.com 1.95ea
2n2222A RFparts.com  65 cents

Biggest issue with RFparts is I believe the have a 25$ minimum, for me I take advantage of that and
stock up on various other pats like Arco trimmers, metal clad mica caps and other itms useful to a
VHF/UHF RF person.

Other suppliers Mouser, Digikey, Jameco.

FYI MPSH10 kits and parts have them for 25/$5.00 and BS170 25/$5.00  reliable source and they have
Ferrite and toroids!

Allison

Re: uBITX v3 - Wiring in a 6 pin Mini-Din for Data

Kevin Rea
 

Hi Andy,
did you ever do this mod ?

if so, how did it do ?

Kevin rea
lancaster, calif.
k6rea

Re: uBitx Modulation only lows no highs in frequency response

ajparent1/KB1GMX <kb1gmx@...>
 

You may have to move the BFO down more for better audio. 
Its the first thing everyone tries, 100 to 200 cycles may help greatly. 

Also more than a few have narrower than expected 12mhz filters.  
Mine swept on the analyzer at under 1700hz wide and reducing
the parallel caps from 100pf to 91pf got it out to over 2100hz.

Allison

Re: Unbuilt uBITX Ver4 and Blue Cabinet for sale.

SM6MOJ
 

The G4HUP buffer amplifier is connected to the 45 MHz IF that is available from C12. I have obtained an SMA "pigtail" that will connect the buffer amplifier output to the SDR dongle.

Re: uBitx Modulation only lows no highs in frequency response

Björn Pasteuning
 

Hi Allison,

Well I think that is the culprit.

I have tried about 7 electrets after my last posting, some sounded a minor bit better others worse.

No significant big improvement.
Also tried playing with the BFO, not much help there either.

Do you have any link regarding the parallel caps? or schematic how this could be done?

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

Re: S meter wiring

Bill Carpenter <nz0tham@...>
 

Pat,

I appreciate it but I have no idea what a Nextion screen is.

73,Bill NZ0T

Re: uBitx Modulation only lows no highs in frequency response

Jerry Gaffke
 

Allison is suggesting that the 100pf caps at C217, C218, C219, C220, C221, C222
be swapped out with something smaller.

The board is laid out for 1206 sized surface mount caps, though 0805 sized parts could be used.
These sizes are in imperial units, something near that size in metric should work fine.
    https://en.wikipedia.org/wiki/Surface-mount_technology#Rectangular_passive_components
Dielectric should be C0G or NP0.
Voltage rating doesn't matter much here, anything 25v or more should be fine.
Use caps of 5% tolerance (preferably better), or measure them with a capacitance meter.
    https://groups.io/g/BITX20/message/52471https://groups.io/g/BITX20/message/52471
Standard values that might be tried include the current 100pf, or Allison's 91pf, or  82pf.
they lower the value the wider the bandwidth.
Though changing those capacitance values may change the shape of the filter response
with frequency, ideally we would sweep the filter shape somehow to make measurements
before and after the mod.

As you know, crystal filters in an SSB transceiver like this are a trade-off.
A wider filter may sound better, but may not be suitable when there are many
stations operating on nearby frequencies.
 
Would be interesting to measure the capacitance of any 100pf caps removed,
with 10% or worse tolerance parts we would see significant variations n performance.

Jerry


On Thu, Jul 19, 2018 at 01:20 PM, Björn Pasteuning wrote:

Hi Allison,

Well I think that is the culprit.

I have tried about 7 electrets after my last posting, some sounded a minor bit better others worse.

No significant big improvement.
Also tried playing with the BFO, not much help there either.

Do you have any link regarding the parallel caps? or schematic how this could be done?

Animated GIF of BITX17 scratch build

Bill Meara
 

Re: S meter wiring

pat griffin
 

Bill,

Here is a link to one of Ian's pages which describes it.  Once you go to it you won't go back.  Ignore what I said about it and the s meter.  You are on the right track.

http://www.hamskey.com/2018/06/ubitx-with-nextion-lcd-cec-firmware.html

www.hamskey.com
UBITX usage except GUI is same as existing CEC Firmware. uBITX Manager is used in the same way. This document does not describe the use of uBITX and uBITX Manager.



Pat Griffin, CPA, PhD
http://www.cahabatechnology.com


From: BITX20@groups.io <BITX20@groups.io> on behalf of Bill Carpenter <nz0tham@...>
Sent: Thursday, July 19, 2018 2:33:49 PM
To: BITX20@groups.io
Subject: Re: [BITX20] S meter wiring
 
Pat,

I appreciate it but I have no idea what a Nextion screen is.

73,Bill NZ0T

Re: S meter wiring

Bill Carpenter <nz0tham@...>
 

No thanks, I like that my uBITX is small and don't have any need for a lager screen nor do I want to change enclosures.  Right now I'm having a blst with it on CW.  SSB on the uBITX is not important to me - that's what my K3, KPA500 and 2 element Quad are for lol.

Re: JackAl board pricing

Tim - M0THM
 

Awesome thank you for the update. I now have my Teeensy funds are tight so more time to get the cash together is not a bad.

Tim, M0THM

calibrate v4 ubitx

John Malone
 

All
I have a 50mh signal source, can I use it to calibrate the v4 ubitx board?

Thanks
John
KD0MOA

V4.3 arduino code description... #arduino

ajparent1/KB1GMX <kb1gmx@...>
 

byte enc_state (void) {
    return (analogRead(ENC_A) > 500 ? 1 : 0) + (analogRead(ENC_B) > 500 ? 2: 0);
}

That's the code from the UI section...  My brain does not want to parse it.

Best I get is analogread(ENC_A) returns greater than 500 its either a 1 or 0 returned.
No where can I find the "?" or ":" usage and meaning.   

Any ideas...  My brain says the library function turns that into something intelligible.

Also why can't it be?

byte enc_state (void) {
    return (digitalRead(ENC_A) ? 1 : 0) + (digitalRead(ENC_B)  ? 2: 0);
}

Allison

Re: V4.3 arduino code description... #arduino

Jerry Gaffke
 

The ternary operator has been around since the 70's
    https://en.wikipedia.org/wiki/%3F:#C


This equivalent (but untested) function might be easier to read.


// Returns a value of 0,1,2, or 3
// If ENC_A is high, the LSB is turned on
// If ENC_B is high, then the MSB is turned on
byte enc_state (void)   {
    byte rval = 0;
    if (analogRead(ENC_A) > 500)
        rval =1;
    if (analogRead(ENC_B) > 500)
        rval = rval + 2;
    return(rval);
}
   
Would be better to use your digitalRead(), not the analogRead().
Not sure why it was done this way.
Only the nano analog pins A6 and A7 have no digital IO mode,
but perhaps having done battle with those it was assumed that the others were the same?

Jerry



On Thu, Jul 19, 2018 at 03:02 PM, ajparent1/KB1GMX wrote:
byte enc_state (void) {
    return (analogRead(ENC_A) > 500 ? 1 : 0) + (analogRead(ENC_B) > 500 ? 2: 0);
}

That's the code from the UI section...  My brain does not want to parse it.

Best I get is analogread(ENC_A) returns greater than 500 its either a 1 or 0 returned.
No where can I find the "?" or ":" usage and meaning.   

Any ideas...  My brain says the library function turns that into something intelligible.

Also why can't it be?

byte enc_state (void) {
    return (digitalRead(ENC_A) ? 1 : 0) + (digitalRead(ENC_B)  ? 2: 0);
}

Allison

Re: V4.3 arduino code description... #arduino

ajparent1/KB1GMX <kb1gmx@...>
 

Thanks Jerry,

Its one I never use as it make code less readable.  As a result the brain locked.
It was just to cryptic for me.

For a test I did try digitalRead() and two things happened, it works, and the compiled
code is smaller.  Less gnashing and mashing.

Trying to figure out the encoder stuff so I can substitute a pair of buttons with the logic of 
tap (up) or tap (down) for a single increment/decrement of frequency or menu item.
Push and hold does the key repeat.  Least that what I want to replace...

Allison

New radio

Mike Short
 

I ordered it Monday and it arrived in NW Florida today. Let the fun begin 
--
Mike
AI4NS

Re: RF power chain mods and improvements..

Glenn
 

Allison, unfortunately, it’s not so simple for those of us who live outside the USA.

We simply don’t have the luxury of being able to deal easily with the likes of Mouser, Digikey, RF Parts, etc.

We have several problems,

·         Exchange rates (eg VK USA rate is AUD$1 buys about US70c)

·         Minimum order values mean we usually have to buy extras or parts we may not really need.

·         Shipping costs to countries out of USA are very high.

·         Some US companies won’t even ship out of the USA.

·         Some companies don’t have all that we need, so we have to deal with multiple US companies, adding even more costs due to the above, especially multiple shipping costs. 

·         We are also about to be hit with taxes on our imports, of 10% of value, including the shipping costs!

I recently bought 10xRD16HHF1’s from RF Parts.  Invoice cost US$39.50 plus $17.20 postage. Each part that cost $3.95 true cost is now $5.67.  (Factor in AUD$ exchange rates and each of those RD16’s cost me AUD$8.10. )

Likewise, the uBITX kit costs us here in VK, around AUD$150.00 There no fix for this, we choose to live here.

I used to buy toroids from kitsandparts.com when postal cost were fairly reasonable. Now, with the rise in Postal rates in the USA (and VK!) it’s now become uneconomic to ‘stock up’ on toroids by buying a selection in reasonable quantities.

In the end, many I believe, take the risk and buy from the likes of companies like eBay and similar on-line stores who often offer no cost shipping for one. If you win, you save a lot of money. And if they are fakes, chalk it up to experience and possibly abandon the project. Or find something on hand that will ‘do’. Most of us have a limit on how much we can spend on this hobby. I know I probably spend too much as it is.

 

Glenn vk3pe




On Fri, Jul 20, 2018 at 01:32 AM, ajparent1/KB1GMX wrote:
I work with US supply vendors and in some cases ask for COC or similar documentation and get it.
Many of the companies I've dealt with for decades.

Its not a bargain if I get crap and wait twice the time to get it because I had to order and
pay for it again. In general I feel the risk and wasted time for ebay and similar is not
worth it.

I'd bet the market for leaded parts is more ripe for scams and fakes.  Solution,
use SMT parts as they are cheaper more readily available and less likely to be faked.
Yes, they are small but some offer better performance at higher frequencies.
Same for the resistors and caps.  I dead bug (ugly/manhattan construction) them too.

Allison

logic mod for filter selection #arduino #ubitx

ajparent1/KB1GMX <kb1gmx@...>
 

While doing other things I realized I needed one IO pin for a differently arranged user interface.

Looking at the relay tree it is notable there are only 4 used states and one that is don't care.
That don't care allowed me to remove C155, R151, and Q17.  That is replaced with two diodes
to the collector of both Q18 and Q19 (cathode to the collectors) and anodes to the former
Q17 collector.  what that does is any time Q18 or Q19 is active KT1 is activated.   
If that seems odd the relays are a partial decoding tree so if we encode the controls correctly
we get the needed result and one free IO pin.  To make it work Relay KT1 must be activated 
when we leave the 20-30mhz region for 20/17M or lower.  Since to go lower than 20mhz we
must have a signal the TXC is used as that controls the 40/80M relay KT3 but means nothing
unless KT2 is activated  Using two diodes as a logical OR we can then use Q18 and Q19
to force KT1 to be active.  So for 20M and down KT1 is active and the other three select
what bands below that.  I got the IO pin and the firmware got simpler.

The code of course changes from:
/**
 * 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){ 
    digitalWrite(TX_LPF_A, 0);
    digitalWrite(TX_LPF_B, 0);
    digitalWrite(TX_LPF_C, 0);
  }
  else if (freq >= 14000000L){ 
    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);    
  }
}

To this.

/**
 * this version version uses two diodes to get rid of needing TX-A
 * and takes advantage of TX_LPF_C having an meaningless state
 * unless KT2 is active (TX_LPF_B=1). 
 *  tx-b   tx-c  band
 *  0       0    10m
 *  0       1    20M   we enable TX-A, and get 20m, KT2 is not active.
 *  1       0    40m   make KT2 active and KT3 selects 40 or 80m. 
 *  1       1    80m
*/  
void setTXFilters(unsigned long freq){
  
  if (freq >= 20000000L){ 
    digitalWrite(TX_LPF_B, 0);  // 10m
    digitalWrite(TX_LPF_C, 0);
  }
  else if (freq >= 14000000L){ 
    digitalWrite(TX_LPF_B, 0);  // 20M
    digitalWrite(TX_LPF_C, 1);
  }
  else if (freq >= 7000000L){  
    digitalWrite(TX_LPF_B, 1);  // 40m
    digitalWrite(TX_LPF_C, 0);    
  }
  else {
    digitalWrite(TX_LPF_B, 1);  // 80m
    digitalWrite(TX_LPF_C, 1);    
  }
}

Allison

Re: calibrate v4 ubitx

Jerry Gaffke
 

You could use a 50mhz reference, but you would have to hack the Raduino code a bit.
Something like this should work, as per post    https://groups.io/g/BITX20/message/35235

In my own Raduino code, I adjust si5351bx_vcoa directly, and save it to EEPROM when done.
But am following the convention set by the uBitx stock code with a call to si5351_setcalibration()
The functions enc_read() and btnDown() are also from the stock uBitx code. 

If the calibration found in EEPROM at power up is beyond perhaps +/- 1000 ppm 
at 875mhz (so a number bigger than 875000 or less than -875000),
it should be ignored and a calibration value of 0 assumed.

With the code as presented, we are adjusting the 25mhz reference oscillator to the si5351
by a factor of 10 Hertz out of  875mhz with each encoder tick, a factor of 11.4 ppb.
That will be slow going.
Increasing that to 100 Hz might be more practical.
It's possible that no tone will be heard at the start, but moving the encoder one way or the other
should eventually find it.

This line of code:
    unsigned long clk1 = clk0 + 44995000;      //  clk0 + the center of the 45mhz crystal filter
could be changed to 
    unsigned long clk1 = clk0 + 44995000 + beatnote;  
where beatnote is an audio tone of perhaps 500  in Hz.
Then use a frequency counter on the speaker leads to measure the resultant audio tone,
twiddle the encoder till the frequency counter reads exactly that 500 hz.
With this change, you no longer need to find true zero beat, as zero Hz may be hard to find
given the capacitive coupling through the audio amp.


// Takes one arg, the frequency standard in Hz that we have available
// Could be a station off the air, could be a fancy rubidium standard
// If that frequency is over 30mhz (and less than 64mhz),  
// then should be injected into T2 pin 1 directly, bypassing the 30mhz LPF at L1,2,3,4
// Use the encoder to adjust the VFO until zero beat is heard
// We place the BFO in the center of the 12mhz filter passband so zero beat is easily heard.
// Save the value of "calibration" that has been found to eeprom.
// This calibrates all three oscillators from the si5351 in one go, and does so with great accuracy.
// The LCD display shows the assumed frequency of vcoa, nominally 875mhz.
// Untested and may be a bug or two (though I use something similar on my raduino).

void calibrateExample(unsigned long freqref) {
    short calibration = 0;
    unsigned long clk0 = 11998000;                 //  BFO at center of 12mhz crystal filter in hz
    unsigned long clk1 = clk0 + 44995000;      //  clk0 + the center of the 45mhz crystal filter
    unsigned long clk2 = freqref + 44995000;  //  A high side VFO
    while (! btnDown() )   {                                // Press the button when zero beat is acheived
        calibration = calibrtion + 10*enc_read();      // Rotate encoder for zero beat
        lcd.setCursor(0,0);    lcd.print(875000000 + calibration); lcd.print("  ");
        si5351_setcalibration(calibration);
        si5351bx_setfreq(0, clk0);
        si5351bx_setfreq(1, clk1);
        si5351bx_setfreq(2, clk2); 
    }
}



On Thu, Jul 19, 2018 at 02:32 PM, John Malone wrote:

I have a 50mh signal source, can I use it to calibrate the v4 ubitx board?

Re: V4.3 arduino code description... #arduino

Jerry Gaffke
 

Don't use it much either, I also find it cryptic.
But it's very handy in macros, the *..h files are full of the ternary operator.

I'm a luddite myself when it comes to a fancy user interface for no particular reason.
The KD1JV ATSprint/MTR rigs with their button interface are quite usable,
and considerably more robust than anything with an ebay mechanical encoder. 

Jerry



On Thu, Jul 19, 2018 at 03:33 PM, ajparent1/KB1GMX wrote:
Its one I never use as it make code less readable.  As a result the brain locked.
It was just to cryptic for me.