¿ªÔÆÌåÓý

BFO Value in sbitx hw_settings.ini #sBitxDevel #sbitx_v2 #sBITX_v3 #sBitx


 

Has anyone investigated the impact of changing the BFO values in the hw_settings.ini file?? Are all set to?bfo_freq=40035000?? Could this value be used to fine-tune the frequency accuracy of the sbitx?

I have limited access to my sbitx due to medical issues, so have not been able to test for myself.

73
Evan
AC9TU


 

Hi Evan

I tested this earlier in the week by making changes to the frequency and did not see any measurable change. The reason may be that it is in sbix.c on line 69

int bfo_freq = 40035000;




-JJ


 

Hi JJ,

Thank you for the response.? I noted that line (it is 58 in the version I looked at from my V3) and also found line 898:

static int hw_settings_handler(void* user, const char* section,?
? ? ? ? ? ? const char* name, const char* value)
{
? char cmd[1000];
? char new_value[200];
?
?
if (!strcmp(name, "f_start"))
band_power[hw_init_index].f_start = atoi(value);
if (!strcmp(name, "f_stop"))
band_power[hw_init_index].f_stop = atoi(value);
if (!strcmp(name, "scale"))
band_power[hw_init_index++].scale = atof(value);
?
if (!strcmp(name, "bfo_freq"))
bfo_freq = atoi(value);
}

I assumed that the value was the default and would be updated if the bfo_freq was found in the ini file.? However, the code may be orphaned and not being used.

73
Evan
AC9TU



 

Upon further investigation, the BFO value from the hw_settings.ini file is used.? Look in sbitx.c around line 903?

/*?
This is the one-time initialization code?
*/
void setup(){
?
read_hw_ini();
?
//setup the LPF and the gpio pins
pinMode(TX_LINE, OUTPUT);
pinMode(TX_POWER, OUTPUT);
pinMode(LPF_A, OUTPUT);
pinMode(LPF_B, OUTPUT);
pinMode(LPF_C, OUTPUT);
pinMode(LPF_D, OUTPUT);
? digitalWrite(LPF_A, LOW);
? digitalWrite(LPF_B, LOW);
? digitalWrite(LPF_C, LOW);
? digitalWrite(LPF_D, LOW);
digitalWrite(TX_LINE, LOW);
digitalWrite(TX_POWER, LOW);
?
fft_init();
vfo_init_phase_table();
? setup_oscillators();

read_hw_ini is performed before setup_oscillators.? The initial value would be overwritten.

I believe that the BFO impacts the frequency used, so it could be used to calibrate.? The potential issue is misalignment with the 40MHz crystal filter.? Since the bandwidth is 25kHz, this should have minimal impact.? Again, I do not have access to my sbitx to validate.

73
Evan
AC9TU


 

JJ,
We use a temperature compensated crystal oscillator as a frequency standard for the Si5351. This is why frequency calibration is not required for the sbitx.
The change in bfo_frequency is will shift the frequency, however, the local oscillator and the bfo frequency interact such that lo_freq - bfo_freq = signal_freq. If you increase one the other will decreasee so that they subtract back to the signal freqeuncy.
- f

On Sat, Mar 30, 2024, 5:45 PM Evan Hand <elhandjr@...> wrote:
Upon further investigation, the BFO value from the hw_settings.ini file is used.? Look in sbitx.c around line 903?

/*?
This is the one-time initialization code?
*/
void setup(){
?
read_hw_ini();
?
//setup the LPF and the gpio pins
pinMode(TX_LINE, OUTPUT);
pinMode(TX_POWER, OUTPUT);
pinMode(LPF_A, OUTPUT);
pinMode(LPF_B, OUTPUT);
pinMode(LPF_C, OUTPUT);
pinMode(LPF_D, OUTPUT);
? digitalWrite(LPF_A, LOW);
? digitalWrite(LPF_B, LOW);
? digitalWrite(LPF_C, LOW);
? digitalWrite(LPF_D, LOW);
digitalWrite(TX_LINE, LOW);
digitalWrite(TX_POWER, LOW);
?
fft_init();
vfo_init_phase_table();
? setup_oscillators();

read_hw_ini is performed before setup_oscillators.? The initial value would be overwritten.

I believe that the BFO impacts the frequency used, so it could be used to calibrate.? The potential issue is misalignment with the 40MHz crystal filter.? Since the bandwidth is 25kHz, this should have minimal impact.? Again, I do not have access to my sbitx to validate.

73
Evan
AC9TU


 

On Sat, Mar 30, 2024 at 07:24 AM, Ashhar Farhan wrote:
JJ,
We use a temperature compensated crystal oscillator as a frequency standard for the Si5351. This is why frequency calibration is not required for the sbitx.
The change in bfo_frequency is will shift the frequency, however, the local oscillator and the bfo frequency interact such that lo_freq - bfo_freq = signal_freq. If you increase one the other will decreasee so that they subtract back to the signal freqeuncy.
- f
Thank you for providing the explanation.

-JJ