¿ªÔÆÌåÓý

KB6QVI: ozqrp.com VFO


 

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?

Joel,?KB6QVI


Jack Purdum
 

Joel:

My B40 is apart, but try these while you wait:


void doTuning(){
?unsigned long newFreq; ? ? ? ?// Not used...remove??
?
?int knob = analogRead(ANALOG_TUNING)-10;
?unsigned long old_freq = frequency; ? ? ? ? ? ? ? ? ? ?// Not used...remove??

if (knob == old_knob) ? ? ? ? ? ? ? ?// New...add
? ? return;

? // the knob is fully on the low end, move down by 10 Khz and wait for 200 msec
?if (knob < 10 && frequency > LOWEST_FREQ) {
? ? ? baseTune = baseTune - 10000L;
? ? ? frequency = baseTune;
? ? ? updateDisplay();
? ? ? setFrequency(frequency);
? ? ? delay(200);
? }?
? // the knob is full on the high end, move up by 10 Khz and wait for 200 msec
? else if (knob > 1010 && frequency < HIGHEST_FREQ) {
? ? ?baseTune = baseTune + 10000L;?
? ? ?frequency = baseTune + 50000L;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? ? ?delay(200);
? }
? // the tuning knob is at neither extremities, tune the signals as usual
? else if (knob != old_knob){
? ? ?frequency = baseTune + (50L * knob);
? ? ?old_knob = knob;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? }
}

I have no idea if this will work, but essentially is says that if we haven't move the tuning knob, don't bother updating the display. Let me know what happens.

Jack, W8TEE


From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 2:32 PM
Subject: [BITX20] KB6QVI: ozqrp.com VFO

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?
Joel,?KB6QVI



 

¿ªÔÆÌåÓý

Jack,

As the last digit jitters the frequency jitters also, so it's not the display I'm worried about. It sounds like the person is gargling:-)

Joel?
KB6QVI

On Feb 16, 2017, at 12:06 PM, Jack Purdum via Groups.Io <econjack@...> wrote:

Joel:

My B40 is apart, but try these while you wait:


void doTuning(){
?unsigned long newFreq; ? ? ? ?// Not used...remove??
?
?int knob = analogRead(ANALOG_TUNING)-10;
?unsigned long old_freq = frequency; ? ? ? ? ? ? ? ? ? ?// Not used...remove??

if (knob == old_knob) ? ? ? ? ? ? ? ?// New...add
? ? return;

? // the knob is fully on the low end, move down by 10 Khz and wait for 200 msec
?if (knob < 10 && frequency > LOWEST_FREQ) {
? ? ? baseTune = baseTune - 10000L;
? ? ? frequency = baseTune;
? ? ? updateDisplay();
? ? ? setFrequency(frequency);
? ? ? delay(200);
? }?
? // the knob is full on the high end, move up by 10 Khz and wait for 200 msec
? else if (knob > 1010 && frequency < HIGHEST_FREQ) {
? ? ?baseTune = baseTune + 10000L;?
? ? ?frequency = baseTune + 50000L;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? ? ?delay(200);
? }
? // the tuning knob is at neither extremities, tune the signals as usual
? else if (knob != old_knob){
? ? ?frequency = baseTune + (50L * knob);
? ? ?old_knob = knob;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? }
}

I have no idea if this will work, but essentially is says that if we haven't move the tuning knob, don't bother updating the display. Let me know what happens.

Jack, W8TEE


From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 2:32 PM
Subject: [BITX20] KB6QVI: VFO

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?
Joel,?KB6QVI



Jack Purdum
 

But the function also calls?setFrequency(), which does call the Si5351 routines. The stability of the entire process seems to depend on the analogRead() that sets knob. Given the 10-bit resolution, there's room for some slop in the mapping process. Note how the analogRead() value is expected not to change at all between calls to doTuning() if the user is not changing the pot. The fact that I see -10 after every read tells me there's some slop in the measure. Personally, I'd feel better if we tested the knob using a range (+ or - X) before we say the user has actually changed the frequency.?

If the jitter is constantly moving, we might think it is VFO drift. Your description makes it sound like it's jumping around a central frequency that really isn't changing.

Jack, W8TEE



From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 3:23 PM
Subject: Re: [BITX20] KB6QVI: ozqrp.com VFO

Jack,

As the last digit jitters the frequency jitters also, so it's not the display I'm worried about. It sounds like the person is gargling:-)

Joel?
KB6QVI

On Feb 16, 2017, at 12:06 PM, Jack Purdum via Groups.Io <econjack@...> wrote:

Joel:

My B40 is apart, but try these while you wait:


void doTuning(){
?unsigned long newFreq; ? ? ? ?// Not used...remove??
?
?int knob = analogRead(ANALOG_TUNING)-10;
?unsigned long old_freq = frequency; ? ? ? ? ? ? ? ? ? ?// Not used...remove??

if (knob == old_knob) ? ? ? ? ? ? ? ?// New...add
? ? return;

? // the knob is fully on the low end, move down by 10 Khz and wait for 200 msec
?if (knob < 10 && frequency > LOWEST_FREQ) {
? ? ? baseTune = baseTune - 10000L;
? ? ? frequency = baseTune;
? ? ? updateDisplay();
? ? ? setFrequency(frequency);
? ? ? delay(200);
? }?
? // the knob is full on the high end, move up by 10 Khz and wait for 200 msec
? else if (knob > 1010 && frequency < HIGHEST_FREQ) {
? ? ?baseTune = baseTune + 10000L;?
? ? ?frequency = baseTune + 50000L;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? ? ?delay(200);
? }
? // the tuning knob is at neither extremities, tune the signals as usual
? else if (knob != old_knob){
? ? ?frequency = baseTune + (50L * knob);
? ? ?old_knob = knob;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? }
}

