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 件のコメント:

Mikele 9a3xz さんのコメント...

excelent project Matsuura ..bravooo ,i like it !

JA2NKD さんのコメント...

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

Mikele 9a3xz さんのコメント...

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 !

JA2NKD さんのコメント...

OK I see.

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

73's JA2NKD

Anton Hendra さんのコメント...

Is there any problem to use bigger LCD like 3,2 inch with same driver ILI9341 ?

JA2NKD さんのコメント...

Hi,Anton Hendra
Thanks comments.
There is no problem if the resolution is 320x240.

Let's enjoy Homebrew.

73's JA2NKD

Pferato さんのコメント...

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

JA2NKD さんのコメント...

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

JJ1HMR 田中 さんのコメント...

松浦OM  先般AF PSNの件でお世話になりましたJJ1HMRです。 

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

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

JA2NKD さんのコメント...

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

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

73's JA2NKD

Sudhindra さんのコメント...

Your email I'd pls

JA2NKD さんのコメント...

Hi,Sudhindra

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

73's JA2NKD

Mikele 9a3xz さんのコメント...

Lets go! I m starting today with this project :)

JA2NKD さんのコメント...

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

Mikele 9a3xz さんのコメント...

ok,ok thanks...will see the progress...stay tuned.9a3xz-Mikele

Mikele 9a3xz さんのコメント...

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

JA2NKD さんのコメント...

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

Mikele 9a3xz さんのコメント...

thanks so much, i will try afternon.73 de 9a3xz,Mikele

Mikele 9a3xz さんのコメント...

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 ;)

JA2NKD さんのコメント...

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

De JA2NKD Ryuu

Mikele 9a3xz さんのコメント...

Mr.Matsuura ,please tell me one thing,are you using level converter cd4050 or 74hc4050 ?

JA2NKD さんのコメント...

Hi,MIkele

I've sent you a mail.

DE JA2NKD

sp8xu さんのコメント...

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

JA2NKD さんのコメント...

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

sp8xu さんのコメント...

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

JA2NKD さんのコメント...

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

XE1HAX さんのコメント...

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.

JA2NKD さんのコメント...

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

XE1HAX さんのコメント...

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.

Mikele 9a3xz さんのコメント...

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

JA2NKD さんのコメント...

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.

Mikele 9a3xz さんのコメント...

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.

Unknown さんのコメント...

Hi
Seend me pcb thank you

Mikele 9a3xz さんのコメント...

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

JA2NKD さんのコメント...

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

Hobi rakom さんのコメント...

Boleh minta source code nya.....terima kasih 73...

JA2NKD さんのコメント...

Souce code is

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

73's

Mikele 9a3xz さんのコメント...

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

JA2NKD さんのコメント...

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

Mikele 9a3xz さんのコメント...

thanks Matsuura.
is this IC 74LS154 outputs drive directly relays or i must put transistors ?

JA2NKD さんのコメント...

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

Mikele 9a3xz さんのコメント...

finished :)

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

JA2NKD さんのコメント...

Hi,Mikeke

Congratulations.
I watched youtube

Let's enjoy homebrew.

73's

JA2NKD Ryuu

YB8EXL さんのコメント...

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

DimDimuch さんのコメント...
このコメントは投稿者によって削除されました。
匿名 さんのコメント...

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 ?

匿名 さんのコメント...

OK is solved