¿ªÔÆÌåÓý

Date

Re: DDS VFO.

Jack Purdum
 

Just make sure the vendor tells you the DDS chip that it's using and the name of the library that is used with the microcontroller you are using.

Jack, W8TEE



From: philip yates <phil@...>
To: [email protected]
Sent: Friday, April 21, 2017 12:31 PM
Subject: [BITX20] DDS VFO.

Anyone tried one of these?
Has connections for S meter, and TX status. Not sure how you drive the S meter tho.
Like the idea of having the voltage displayed as well.
Just need a circuit, and see if its within my capabilities.
Code has got me flustered for now.

Phil-G7BZD




Re: Antenna Tuner for BITX40 similar to Elecraft KX2?

 

The Elecraft T1 automatic tuner is really nice. I recently built one from a kit and used it with my Xiegu X1M Platinum. The tuner is pocket-sized, runs on a 9V battery, is rated for up to 20 watts (though it has been tested at "backpacker amp" level by Elecraft for brief periods and held up), and tunes up really quickly.

Rich
KC8MWG


On Friday, April 21, 2017 1:30 PM, Daniel Acevedo <dan.ace86@...> wrote:


I just wanted to know if there is anything out there in a small form factor. I like the idea of an antenna tuner, either manual or automatic, that can fit inside a small enclosure similar to the boxes we have seen here in the forums.



Antenna Tuner for BITX40 similar to Elecraft KX2?

 

I just wanted to know if there is anything out there in a small form factor. I like the idea of an antenna tuner, either manual or automatic, that can fit inside a small enclosure similar to the boxes we have seen here in the forums.


W3NQN output bandpass filters?

 

I just now skimmed over the QST May and June 1998 band pass filter articles by W3NQN. I only understood a little of Ed's design but am struggling to learn more. Copies of the 2017 ARRL Handbook and EMRFD (scanned reprint) will soon be on my desk. I am still thinking in terms of broad function blocks. Do y'all think a set of Ed's filters between amplifier and antenna feedline would take care of the spurs / harmonics / mean nasty things from a uBitX or a Minima?


DDS VFO.

philip yates
 

Anyone tried one of these?

Has connections for S meter, and TX status. Not sure how you drive the S meter tho.

Like the idea of having the voltage displayed as well.

Just need a circuit, and see if its within my capabilities.

Code has got me flustered for now.


Phil-G7BZD


Re: Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

 

It is a very good VFO with almost all facilities?

On Fri, Apr 21, 2017 at 9:46 PM, Juan Carlos Berberena Glez <cubanqrp@...> wrote:
Hi Jack
Thank you for you comment.
This is a really niece project but it is out of my goal because it is out of the regular budget I use to duplicate any affordable and easy to implement device for my friends in Cuba.
Maybe I will try to do it in a future for fun but at this time the 1602A LCD display have to be our Trojan horse with the Arduino Nano.
Please if you have some information I can review in relation with the synthesizer using Si5351A, please let me know I will appreciate a lot.
Have a Good Weekend
73's Jc

¡°If you have a penny and I have a penny and we exchange pennies, you still have one cent and I still have one cent.? But if you have an idea and I have an idea and we exchange ideas, you now have two ideas and I now have two ideas.¡±?

Mr. Juan Carlos Berberena Gonzalez, BSc.
WJ6C exCO6BG?


? -----------please check it out-----------






2017-04-21 11:42 GMT-04:00 Jack Purdum via Groups.Io <econjack@...>:
Very nice, JuanCarlos! You must have a ton of work in fabricating your PCB. I'm making a similar TFT display using the Mega Pro Mini (see board) to keep the footprint smaller, but using an encoder for the menuing system instead of push buttons. I'm also trying to bring out all of the I/O pins to make hacking it a bit easier.

Keep us posted!!

Jack, W8TEE



From: JuanCarlos Berberena Gonzalez <juancarlos@...>
To: [email protected]
Sent: Friday, April 21, 2017 11:15 AM
Subject: [BITX20] Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

Hi Guys
Please take a look and enjoy it

Qrv's
73's?
Jc





Re: Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

 

Hi Jack
Thank you for you comment.
This is a really niece project but it is out of my goal because it is out of the regular budget I use to duplicate any affordable and easy to implement device for my friends in Cuba.
Maybe I will try to do it in a future for fun but at this time the 1602A LCD display have to be our Trojan horse with the Arduino Nano.
Please if you have some information I can review in relation with the synthesizer using Si5351A, please let me know I will appreciate a lot.
Have a Good Weekend
73's Jc

