2019年7月24日水曜日

Remake VFO Controller Ver 7.10 (Arduino + Si5351)


   注)改定情報を末尾に記載(Ver 7.20)
 Arduinoを使用したVFO-controllerを製作してから3年経過した。世界各国から色々なコメントを頂き感謝感謝です。この間、受信機等の製作に合わせてそのたびに色々な種類のcontrolerを作ってきた。これには結構なパワーが必要であり、無駄も多くなっている。
 今回このことを反省し、各種機能を取り込んだcontrollerを製作した。今後色々なシステムに合わせて改良しやすいように考慮したつもりである。ただプロセッサーにArduino-nanoを使用しているため、多少動きが良くないところもある。これは今後の課題としたい。
【特徴】
 今回の特徴としてバンドというイメージがないことである。VFOは1-54MHzまで連続して可変する。最近のメーカー製リグでは当たり前であるが。スケッチを変更すれば、この範囲は変更できる。バンド切り替えがない代わりにBPF,LPF等の選択を行うようにしている。適切なBPFが選択されていないと送信できない措置も行っている。このことから60MHz位のLPFを使用すればGENERALレシーバーとして使用できるメリットがある。できれば周波数に合わせて自動的にフィルターが選択できればいいのであるが、フラッシュメモリーが不足であることと、処理スピードが遅くなりうまく表示できない。もう1ランク上のプロセッサーが必要である。
 2つ目の特徴として、メーカー製リグでは当たり前であるが、2VFO(A,B)を持ち、A=B,A/B、SPLIT機能を設けた。メモリーは最大30チャンネルとした。メモリーからVFOへの移行も可能。
 3つ目の特徴としてtransverter対応としている。このモードは28MHzをベースとして144,435MHzに対応できる。VFOとしては28MHzと動作し、表示を144,430とする機能であり、同時にtransverter制御用の出力を用意した。
 ハードウェアの特徴としてI/O増設のためI2C用の PCF8574 を2個使用しスイッチ用に8ビット、BPF,MODE情報の出力用に8ビット増設している。
 VFO発振にはSi5351を使用し、54MHzまで対応できる。また昨年ブログに掲載したdsPICを使用したPSN送信機にも対応できるように考慮している。この場合受信周波数の2倍の周波数が必要となるので最大54MHzの場合108MHzの出力となる。

【Specification】

  • Rx Frequency Range     1MHz-54MHz
  • Tx Frequency Range     1MHz-54MHz (Ham band only)
  • Emission Modes           CW,AM,LSB,USB,FM (Max 5 modes)
  • Frequency Steps          10H,100H,1kH,10kHz,100kHz,1MzH
  • Memory Chanel           1-30 Chanel
  • BPF           1-15 (MAX 15)
  • meter          S-meter , PO-meter
  これら仕様は最大値で、カスタマイズして小規模用に容易に変更できるようにしている。
【Function】
  • VFO-Mode
          VFO A=B      Copy VFO-A to VFO-B
          VFO A/B       Main VFO Change A to B  B to A toggle
          VFO SPLIT    Main-VFO Rx   Sub-VFO TX 
  • Memory-Mode
          Memory Wite     1-30CH(Friquency,Mode,Step,BPF,SPLIT)
          Memory Read    1-30CH
          Memory to VFO  Memory Cnanel copy to VFO
  • Transverter-Mode
          144MHz,430Mhz   Base friquency is 28MHz
                                     144Mhz - 146MHz (28MHz-30MHz)
                                     430Mhz - 440MHz (28MHz 38MHz)
  • Tune
    Tune   送信機調整用に例えば1kHzを音声回路に送れるように送信時に
         1kH発振ができるようにI/O出力を用意
  • Si5351 Adjust-Mode
    Turbo-switch+Power ON でAdust-modeになり,25MHzが出力される。
    周波数カウンターに接続しUP/DOWNスイッチで調整できる。
  • Turbo
    エンコーダーでの変化を10倍にする機能。
    STEP 10Hzの時に、Turboを押しながら回すと100Hz STEP
    STEP 100Hzの時に、Turboを押しながら回すと1kHz STEP

【MEMO】
  ロータリーエンコーダーを回したときに周波数表示が多少ぎこちない。これはArduino-nanoのSPI速度の問題と表示アルゴリズムのもお題だと思われる。これにはより高速なプロセッサーが必要と思う。近い将来STM32やArduino-mega,Due等に乗せ換えたいと思う。またキャラクタLCDを使用したライトなものも用意したいと思う。
動作の詳細はマニュアルと回路図を参照してください。スケッチ&manualをダウンロードサイトにUPしてあります。

73's JA2NKD






改定(2019.10.22):回路図 修正 スケッチ 修正
改定(2019.12.02):回路図 修正 スケッチ 修正 Ver.7.20
改定(2020.03.22):回路図 修正