I have no idea if this will work, but essentially is says that if we haven't move the tuning knob, don't bother updating the display. Let me know what happens.

Jack, W8TEE


From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 2:32 PM
Subject: [BITX20] KB6QVI: VFO

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?
Joel,?KB6QVI





 

Hi

I wonder if the tuning control might be less jittery if fed from Nano's AREF Pin 21 output rather than the 5V rail to the high end of the tuning control?

Randy, K7AGE


Inline image 1

On Thu, Feb 16, 2017 at 12:36 PM, Jack Purdum via Groups.Io <econjack@...> wrote:
But the function also calls?setFrequency(), which does call the Si5351 routines. The stability of the entire process seems to depend on the analogRead() that sets knob. Given the 10-bit resolution, there's room for some slop in the mapping process. Note how the analogRead() value is expected not to change at all between calls to doTuning() if the user is not changing the pot. The fact that I see -10 after every read tells me there's some slop in the measure. Personally, I'd feel better if we tested the knob using a range (+ or - X) before we say the user has actually changed the frequency.?

If the jitter is constantly moving, we might think it is VFO drift. Your description makes it sound like it's jumping around a central frequency that really isn't changing.

Jack, W8TEE



From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 3:23 PM
Subject: Re: [BITX20] KB6QVI: VFO

Jack,

As the last digit jitters the frequency jitters also, so it's not the display I'm worried about. It sounds like the person is gargling:-)

Joel?
KB6QVI

On Feb 16, 2017, at 12:06 PM, Jack Purdum via Groups.Io <econjack@...> wrote:

Joel:

My B40 is apart, but try these while you wait:


void doTuning(){
?unsigned long newFreq; ? ? ? ?// Not used...remove??
?
?int knob = analogRead(ANALOG_TUNING)-10;
?unsigned long old_freq = frequency; ? ? ? ? ? ? ? ? ? ?// Not used...remove??

if (knob == old_knob) ? ? ? ? ? ? ? ?// New...add
? ? return;

? // the knob is fully on the low end, move down by 10 Khz and wait for 200 msec
?if (knob < 10 && frequency > LOWEST_FREQ) {
? ? ? baseTune = baseTune - 10000L;
? ? ? frequency = baseTune;
? ? ? updateDisplay();
? ? ? setFrequency(frequency);
? ? ? delay(200);
? }?
? // the knob is full on the high end, move up by 10 Khz and wait for 200 msec
? else if (knob > 1010 && frequency < HIGHEST_FREQ) {
? ? ?baseTune = baseTune + 10000L;?
? ? ?frequency = baseTune + 50000L;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? ? ?delay(200);
? }
? // the tuning knob is at neither extremities, tune the signals as usual
? else if (knob != old_knob){
? ? ?frequency = baseTune + (50L * knob);
? ? ?old_knob = knob;
? ? ?setFrequency(frequency);
? ? ?updateDisplay();
? }
}

I have no idea if this will work, but essentially is says that if we haven't move the tuning knob, don't bother updating the display. Let me know what happens.

Jack, W8TEE


From: Joel Caulkins <caulktel@...>
To: [email protected]
Sent: Thursday, February 16, 2017 2:32 PM
Subject: [BITX20] KB6QVI: VFO

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?
Joel,?KB6QVI






 

hi Joe, I soldered a 104 ?Ceramic cap across the pins on the actual Raduino board, The pins connect to the purple and yellow wires that run to the tuning control variable resistor .. I found that it worked better on the actual pins on the Raduino than on the variable resistor, It's now cured the last digit dancing around ...


Regards

Marc 'Gw0wvl' ..

On Thu, 16 Feb 2017 at 19:32, Joel Caulkins
<caulktel@...> wrote:

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?

Joel,?KB6QVI


 

Randy,


AREF is an input only pin, for providing a more stable (or non-standard) voltage reference for the ADC measurement systems (analogRead() calls). The datasheet for the atmega328 warns that a high-Z meter can be used to read the AREF pin, but to otherwise only use capacitive loads. The documents are silent on what might happen if one were to use the AREF pin as a current source for the tuning pot...I'd suspect that at best, the ADC measurements controlling the tune funciton would get squirrelly.


r/

Chris


 

Chris,

Thanks, I only looked at the pinout.

Randy, K7AGE


On Thu, Feb 16, 2017 at 1:53 PM, Christopher Horner <chris.horner@...> wrote:

Randy,


AREF is an input only pin, for providing a more stable (or non-standard) voltage reference for the ADC measurement systems (analogRead() calls). The datasheet for the atmega328 warns that a high-Z meter can be used to read the AREF pin, but to otherwise only use capacitive loads. The documents are silent on what might happen if one were to use the AREF pin as a current source for the tuning pot...I'd suspect that at best, the ADC measurements controlling the tune funciton would get squirrelly.


r/

Chris



 

¿ªÔÆÌåÓý

Thanks Marc, I'll give that a try.

Joel?
KB6QVI

On Feb 16, 2017, at 1:08 PM, Marc Jones via Groups.Io <gw0wvl@...> wrote:

hi Joe, I soldered a 104 ?Ceramic cap across the pins on the actual Raduino board, The pins connect to the purple and yellow wires that run to the tuning control variable resistor .. I found that it worked better on the actual pins on the Raduino than on the variable resistor, It's now cured the last digit dancing around ...


Regards

Marc 'Gw0wvl' ..

On Thu, 16 Feb 2017 at 19:32, Joel Caulkins
<caulktel@...> wrote:

I just ordered one of these to use on my BitX40, the Raduino just isn't working out for me, too much last digit jitter.?

Joel,?KB6QVI