¡°If you have a penny and I have a penny and we exchange pennies, you still have one cent and I still have one cent.? But if you have an idea and I have an idea and we exchange ideas, you now have two ideas and I now have two ideas.¡±?

Mr. Juan Carlos Berberena Gonzalez, BSc.
WJ6C exCO6BG?


? -----------please check it out-----------






2017-04-21 11:42 GMT-04:00 Jack Purdum via Groups.Io <econjack@...>:

Very nice, JuanCarlos! You must have a ton of work in fabricating your PCB. I'm making a similar TFT display using the Mega Pro Mini (see board) to keep the footprint smaller, but using an encoder for the menuing system instead of push buttons. I'm also trying to bring out all of the I/O pins to make hacking it a bit easier.

Keep us posted!!

Jack, W8TEE



From: JuanCarlos Berberena Gonzalez <juancarlos@...>
To: [email protected]
Sent: Friday, April 21, 2017 11:15 AM
Subject: [BITX20] Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

Hi Guys
Please take a look and enjoy it

Qrv's
73's?
Jc




Re: Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

Jack Purdum
 

Very nice, JuanCarlos! You must have a ton of work in fabricating your PCB. I'm making a similar TFT display using the Mega Pro Mini (see board) to keep the footprint smaller, but using an encoder for the menuing system instead of push buttons. I'm also trying to bring out all of the I/O pins to make hacking it a bit easier.

Keep us posted!!

Jack, W8TEE



From: JuanCarlos Berberena Gonzalez <juancarlos@...>
To: [email protected]
Sent: Friday, April 21, 2017 11:15 AM
Subject: [BITX20] Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

Hi Guys
Please take a look and enjoy it
https://drive.google.com/drive/u/0/folders/0B9iIbUL3INnEcHcwcWhaeTBiWE0
Qrv's
73's?
Jc



Re: Proper carrier oscillator frequency

 

I suspect the primary confusion Dave is having is that the passband of the filter is not at exactly 12mhz as suggested by that wiki entry. ?There should be a note at the bottom stating that the filter uses the series resonant frequency of the crystals, which occurs a few khz lower in frequency than the parallel resonant frequency used by the BFO: ? ?? ? ?Inspection of the Bitx40 schematic will make it obvious that the signal must pass through each of the four crystals, and will be strongest at the series resonant frequency. ?Whereas in the BFO, the crystal shorts out any oscillation at the base of Q10 when at series resonance, it is the high impedance parallel resonance point of the crystal where Q10 will choose to oscillate. ?So the BFO is a couple khz higher than the center of the filter passband, the BFO is adjusted slightly down in frequency from 12mhz by C102. ?The frequency marked on the crystal case is typically the parallel resonant frequency.

I could be wrong as I haven't yet butted heads with physical reality, sweeping my filter passband and measuring BFO frequencies.


Jerry, KE7ER


On Thu, Apr 20, 2017 at 11:29 pm, Noel wrote:

See the Wiki... /g/BITX20/wiki/USB-LSB-operation? it might help.

BFO set to 11.997 Mhz, with filter at 12MHz, a LO of 4.900 MHz will give 7.100 MHz LSB.

?


Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351

 

Hi Guys

Please take a look and enjoy it

https://drive.google.com/drive/u/0/folders/0B9iIbUL3INnEcHcwcWhaeTBiWE0

Qrv's

73's?

Jc


Re: bitx40 VFO

Jack Purdum
 

Billy:

I know that no one sits there spinning their tuning encoder 24/7, stopping every 2.1 seconds along the way. But if someone did do that, the EEPROM may become suspect after 139 days. I would suggest the following small changes:

#define EPAUSE ? ?60000L ? ?// Place after the #include preprocessor directives...


// then in loop()

