Simple SSB Rig: Part 2 - VFO, Arduino Code, Si5351 Calibration

Поділитися
Вставка
  • Опубліковано 30 лис 2024

КОМЕНТАРІ • 82

  • @acestudioscouk-Ace-G0ACE
    @acestudioscouk-Ace-G0ACE 3 роки тому +2

    Wow, quick progress! Thanks for the detailed explanation and with the algebra which was never my strong point at school...and that was 50years ago!

  • @mariaviklund4546
    @mariaviklund4546 6 місяців тому

    Wow, this is amazing. As someone previously said, this is something i have been looking for. Awesome job Sir.

  • @genericdynamics6618
    @genericdynamics6618 3 роки тому +3

    This is basically what i have been looking for months. Thank god i subscribed to the channel a while ago so this could pop up in my subs section! 😂

  • @curtstacy779
    @curtstacy779 3 роки тому +1

    Looking good Charlie, Thank you for the extra math explanation. I can always use that. I have received my first HF signals with my DC receiver over the last few weeks on 80, 40, and 20 meters. it feels good, I'm coming up to speed :) of course not without a couple of bugs but I'll get those ironed out. I can't thank you enough for all your help, it would have taken ages to get this far on my own.

  • @khalidtarawneh2289
    @khalidtarawneh2289 3 роки тому +2

    Can't thank you enough for all the detail and info
    cheers

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      My pleasure Khalid.

    • @khalidtarawneh2289
      @khalidtarawneh2289 3 роки тому

      @@CharlieMorrisZL2CTM Built the VFO and all seems going well, except that when pin 5 is grounded i get a Continuous flicker between USB/LSB and TX/RX, Do you think adding some resistance with the toggle switch might help ?
      I will be building this as a receiver only hence I'm only using Arduino regular power without the 13.8v source and Voltage divider
      Cheers n 73's

  • @diddleize
    @diddleize 3 роки тому +1

    To protect the Arduino from over voltage on 13.8V line, suggest to have resistive TX divider to output 3-4V not 5V... 3-4V is well above the HIGH threshold of the digital inputs

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Antony. I had thought of that, but dismissed it as the VCC line will have a voltage regulator. I might look to redesign it for-say-4 VDC

  • @edbeckerich3737
    @edbeckerich3737 2 роки тому

    On your sig gen you set it up for 1.4 volts, was that measured to 50 ohms? Does the SI5351 put out at least 1.4v into 50 ohms? Or does anyone really send 7dbm to thier mixers??

  • @rontaylor9026
    @rontaylor9026 3 роки тому

    Thanks Charlie. That fixed that. Now I have an issue that the display is only showing the leading digit of each part of the display. So I have the “3” of the frequency, the “1” of the 1000 and the “H” of the Hz. Same is true on the bottom line. Only have U, R and Z showing. They are all where they should be and they change with appropriate inputs on mode, PTT, Radix etc. This is happening on two different displays. I loaded a test sketch for the display and it works fine with that sketch. I am seeing the appropriate frequencies coming out of the Si5351. Thoughts? Thanks
    Ron

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Ron. I have never seen that before. All I can suggest is copy the syntax from the example sketch into the VFO sketch. Other than that, I haven't a clue sorry.
      Charlie

  • @louisbanaszak3125
    @louisbanaszak3125 3 роки тому

    if you are having difficulty with line lcd.begin(); change to lcd,init(); g0psz

  • @WhatDennisDoes
    @WhatDennisDoes 3 роки тому

    Just found your channel and I'm really loving your methodology and practical approach! I'm starting on my first transceiver now. Question: I read that the Siglent has a "high precision frequency counter" built in. Could you have used that?

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      Thanks. From what I can see the freq counter goes down to 10s Hz, whereas I need 1s Hz.

  • @docfoot316
    @docfoot316 3 роки тому +1

    New years greetings Charlie ,well explained great job helps alot and like wise maths wasn't my strong point at school ,brought up with old math's arithmetic then second year at high school new math's was introduced ,confused me hi hi. Many thanks for sharing.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Happy New Year too Dave. Thanks for the feedback. I personally want to try and understand the underlying logic/math. It certainly helps me.

  • @joewoodchuck3824
    @joewoodchuck3824 3 роки тому

    Nice project. I suppose I should learn something about arduino. I'm all in for analog circuits, but never explored the digital world very much.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Give it a go Joe. It won't cost you much.

    • @joewoodchuck3824
      @joewoodchuck3824 3 роки тому

      @@CharlieMorrisZL2CTM I don't even know where to begin, but I should start by reading I guess. I tried my hand at simple programming a few times but I was baffled each time.

  • @ernestb.2377
    @ernestb.2377 Рік тому

    Maybe an easier way (suggestion) on the math regarding the voltage divider. Let: R2=4k7 --> I=5V/4k7=1.064mA. R1=(13.8V-5V)/1.064mA= ~8k3.

  • @stephenfine8671
    @stephenfine8671 3 роки тому

    Do you know if the sketck will work with a cheap 'clicky' three pin encoder.
    Thanks

  • @brianharper9798
    @brianharper9798 3 роки тому

    For calibration of the si5351 I have an old I think Neo6 gps module I can set the output to 1Mhz, on the new ones you can set them to 10Mhz. I changed the Si code to 1Mhz and lock the top trace of my scope to that. And when the 2nd trace connected to the Si module stops moving using the calibration code I know I'm good to go.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      That's good to know thanks Brian, I'll remember that. I have found this sig gen to be very good and certainly accurate enough for my needs here. If I didn't have that then the GPS method would be an excellent option.

  • @RICKY_TECNO_RADIO
    @RICKY_TECNO_RADIO 2 роки тому

    Excelent! L7805 regulator is more simple! Wright?

  • @R2AUK
    @R2AUK 3 роки тому

    Thanks for the video! What kind of encoder is that (seems to be an optical one) and can such a knob be bought somewhere? 73s de R2AUK

    • @R2AUK
      @R2AUK 3 роки тому

      Opps, it was in the Part 1 which I missed. Sorry for this.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      All good. I suspect it is an optical one. Very smooth with no indents. As for the knob, it's off an old rig.

  • @MiscDotGeek
    @MiscDotGeek 3 роки тому

    I really appreciate this video. I am going to be rebuilding the crystal filter on my bitx40 and putting on a different frequency and so I'm very curious as to how you decide which frequencies to use for your bfo. I was going to use a sketch that would allow me to tune the bfo separately from the vfo so that I could decide which frequencies to use for the upper and lower sideband and then hardcode those in. But I am really curious how you're going to do it!

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      That's a great approach which I use often. Start with something close to (Bandwidth/2) + 300 Hz, then tweak it from there.

  • @fredriko.zachrisson9711
    @fredriko.zachrisson9711 3 роки тому

    4:31 Math on the Voltage divider
    8:11 Code

  • @diddleize
    @diddleize 3 роки тому

    2nd comment. Have to adjust band limits depending on LSB or USB. Ty cannot TX USB at 3.9MHz or you are out of band... (assuming 3.9 is your local upper limit)

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi again. In the past I have had the L/USB auto select in software depending on the band in use. In this particular case I have given the operator a choice.

  • @ambroribo6079
    @ambroribo6079 3 роки тому

    VERY GOOD video Charlie ! Congratulations. I am not familiary with those you tube video: I would like to ask HOW TO download the code for the Arduino please ?
    Have you already available any schematics diagram and part list for the receiver ? I am very interested. Thanks for all.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Ambro. Everything shown on the video is available on the blog at: zl2ctm.blogspot.com/

  • @stephaneshm3043
    @stephaneshm3043 3 роки тому +2

    hello, thanks for your video, where can i found the code ? i want to try your project, i am a new HAm radio ( F4IRX ) , thanks again.

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      Hi Stephane. Everything goes up on the blog at: zl2ctm.blogspot.com/

  • @fredriko.zachrisson9711
    @fredriko.zachrisson9711 3 роки тому

    What is that rotary encoder wheel you are using?

  • @AmateursRadioYi1hxh
    @AmateursRadioYi1hxh 2 роки тому

    Nice video

  • @RA4FOC
    @RA4FOC 3 роки тому

    good project. Can you give a direct link to the synthesizer schematic?

  • @Superfungus0
    @Superfungus0 3 роки тому +1

    Why not calibrate using your oscilloscope? I'm thinking either use two channels or feed the external timebase of your scope with your sig-gen (presuming you trust the sig-gen timebase over the 'scopes).

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      I have used the oscilloscope in the past using the X-Y mode. The freq counter does not do low enough, and I find the beat freq method works for me.

    • @robertcullipher3492
      @robertcullipher3492 3 роки тому

      I would also continue that some don’t have oscilloscopes or signal generators. An alternative is using a receiver near a time signal (WWV 10 MHz for example). This gives the possibility of doing a zero beat without having pricey equipment, and the only error would come from trusting the stability of the time signal near your country.

    • @Superfungus0
      @Superfungus0 3 роки тому

      @@CharlieMorrisZL2CTM I see, thanks for the clarification. I was wondering if there was some special advantage to this beat frequency method I wasn't considering, but if it's just your preferred method because you like it that's certainly valid too!
      Really enjoying the project-log nature of your channel by the way, keep it up!

  • @rontaylor9026
    @rontaylor9026 3 роки тому

    Hi Charlie, I really appreciate all your good work here and your willingness to share it. I'm trying to duplicate the VFO in the Simple SSB rig. The firmware won't compile and returns "no matching function for call to 'LiquidCrystal_I2::begin()'. According to the literature I might have the wrong library chosen. Can you tell me what library you used for the LCD and/or if there is some other issue here? Thanks.. Ron

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Ron. Libraries are always a problems. I've taken a look at mine as there is no way to tell where it came from. What I suggest you do is open the example sketch that comes with your library and simply copy across the syntax into the VFO sketch. I do that all the time when I have problems here.

    • @rontaylor9026
      @rontaylor9026 3 роки тому

      Thanks Charlie. That fixed that. Now I have an issue that the display is only showing the leading digit of each part of the display. So I have the “3” of the frequency, the “1” of the 1000 and the “H” of the Hz. Same is true on the bottom line. Only have U, R and Z showing. They are all where they should be and they change with appropriate inputs on mode, PTT, Radix etc. This is happening on two different displays. Also seeing the appropriate frequencies coming out of the Si5351. Thoughts? Thanks
      Ron

  • @nodzie1
    @nodzie1 3 роки тому

    Hi Charlie, what is the actual model arduino / chipset etc that you are using here? Cheers Chris VK3TUB

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Chris. The original was a stock standard Uno with a Mega 328P and the second a Arduino Mega board. The display was a simple 16x2 with an I2C interface. Nothing special.

  • @colincolin30
    @colincolin30 3 роки тому

    Hi Charlie, I noticed something a bit different on this build compared to other projects you have built.
    What is the reasoning for having the (2) 470 ohm and (2) .01 uf caps on the encoder?
    I have managed to get the "sketch" to compile, it might seem a little thing to you, but believe its a major achievement for me getting it to compile. Still in a steep learning curve when comes to Arduino sketches.
    About to power up the VFO for the first time. 73 vk2jcc

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi Colin. I was very kindly given some rotary encoders, which require the 470 ohm resistors. Great news about the VFO. I know compiling can be difficult, especially if any of the libraries are different. Keep it up!

  • @dadangsudrajat9406
    @dadangsudrajat9406 2 роки тому

    How to use Callibration IF...? Thank you from YG1AQH. From West Java Indonesia...

  • @M0XFXUK
    @M0XFXUK 3 роки тому

    Hi Charlie The Si5351 looks a really interesting device. I am in the middle of modifying an old 1980s multimode CB to 1.5MHz to 500Mhz coverage using the Analog Devices AD831 active mixer and the AD9910 as a DDS VFO controlled by Arduino. I am thinking of using the Si5351 to replace the SSB carrier oscillator I would be interested in your thoughts and how it performs at around 10MHz? BTW I really enjoy your videos Best Regards M0XFX

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Hi John. I have had not problems using the Si5351 at around 20MHz for high side injection. That was using a simple DBM. I would have thought you'd be fine. They are certainly cheap enough to just give it a go.

  • @mars667
    @mars667 3 роки тому

    Hi Charlie. Excellent videos as always, thank you. Could add any comments about the effectiveness of the rotary encoder in this and other rigs that you have built? I see that your code for "decoding" the encoder is very simple and doesn't include other more complex things seen in other rigs like interrupts, quadrature state machines, debouncing, etc. But yet it appears to be very smooth. Do you attribute that to the high-quality encoder that you are using? Or are there other tricks? I have built several rigs using commodity encoders (very similar to the cheap one you showed in part I) and I never get a really smooth response. My tuning sometimes goes the wrong direction (backlash?) for a click or two during tuning, or steps unevenly. It's still usable, but not great. I'm sure it's a software thing. I'd be interested in any hints you can share. 73s and thanks!!

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      Hi. You are experiencing exactly the same as I had when I first started using rotary encoders. In the end I settled on the code that features in all of the radio up until this one (check out zl2ctm.blogspot.com/). That code has been rock solid for me - nice and smooth, no jumps etc. I suggest you give that a go as I think that will solve your problems. The advantage too is that it is not a library. In this radio I am using a rotary encoder and associated code that was very generously given to me. That code sits in the main loop and not in an interrupt called function. Given that the demands on the microprocessor (Arduino) are minimal, I have elected to leave it there for now. I might look to move that to an interrupt called function as a separate effort. I hope this helps.
      Charlie

    • @nevmarr
      @nevmarr 3 роки тому

      @@CharlieMorrisZL2CTM Charlie, a comment from my school of fun & games with optical encoders ... when I went from the pooling method to the interrupt method the speed/responsiveness increased massively. On my setup the step size is 100Hz and I can tune all of 80 in a matter of moments. Have a go and you may find the same. I use the STM32 series which are a bit faster than the Nano. Cheers.

    • @mars667
      @mars667 3 роки тому

      @@CharlieMorrisZL2CTM Thanks much Charlie, I'll give that one a look.

  • @newmonengineering
    @newmonengineering 3 роки тому

    Definitely a cool build!!

  • @HeathLedgersChemist
    @HeathLedgersChemist 3 роки тому

    I'm confused by what you mean when you say 'tin Megahertz'.

  • @missangas
    @missangas 2 роки тому

    Dear Charlie I tried to use your code but gave me lots of errors due to the fact I guess its not an updated coding do you have an updated code I can use to do this project ? I cant code at all... Thanks for your attention Big Hugs Jose CT2KFQ

  • @aneespi4684
    @aneespi4684 3 роки тому

    Charlie, I have a doubt.Are you using BFO signal from si5351? If so I hope it is using for LSB and USB with IF shift programmed
    .
    Good video

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому +1

      Hi Anees, Yes, I normally program the BFO shift into the code (see my other rigs). On this occasion I decided to be different and make it manual.

  • @Chris-ZL
    @Chris-ZL 3 роки тому

    you make it look so easy!

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Not sure about that Chris. I just wish I could remember all that I have read!

  • @daviddickey9832
    @daviddickey9832 3 роки тому

    Such good info! Thanks so much!

  • @rudysr
    @rudysr 3 роки тому +1

    Thanks for your excellent project.
    I can't compile the code, it gives me an error.
    // Initialize the display
    lcd.begin();
    In function 'void setup()':
    error: no matching function for call to 'LiquidCrystal_I2C::begin()'
    lcd.begin();
    \Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t) void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
    \Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided
    exit status 1
    no matching function for call to 'LiquidCrystal_I2C::begin()'
    Forgive my inexperience in programming, Thanks for your project

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      Rudy. Look at the example code that comes with your LCD library and port over the syntax.

    • @rudysr
      @rudysr 3 роки тому

      @@CharlieMorrisZL2CTM thank you very much friend. I have already managed to activate it. Thanks for your time and for sharing your projects.
      My congratulations, we continue to communicate.
      73

  • @luizhenriquemialchi435
    @luizhenriquemialchi435 3 роки тому

    Whitis is the steck code for download ?

  • @bfx8185
    @bfx8185 3 роки тому

    Let's build preamp for your computer microphone ;)

    • @CharlieMorrisZL2CTM
      @CharlieMorrisZL2CTM  3 роки тому

      It works fine, except for the Xbox recording software. A real pain.

    • @bfx8185
      @bfx8185 3 роки тому

      @@CharlieMorrisZL2CTM Try to increase sensitivity in the audio settings.

  • @rambasu7502
    @rambasu7502 Рік тому

    Code out of focus.