Bill's VFO

VK3ZYZ

Moderator
Here is the so-far progress of a VFO for you, Bill.
I'm still waiting on help to get all 3 outputs running independently.
First one is variable, second 36Mhz, and the third 9Mhz.

The "normal" bands have an orange display..
40MBand.jpg
While the 10th band is full coverage, and goes red.
TopOfBand.jpg
BottomOfBand.jpg
The colours can be changed if required.
 

Attachments

Last edited:

BillC

Active member
HI Denys . The VFO looks great . It will form the basis of a very handy Receiver . I will construct a simpler RF amplifier preselect for this receiver project .Thanks for your help . I have not progressed very far with the stepper motor driver , I mounted the Heatsink and FETs , cannot work out whether the cmos 4070 will produce a suitable drive voltage for the gates of the HUF----- power fets when commutating . I might just try it out first and see what happens . If it wont go I might have to put in a totem pole driver .See ya .
 

BillC

Active member
Hi Denys. Just had an idea abt.. the VFO. If it proves to be too tricky to produce all three outputs from the VFO. board we could use another oscillator board to supply both the down mixer 36 MHZ and the bfo. 9 MHZ . The cost of the extra board would not be too much in the scheme of things, good luck, seasons greetings to you and yours. ps. I know it would be good to overcome the challenge to get all outputs working as desired. See you down the track.
 

VK3ZYZ

Moderator
With the code that works at the moment, the VFO can be used, and the 36Mhz generated, and that sent to a divide by 4 to produce the 9Mhz.
 

BillC

Active member
We could do that . I have a 9 mhz crystal here .I could use that and multiply 2x2 in a single stage after the oscillator It should have enough power to drive the 1496 mixers as used in the down converter and SSB demodulator ,. I shall call on the phone thanks.
 

VK3ZYZ

Moderator
I was trying top get an Arduino Uno (or Nano) VFO running today as it will output the 3 signals needed, but could not get it over a bit under 43Mhz.
The output frequency would start again from a low frequency then ramp up.
The problem is the code uses 32 bit numbers so making their (unsigned) range from 0 to 4,294,967,295. Then the Si5351 code multiplies the frequency x 100, so the max frequency is 42.94967295Mhz. Just a bit under 43Mhz!
I've got to find out how to use 64 bit numbers.
 

BillC

Active member
Denys. Thanks for the parts today.I have made a third hand to help hold the little beggars in place , they like to jump out of the packaging when released and fly off into outer space . Images of the third hand.IMG_3863.JPG
 

BillC

Active member
The third hand works really well , getting most parts in good alignment .Could you look on your board R6 is on both sides of the bord The R6 on the rear side is screened in abt a1 Watt size ,not shure what it should be ,Cheers.
 

VK3ZYZ

Moderator
The big R6 is a 120R 600mW resistor for the back light. It should be R5. And on the circuit, it is marked as 150R but I did not have one. 120R works ok. Here I've used a 120R 1% for anyone not used to the extra band.
R5(R6)120R.png
Oh, when I first built this board, I did not have the connectors. That is why the encoder is soldered on and not using a plug and socket.

The other real R6 is a 1206 surface mount 10K.
Another note, there is not enough clearance between VR1 and the 2 pin connector CN7 so VR1 needs to be rotated 180 degrees.
RotateVR1.jpg
These, among a couple of other points, have been fixed on an updated board drawn but not made as yo]et. I may do another run is there proves to be enough interest in these boards and will replace any V1 boards with the V2 one.

http://www.sadarc.org/xenforo/uploa...ptive-step-rate-and-vernier-display.11/page-2 post #29 has some more notes. Also, I've added the above 2 pictures to that page.
 
Last edited:

BillC

Active member
Thanks Denys , for the info . Also as this is my first time with surface mount I am unsure of polarity marking of the electro caps. Is the orange bar + or - cant' quite make it out on your image No 1/ Thanks for the images it helps heaps bye.
 

BillC

Active member
Wow Denys. That looks really good . I can feel another receiver coming on . I shall phone soon to discuss topics Regards.
 

VK3ZYZ

Moderator
I have it fixed now :)
It used to max out as 32bits is 4,294,967,295, and the frequency has to be multiplies by 100 for the Si5351 library, so that is a maximum frequency of 42.94967295Mhz.

Moved some calcs to 64 bit.

Was...
// set the frequency
clockgen.set_freq(((frequency+offset)*100), SI5351_CLK0); // set the VFO frequency

Now....
// set the frequency
uint64_t VFO_frq = frequency; // convert to 64 bits to suit Si5351 lib
clockgen.set_freq(((VFO_frq+offset)*100), SI5351_CLK0); // set the VFO frequency

I will need to update all the others in use too at some time.
For instance, the 6M FM828 cheats in that the RX VFO is generated at half the frequency it should be. It can be fixed now, even though it works well as it is.
 

VK3ZYZ

Moderator
Hi Denys,

Can you post the code you are having trouble with going higher than 42 Mhz.

Ray
Thanks Ray.
The Nano VFO is working ok now so the problem I am still having is to get all 3 outputs running on the ESP32.
Ideally, I'd like to have the Etherkit Si5351 code working on the ESP32 as that is what I use on the Arduinos. But it appears the combination of ESP32/Si5351/Wire does not like to play together.
So, if "BillsBasicVFO" code would run on the ESP32, that would be great. All that is needed to compile that is to change the port allocations.
 

VK3YNV

Moderator
I was planning to rework the code for the deluxe VFO, i'm thinking of making an RF siggen version if I can work out the attenuator side of things.
So I'll see if I can port BillsBasicVFO to the ESP32 version while I'm at it.

Good news, with the uint64_t changes, did you get all of the three VFO's working with the nano but not the ESP32?
 

VK3ZYZ

Moderator
Yes, all 3 are working.

As the other 2 are fixed, I just went straight to 64bits..

// in 0.01 Hz to suit Si5351 lib.
uint64_t mixer2 = 3600000000; // second mixer
uint64_t bfo = 900000000; // bfo

Then...
clockgen.set_freq(mixer2, SI5351_CLK1);
clockgen.set_freq(bfo, SI5351_CLK2);


But it is easier to keep the VFO in Hz as 32bits to simplify all the stepping, limiting and display stuff, and change it to 64bits at setting time.
 
Top