47 件のコメント:

  1. excelent project Matsuura ..bravooo ,i like it !

    返信削除
  2. Hi.Mikele
    Long no see.

    The movement is a bit slow because it incorporates many features.
    I'm thinking of putting it on STM32duino now.
    I would like to make a transceiver suitable for this VFO.
    Thank you always for a good comment.

    73's JA2NKD

    返信削除
  3. i m always here hi!hi! now i finishing one dds by vk3hn Paul and waiting for LCD display (by ebay) for your RF Analyser...see you soon .

    all the best for you and your family !

    返信削除
  4. OK I see.

    I also want to remake the RF analyzer.
    Please send me your feedback if you can.

    73's JA2NKD

    返信削除
  5. Is there any problem to use bigger LCD like 3,2 inch with same driver ILI9341 ?

    返信削除
  6. Hi,Anton Hendra
    Thanks comments.
    There is no problem if the resolution is 320x240.

    Let's enjoy Homebrew.

    73's JA2NKD

    返信削除
  7. Hi, is it possible to do this as remote vfo for my old yaesu ft-901dm? how to make?
    best regards from Brazil!

    73´s

    Paulo Fernando Scurciatto
    ex-PY2-RYK

    返信削除
  8. Hi,Paulo

    Thank you for watching the blog.
    It can be used for the external VFO of FT-901DM, but it needs to be customized.
    Also, I think that many functions are unnecessary.
    I think a simpler VFO is fine.

    Let's enjoy homebrew.

    73's JA2NKD Ryuu

    返信削除
  9. 松浦OM  先般AF PSNの件でお世話になりましたJJ1HMRです。 

    こちらのVFOも素晴らしく、生まれて初めてCADで基板を起こしてみました。 I2Cバスの変換とかロータリーエンコードの相性?で悩んでいたのですが、何とか動いているのではと思われる程度に至りました。 お礼とご報告まで。

    https://davet.exblog.jp/30837543/

    返信削除
  10. JJ1HMR 田中さん コメントありがとうございます。
    今回のVFOは少々欲張りすぎの仕様となってしまいました。
    なので、使い勝手(操作性)が今一だと思います。少しぜい肉を落として使いやすくしようと考えています。
    エンコーダーの相性ですか。Arduinoでは処理スピードが遅く割込み動作で表示が今一です。もっと高速のMPUにするといいと思っています。またプルアップを内部にして今一なら、外部でプルアップするといい場合もあるようです。

    何か疑問点、改良等についてあれば遠慮なくコメントなり、メールを頂ければと思っています。

    73's JA2NKD

    返信削除
  11. Hi,Sudhindra

    It is written on the photo at the top of the blog

    73's JA2NKD

    返信削除
  12. Lets go! I m starting today with this project :)

    返信削除
  13. Hi,Mikele
    Good.
    I have not yet made a transceiver using this VFO.
    You may be faster.
    Please let me know if you have any problems with the operation or if you want to improve it.
    I'll do my best to make an all-band transceiver.

    73's
    De JA2NKD

    返信削除
  14. ok,ok thanks...will see the progress...stay tuned.9a3xz-Mikele

    返信削除
  15. hello mr.Matsuura JA2NKD
    one question pls...i conecting arduino nano with tft display and one off pcf8574,every functions working good BPF,STEP,LSB,USB....MEMORY,everything is ok but when i rotating rotary encoder (mechanical) nothing,i have not conecting si5351,maybe you know ,what am i doing wrong ?
    thanks in advance..73 de 9a3xz-Mikele

    返信削除
  16. Hi,Mikele
    Have you started making it? It is early.

    Please connect SI5351. Then the encoder will work.
    I think the program has stopped because there is no response from SI5351.

    73's

    De JA2NKD

    返信削除
  17. thanks so much, i will try afternon.73 de 9a3xz,Mikele

    返信削除
  18. no,not working rotary encoder with si5351,i have another problem,i will see...maybe also i must conecting another pcf8574...for now i conecting only one pcf8574 with turbo,ptt,step,band switch,vfo and so on....second pcf8574 not conected.

    i will see...project go on ;)

    返信削除
  19. Hi,Mikele
    It may not work depending on the type of rotary encoder.
    Check the operation with the library sample program.

    De JA2NKD Ryuu

    返信削除
  20. Mr.Matsuura ,please tell me one thing,are you using level converter cd4050 or 74hc4050 ?

    返信削除
  21. Hi,MIkele

    I've sent you a mail.

    DE JA2NKD

    返信削除
  22. good morning I would like to use dds for trx drive HOMODYNA PILGRIM can you give me some solution best regards Jack sp9xu
    sp9xu@wp.pl

    返信削除
  23. Hi,Jack sp9xu
    Thank you comments.

    I'm sorry I don't know HOMODYNA PILGRIM.
    For VFO using DDS, please refer to the following blog.

    https://ja2nkd.blogspot.com/2016/10/dds-vfo-controller-version-up-ver31.html

    Let's enjoy homebrew.

    73's de JA2NKD Ryuu

    返信削除
  24. thank you Ryuu for the info, I am looking for a dds that gives 4 times the frequency that it displays
    on the display 14Mhz dds sends 56Mhz do you have such a solution greetings Jack sp9xu

    返信削除
  25. Ok,Jack
    It's not so difficult.
    The PSN transmitter I made has twice the frequency when transmitting. It's used the Si5351.
    DDS can do the same.
    What DDS will DDS use?
    If it is 56MHz, I think that it can be used with AD9850. There is no problem with AD9851.

    It is possible even with my DDS-VFO by changing the sketch a little.

    でJA2NKD Ryuu

    返信削除
  26. Hello Mr. Matsuura, I am Miguel XE1HAX, I am seeing your project and it is very interesting to me but I see that it does not have the function of adding or subtracting the value of the intermediate frequency of the transceiver (IF), will it be possible to add this function to it? I have some transceivers to which I would like to add this work of yours, it is what I need to bring them back to life but it would be very necessary to be able to work on the + IF / -IF.
    Thanks for listening to my suggestion, 73 from XE1HAX from México.

    返信削除
  27. Hi,Miguel XE1HAX

    Thanks for looking at the blog.
    VFO_Ver7 does not have the image of a band. Band change is used only for switching between BPF and LPF. The frequency is continuously variable. Therefore, there is no timing to switch the IF shift. It may be a manual, though. There is also a method of switching by frequency, but if you include this routine it will affect the response of the encoder and you will not be able to change smoothly. (Limit of arduino nano)
    Also, the memory is already full and it is impossible to add more functions.
    In order to solve these problems, it is impossible to use a MPU with higher specifications.
    I am sorry that I could not answer your wish.

    Stay Home. Save lives.
    Let's enjoy homebrew.

    de JA2NKD

    返信削除
  28. Hello Mr. Matsuura, thanks for your answer and I understand the impossibility of adding more functions to the project, I think I have the solution to this: I am going to build a mixer to get the frequency difference that I need by adding a fixed oscillator and its design, so At the end of all this I will get what I need to be able to get those transceivers working again, I appreciate the attention and the answer, 73 from XE1HAX.

    返信削除
  29. hello dear friend Matsura !!!all functions step,band,bpf,vfo...all working very well but rotary encoder NOT !!!when i touch encoder with my finger frequency go up and down
    I dont know whats the problem...uf uf uf...maybe i want optical encoder ????

    i try everything but nothing !

    73 de 9a3xz Mikele

    返信削除
  30. Hi,Mikele
    Long no see.
    How are you?

    What type Encoder do you use? Mechanical type? or Electronic type?
    Please pull-up Pin of encoder (A,B) by 10k-ohm.

    Now I make a new VFO using TFT with a touch panel .
    It will be completed soon.
    I would like to have a CAT control if possible, but it is difficult.

    返信削除
  31. thanks i fine.
    my encoder is mechanical type but i will try next week with one optical encoder and i will try with pull-up resistors.
    excelent for your new VFO with touch panel,compliments dear Matsuura.
    see you soon with good news,i hope so.
    73 de 9a3xz Mikele and all the best.

    返信削除
  32. mr.Matsuura..finally all working well with new rotary encoder,for a few days i send you my video.still waiting bcd to decimal converter 4028 for change BPF s.

    many many thanks for all informations and help.
    73 de 9a3xz-Mikele

    返信削除
  33. Hi,Mikele
    Congrats
    I was relieved that the VFO worked well.
    I make a new VFO with a touch panel. I'm trying to add a CAT control now, but it doesn't work. This is difficult

    Let's enjoy Homebrew.

    73's

    返信削除
  34. Boleh minta source code nya.....terima kasih 73...

    返信削除
  35. Souce code is

    https://sites.google.com/site/ja2nkd/download

    73's

    返信削除
  36. hello my friend !How are you ?
    only one question,what you used after PCF8574 for switching relay for BPF and LPF ???

    THANKS in advance...73 de 9a3xz Mikele

    返信削除
  37. H,My friend Mikele
    I went golf yesterday. I'm fine.Thank you

    The output of the PCF8574 is converted to a separate control signal using the 74LS154 (4to16 Demaltiplexer). This signal controls the diode switch or relay.
    There is an example of using 74LS154 in the rig made by the manufacturer.
    OK?

    JA2NKD Ryuu

    返信削除
  38. thanks Matsuura.
    is this IC 74LS154 outputs drive directly relays or i must put transistors ?

    返信削除
  39. Hi,Mikele

    You need a switching transistor to control the relay.
    Note that using the 74LS154 will reverse the logic.
    PNP type transistor is good

    JA2NKD

    返信削除
  40. finished :)

    https://www.youtube.com/watch?v=ogec9KZA8QM

    返信削除
  41. Hi,Mikeke

    Congratulations.
    I watched youtube

    Let's enjoy homebrew.

    73's

    JA2NKD Ryuu

    返信削除
  42. Hi Ryuu, you did a very good job my friend.
    If anyone wants a PCB layout for this project please send me an email at yb8exl@gmail.com

    返信削除
  43. このコメントは投稿者によって削除されました。

    返信削除
  44. I have a compilation error with this info. Sketch is too big 😕 what is the error ? I am using your original ino for vfo controller 7.2.

    73 DD1MR Mike

    Can you help me ?

    返信削除