? ? ? if(timepassed +?EPAUSE < millis()){ ?// If I hang around for more than a minute...

This would make it pretty easy for someone to change the I'm-just-tuning-around delay to some other value that better-suits their tuning preferences. Sometimes I paused for several seconds listening to a transmission before moving on. Most of the time, I would not need to preserve that particular frequency in EEPROM as I do a hunt-and-pounce type of movement.

Jack, W8TEE


From: Billy Shepherd <billy.shepherd@...>
To: [email protected]
Sent: Tuesday, April 4, 2017 12:36 PM
Subject: Re: [BITX20] bitx40 VFO

Also, here is the code that worked or my Arduino Mega

/*
Main code by Richard Visokey AD7C - www.ad7c.com
Revision 2.0 - November 6th, 2013
*/

// Include the library code
#include <LiquidCrystal.h>
#include <rotary.h>
#include <EEPROM.h>

//Setup some items
#define W_CLK 8?? // Pin 8 - connect to AD9850 module word load clock pin (CLK)
#define FQ_UD 9?? // Pin 9 - connect to freq update pin (FQ)
#define DATA 10?? // Pin 10 - connect to serial data load pin (DATA)
#define RESET 11? // Pin 11 - connect to reset pin (RST)
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
Rotary r = Rotary(2,3); // sets the pins the rotary encoder uses.? Must be interrupt pins.
LiquidCrystal lcd(12, 13, 7, 6, 5, 4); // I used an odd pin combination because I need pin 2 and 3 for the interrupts.
int_fast32_t rx=7200000; // Starting frequency of VFO
int_fast32_t rx2=1; // variable to hold the updated frequency
int_fast32_t increment = 10; // starting VFO update increment in HZ.
int buttonstate = 0;
String hertz = "10 Hz";
int? hertzPosition = 5;
byte ones,tens,hundreds,thousands,tenthousands,hundredthousands,millions ;? //Placeholders
String freq; // string to hold the frequency
int_fast32_t timepassed = millis(); // int to hold the arduino miilis since startup
int memstatus = 1;? // value to notify if memory is current or old. 0=old, 1=current.





int ForceFreq = 1;? // Change this to 0 after you upload and run a working sketch to activate the EEPROM memory.? YOU MUST PUT THIS BACK TO 0 AND UPLOAD THE SKETCH AGAIN AFTER STARTING FREQUENCY IS SET!




void setup() {
? pinMode(A0,INPUT); // Connect to a button that goes to GND on push
? digitalWrite(A0,HIGH);
? lcd.begin(16, 2);
? attachInterrupt(0,MyIsr,CHANGE);
attachInterrupt(1,MyIsr,CHANGE);
?
? pinMode(FQ_UD, OUTPUT);
? pinMode(W_CLK, OUTPUT);
? pinMode(DATA, OUTPUT);
? pinMode(RESET, OUTPUT);
? pulseHigh(RESET);
? pulseHigh(W_CLK);
? pulseHigh(FQ_UD);? // this pulse enables serial mode on the AD9850 - Datasheet page 12.
? lcd.setCursor(hertzPosition,1);???
? lcd.print(hertz);
?? // Load the stored frequency?
? if (ForceFreq == 0) {
??? freq = String(EEPROM.read(0))+String(EEPROM.read(1))+String(EEPROM.read(2))+String(EEPROM.read(3))+String(EEPROM.read(4))+String(EEPROM.read(5))+String(EEPROM.read(6));
??? rx = freq.toInt();?
? }
}


void loop() {
? if (rx != rx2){???
??????? showFreq();
??????? sendFrequency(rx);
??????? rx2 = rx;
????? }
?????
? buttonstate = digitalRead(A0);
? if(buttonstate == LOW) {
??????? setincrement();???????
??? };

? // Write the frequency to memory if not stored and 2 seconds have passed since the last frequency change.
??? if(memstatus == 0){??
????? if(timepassed+2000 < millis()){
??????? storeMEM();
??????? }
????? }??
}


void MyIsr(void) {
? unsigned char result = r.process();
? if (result) {???
??? if (result == DIR_CW){rx=rx+increment;}
??? else {rx=rx-increment;};??????
????? if (rx >=30000000){rx=rx2;}; // UPPER VFO LIMIT
????? if (rx <=1000000){rx=rx2;}; // LOWER VFO LIMIT
? }
}



// frequency calc from datasheet page 8 = <sys clock> * <frequency tuning word>/2^32
void sendFrequency(double frequency) {?
? int32_t freq = frequency * 4294967295/125000000;? // note 125 MHz clock on 9850.? You can make 'slight' tuning variations here by adjusting the clock frequency.
? for (int b=0; b<4; b++, freq>>=8) {
??? tfr_byte(freq & 0xFF);
? }
? tfr_byte(0x000);?? // Final control byte, all 0 for 9850 chip
? pulseHigh(FQ_UD);? // Done!? Should see output
}
// transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
void tfr_byte(byte data)
{
? for (int i=0; i<8; i++, data>>=1) {
??? digitalWrite(DATA, data & 0x01);
??? pulseHigh(W_CLK);?? //after each bit sent, CLK is pulsed high
? }
}

void setincrement(){
? if(increment == 10){increment = 50; hertz = "50 Hz"; hertzPosition=5;}
? else if (increment == 50){increment = 100;? hertz = "100 Hz"; hertzPosition=4;}
? else if (increment == 100){increment = 500; hertz="500 Hz"; hertzPosition=4;}
? else if (increment == 500){increment = 1000; hertz="1 Khz"; hertzPosition=6;}
? else if (increment == 1000){increment = 2500; hertz="2.5 Khz"; hertzPosition=4;}
? else if (increment == 2500){increment = 5000; hertz="5 Khz"; hertzPosition=6;}
? else if (increment == 5000){increment = 10000; hertz="10 Khz"; hertzPosition=5;}
? else if (increment == 10000){increment = 100000; hertz="100 Khz"; hertzPosition=4;}
? else if (increment == 100000){increment = 1000000; hertz="1 Mhz"; hertzPosition=6;}?
? else{increment = 10; hertz = "10 Hz"; hertzPosition=5;};?
?? lcd.setCursor(0,1);
?? lcd.print("??????????????? ");
?? lcd.setCursor(hertzPosition,1);
?? lcd.print(hertz);
?? delay(250); // Adjust this delay to speed up/slow down the button menu scroll speed.
};

void showFreq(){
??? millions = int(rx/1000000);
??? hundredthousands = ((rx/100000)%10);
??? tenthousands = ((rx/10000)%10);
??? thousands = ((rx/1000)%10);
??? hundreds = ((rx/100)%10);
??? tens = ((rx/10)%10);
??? ones = ((rx/1)%10);
??? lcd.setCursor(0,0);
??? lcd.print("??????????????? ");
?? if (millions > 9){lcd.setCursor(1,0);}
?? else{lcd.setCursor(2,0);}
??? lcd.print(millions);
??? lcd.print(".");
??? lcd.print(hundredthousands);
??? lcd.print(tenthousands);
??? lcd.print(thousands);
??? lcd.print(".");
??? lcd.print(hundreds);
??? lcd.print(tens);
??? lcd.print(ones);
??? lcd.print(" Mhz? ");
??? timepassed = millis();
??? memstatus = 0; // Trigger memory write
};

void storeMEM(){
? //Write each frequency section to a EPROM slot.? Yes, it's cheating but it works!
?? EEPROM.write(0,millions);
?? EEPROM.write(1,hundredthousands);
?? EEPROM.write(2,tenthousands);
?? EEPROM.write(3,thousands);
?? EEPROM.write(4,hundreds);??????
?? EEPROM.write(5,tens);
?? EEPROM.write(6,ones);??
?? memstatus = 1;? // Let program know memory has been written
};



From: [email protected] [[email protected]] on behalf of Adam Sliwa [sq9tla@...]
Sent: Wednesday, March 01, 2017 1:52 AM
To: [email protected]
Subject: [BITX20] bitx40 VFO

I?bought you?trx without DDS.? I'm making DDS witch Arduino Nano and?AD8950 module. I have?any questions.
What is?ferquency VFO (4.8 - 5 MHz for 7-7.2 MHz) ?
How many ?volts should?signal output DDS?
Output signal from VFO on the board? should connect GND or? breake path ?

Regards , adam



Re: Proper carrier oscillator frequency

 

Noel, thanks for the link, but it seems to confirm what I thought - for LSB, the carrier osc has to be above the filter bandpass. In the link you provide, the LSB BFO freq is 12.001 MHz, and the USB freq is 11.999 MHz, assuming a 1KHz modulation tone.

It seems that there is more going on here than is obvious, so I'm hoping someone else will weigh in and help me understand why the carrier osc would be lower than the filter bandpass edge, instead of higher.


Re: 'Small as possible BITX40'

 

¿ªÔÆÌåÓý

I sent you the pictures.

This is the way they should have done the PCB.

My regulator came hanging out, all bent up?

The 47 Ohm / 1W resistor takes some of the heat and with the cap really helps the regulator for noisy inputs.

Pins 1 and 2 seem to both be 12V, I removed wire and terminal on 2.

Mike,WA6ISP

On 4/20/2017 10:32 PM, Daniel Norris wrote:

Hi Mike,

I looked up your post, but couldn't get your Dropbox link to work to see the photos.? Are they posted elsewhere?

--Dan

On Thu, Apr 20, 2017, 7:41 AM Michael Hagen <motdog@...> wrote:
Hello,
I have pictures of what I did with regulator.? Moved the regulator.
Added a resistor and Cap too.

Make the cap as large as you have.? I used only 3.3 uf, what I had.


My post was #24201

Mike, WA6ISP





Re: raduino programming

 

Ingvar,

please follow the instructions in the WIKI to install the SI5351 library to the correct location:

/g/BITX20/wiki/Retrieving-the-Si5351A-Library


73, Allard PE1NWL


Re: raduino programming

Adrian
 

¿ªÔÆÌåÓý

Do you have the library installed?

Adrian


On 21 Apr 2017, at 6:22 pm, bengt-ingvar.andersson@... wrote:

I tried to compile a mod. raduino program version of 1.06 with IDE.

The mod. is for 10 turn pot.

I got an fatal error missing routine for SI5153.

Does anyone know how ?get the routine in the IDE.

Thanks in advance SM6ERS / Ingvar


raduino programming

 

I tried to compile a mod. raduino program version of 1.06 with IDE.

The mod. is for 10 turn pot.

I got an fatal error missing routine for SI5153.

Does anyone know how ?get the routine in the IDE.

Thanks in advance SM6ERS / Ingvar


Re: Proper carrier oscillator frequency

 

See the Wiki... /g/BITX20/wiki/USB-LSB-operation? it might help.

BFO set to 11.997 Mhz, with filter at 12MHz, a LO of 4.900 MHz will give 7.100 MHz LSB.
--
73 de Noel, ZL1NC


Re: uBitx Prototype (PCB)

 

If you¡¯re comparing prices from different , check out http://PCBShopper.com. You enter your board¡¯s specs, the quantity you want and how fast you want it, and it shows you prices from 25 different manufacturers including Dirty PCBs, Seeed Studio and the best known manufacturers in Asia, North America and Europe.


Proper carrier oscillator frequency

 

I modified my Raduino sketch to use a rotary encoder, with the push switch stepping through increments from 1 Hz to 1 MHz (I know, a bit of overkill - I'll fix it later). However, I thought that it would be cool to use one of the si5351 clocks as the carrier (12 MHz) oscillator, and added code that allows me to modify that output in the same way as the main VFO. That all works, but I'm really confused about where the carrier oscillator should be set. So, let's assume that the crystal filter has a center frequency of 12 MHz, a bandwidth of 3 KHz,? and our audio range of interest is 300-3000 Hz. Since we are making LSB, the carrier should be set ABOVE the filter bandpass, correct? In this case, the upper edge of the filter would be 12.001500 MHz, and we want our 300 Hz to be at that frequency, so the carrier should be 12.001800 MHz, i.e. 300 Hz above the filter edge. So, when the mixer sees 300 Hz audio, the difference would be 12.001500 MHz. If the audio is 3KHz, then the difference would be 11.998800 Mhz, which would be within the lower filter edge of 11.998500 MHz, and we would get our lower sideband output.

However - I have to set my carrier oscillator on the LOW side of the filter passband to get intelligible LSB output (TX into a dummy load, and using my IC-718 to monitor). I don't have a frequency counter, but using the IC-718 in CW mode, I can hear the carrier oscillator well enough to know that it is pretty darn close to the correct frequency.

So, what am I not getting here? Do the crystal filters have some other passband than I'm assuming? Is my theory off?



Re: 'Small as possible BITX40'

 

Hi Mike,

I looked up your post, but couldn't get your Dropbox link to work to see the photos.? Are they posted elsewhere?

--Dan


On Thu, Apr 20, 2017, 7:41 AM Michael Hagen <motdog@...> wrote:
Hello,
I have pictures of what I did with regulator.? Moved the regulator.
Added a resistor and Cap too.

Make the cap as large as you have.? I used only 3.3 uf, what I had.


My post was #24201

Mike, WA6ISP