VN-L5 MarkII 人柱版 CW トランシーバーキット製作

JL1VNQ さん ( https://jl1vnq.blogspot.com/ ) が頒布されている CW トランシーバーキット VN-L5 が MarkII となりました。この MarkII キットの人柱版製作募集を Twitter でみかけたので、まだ頒布あるかと聞いた所最後の1台とのこと。お願いして頒布していただいた次第。

(写真や図はクリックすると大きくなります。スペアナ画面は元から小さいので除く)

思いの外大き目の箱で届きまして、過去製作したキットに比べて時間がかかりそうな予感でした。で、実際にもかかりました。また箱に貼られたラベルには 10W とありますが実際には 20W です。リチウム電池運用ならファイナルの電源電圧が低くなるので 10W 程度になると思います。

中身は、基板・パーツ一式・説明書です。説明書については部品表・回路図と組んだ時の写真だけで、旧版の説明書も合わせて読んで組むとの指示でした。人柱なのでそこら辺は問題ありません。

基板は3枚構成になっていて写真左上がコントロール(CTRL)基板。右上は送信(TX)基板。手前が受信(RX)基板になっています。裏面の写真は掲載していませんが、裏面にも実装する部分もあります。

結構時間はかかりましたが組みあがりました。組みあがったので保証認定を取るべく資料を作成します。今回は JARD に保証認定してもらうので、送信機系統図とスペクトラムアナライザの測定結果を添付します。

RIGOL スペアナの入力に 50dB のアッテネーターを接続して測ります。今回確認したのは次の3つです。

  • 送信出力
  • 近傍のスプリアス
  • 高調波

このキットの送信回路基板の LPF は 160mb 用と 80mb 用の2つだけなので、スペアナ測定は 1.8MHz と 3.5MHz の測定した結果を提出しました。

160mb 送信出力

スペアナの RBW/VBW を 10Hz SPAN 100Hz で見ました。結果 44.25dBm で 26.6W の出力となりました。160mb の工事設計は 25W で出すことにしました。

160mb 近傍

送信周波数近傍を確認します。Span 10kHz で測ります。RBW・VBW は 10Hz が良いのですが、RIGOL DSA815TG では測定時間がものすごく長くなるので、30Hz にして測定。これでも 12秒程度必要です。17dBm(50mW)以下かつ基本周波数の尖頭電力より 50dB 低い値をクリアしていました。

160mb 高調波

高調波は本来 9kHz から 1GHz の範囲を取らないといけないかもしれませんが、第5高調波あたりまで測りました。50dBm 以下なので問題ありませんでした。

80mb 出力

スペアナの RBW/VBW を 10Hz SPAN 100Hz で見ました。結果 43.23dBm で 21W の出力となりました。80mb の工事設計は 20W で出すことにしました。

80mb 近傍

送信周波数近傍を確認します。17dBm(50mW)以下かつ基本周波数の尖頭電力より 50dB 低い値をクリアしていました。

80mb 高調波

160mb 同様第5高調波あたりまで測りました。50dBm 以下なので問題ありませんでした。

送信機系統図作成

測定の結果申請いけそうなので資料作成をします。送信機系統図は、無線局免許状の記載で 1.8MHz帯、3.5MHz帯、3.8MHz帯の申請となります。なので、各周波数帯の送信周波数を記載。また新スプリアス規格で設計・製作している旨の記載は必要です。

キットの回路構成はファイナル送信出力の LPF が 160mb と 80mb の切り替えになっているので LPF が2つあること、送信出力も 160mb と 80mb でそれぞれ何ワット出るかを図に記載しておきます。

電子申請Lite 入力

電子申請 Lite の工事設計は以下のように入力

  • 変更の種別:増設
  • 適合表示無線設備の番号:空欄
  • 発射可能な電波の型式及び周波数の範囲情報
    希望する周波数帯
    1.9MHz A1A
    3.5MHz A1A
    3.8MHz A1A
  • 変調方式:空欄
  • 終段管
    名称個数:MTA100N10KRI3 x 2
    電圧:13.8V
  • 定格出力: 25W と 20W
  • 添付資料は測定資料と送信機系統図。保証認定のPDF

工事設計入力画面で、変調方式など入れないと入力完了のチェックで未入力欄がありますが続けますか?のような確認ダイアログが出ます。問題ないので続行でOKです。

申請状況

・JARD 保証認定 2022/11/06申請 2022/11/10 保証完了
・JARD から認定シール(普通郵便)待ち 2022年11月24日完了
届かなくて再送してもらったため、シール入手に日数がかかりました。
・近畿総通宛の変更申請 2022/11/10申請 2022/11/14 審査終了

ということで、無線局免許状に新しい無線機の追加が完了しました。

Raspberry Pi Pico I/O 拡張基板

普段使用するマイコンは、Arduino UNO(ATMEGA328P) か Arduino MEGA2560( ATMEGA2560) を良く使っています。最近はマイコンに接続するモジュールも 3.3V のが多いので、Raspberry Pi Pico を使えるようにとお勉強始めたところです。

ESP32 も持っているのですが、ESP32-S(XTensa LX7) ESP32-C(RISC-V) の新製品が技適取って十分出回っていればこちらに行ったかもです。ESP32 の WROVER-E が技適あるので、これでもいいのですが。無線モジュール要らないなら今のところ Raspberry Pi Pico で十分かな。というところで、Pico を使い始めた次第です。

ちょこっと動かすだけなら、Raspberry Pi Pico に秋月の細ピンヘッダつければブレッドボードに差しても左右2列取れますので十分です。

最初はブレッドボードで始めたのですが、やっぱごちゃるなぁということで基板を作成。2×20 ピンヘッダに IO ピンを出しているので、ロジックアナライザの線を刺すこともできますし、SPI や I2C でバス共有するの予備端子としても使えます。

今は、こんな感じで使用しています。基板手前の Raspberry Pi Pico のソケットは Pico Probe デバッグのソケットです。現在 Micropython 勉強中なので openocd + gdb-multiarch は使用していないため手前の Pico Probe は外しています。

基板を10枚作ったので余りは頒布にのせました(売り切り終了)

Raspberry Pi Pico I/O 拡張基板(キット) | 頒布物のページ (em9system.com)

https://github.com/ngc6589/Raspberry-Pi-Pico_IO_Expansion-1

PZEM-004T v3.0 で商用電源の電圧と周波数をロギング

最初に、参考にしたサイトを掲載しておきます。

PZEM-004T v3.0 はアマゾンや Aliexpress で検索するとたくさん出てきます。今回はアマゾンで買いました。1週間ほどで到着です。何も気にせず買ったので、USBシリアルなしを買ってしまったようです。USBケーブル付きがあればそれを買うほうが楽です。

仕方がないので、ポケコンのファイル転送で使っていた FTDI の USB シリアルケーブルに犠牲になってもらうことにしました。使用する線は 5V, GND, TX, RX の4本です。USBシリアルを使うのは Raspberry Pi の USB ポートで使用するためです。マイコン基板と接続する場合は、マイコンの 5V, GND, TX, RX を直結するだけです。

USBシリアルの TX RX と基板の TX RX はクロスで結線しましょう。これ間違えると通信できません。

プラケースの蓋を外して、XH コネクタのポストを外して

USB シリアルの線を半田付け。スクリューターミナルNとLの所にコンセントからの電線を差し込んでネジ止めします。ハードの準備は以上です。

Raspberry Pi 側のプログラムは python で動かします。PZEM-004T v3.0 からデータを取得して、ambient にデータ送信するようにしています。

#!/usr/bin/env python3

import datetime
import time
import serial
import ambient
import requests
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu

# sudo pip3 install git+https://github.com/AmbientDataInc/ambient-python-lib.git
# sudo pip3 install modbus-tk

if __name__ == "__main__":
    # Connect to the slave
    serial = serial.Serial(
                           port='/dev/ttyUSB0',
                           baudrate=9600,
                           bytesize=8,
                           parity='N',
                           stopbits=1,
                           xonxoff=0
                          )

    master = modbus_rtu.RtuMaster(serial)
    master.set_timeout(2.0)
    master.set_verbose(True)
    am = ambient.Ambient(チャネル番号, ' ライトキー ')

    while True:
        try:
            data = master.execute(1, cst.READ_INPUT_REGISTERS, 0, 10)
            result = am.send({'d1': data[0] / 10.0, 'd2': data[7] / 10.0})
            print(datetime.datetime.now(),
                    'voltage=',
                    data[0] / 10.0,
                    'freq=',
                    data[7] / 10.0,
                    'send status=',
                    result.status_code)
            time.sleep(60)

        except KeyboardInterrupt:
            print('exiting pzem script')
        except requests.exceptions.RequestException as e:
            print('request failed: ', e)

USBシリアルのポート名。/dev/ttyUSB0 のところは syslog を見て確認。
am = ambient.Ambient(チャネル番号, ‘Writeキー’)
ambient のデータ送信は、ご自身のグラフを作成するところで、チャネル番号、ライトキー、リードキーが発行されるので、そのチャネル番号、ライトキーを入れたら送信できます。

プログラムの起動は、raspberry pi 起動後手動でしています。
tmux or screen コマンドを起動する
上記 python プログラムを走らせる
tmux or screen から抜ける。
です。tmux や screen でプログラムを動かしておけば、teraterm とかが切れても動き続けますので良いです。

ambient に投げたデータは公開にしていますので、下記 URL からご覧いただけます。

自宅の商用電圧と周波数 -Ambient (ambidata.io)

上のプログラムには記載省略していますが周波数は 0.1Hz 単位なので、実際にグラフを出してみると見にくい感じになりました。2022年9月5日から 周波数データの3回平均したものも追加で表示するようにしました。

2023年2月3日 上記 ambient へのデータ投入は終わりました。理由は0.1Hz の分解では全く意味なしというところでした。周波数カウンタ作ったほうが良いと思いましたので、改めてやり直そうと思った次第です。

MCS-52 Basic 基板作成

ヤフオクを見ていましたら、BASIC-52 の基板を見つけたので購入。基板に書かれたアドレスから https://www.billy.gr/mcs-basic-52/ で公開されているガーバーファイルのようです。以前作成した BASIC-52 基板は EEPROM 領域がないため、プログラムの保存が出来なかったのですが、こちらの基板は EEPROM のソケットが付いています。

この基板を作成された方は EEPROM の代わりに DALLAS DS1230AB-70 という バッテリーバックアップ付き 32KB SRAM (NVRAM) を載せておられました。不揮発性メモリなので機能は果たしますが、Mouser 価格 4000円程度とお高い状況。また、EEPROM は HC138 のアドレスデコードで 8KB バウンダリになっているので、8KB 分しかつかいません。NVRAM はもったいないので AT28C64B など8KBx8bit の汎用EEPROMを使用することにしました。

WEBサイトを見ると基板のエラー情報が書かれています。

DC ジャックの GND 未配線は、DCジャックの端子を抵抗の切れ端で接続して、電源が入るようになりました。また、リセット回路からの信号は CPU のリセット端子まで来ていましたが、74HC32 のリセット信号が配線されるべき端子には来ていなかったためジャンパー飛ばして結線。私の所ではこの2か所手当することで動作しました。

*MCS-BASIC-52 V1.31*
READY

>erase       

READY
>
>10     REM Basic ROM directory
>20    ADR=8010H : PN=1
>30     IF XBY(ADR)<>55H THEN  END
>40    ADR=ADR+1 : BA=ADR
>50     IF XBY(ADR)=1 THEN  GOTO 80
>60    ADR=ADR+XBY(ADR): GOTO 50
>80     GOSUB 100: PRINT : PN=PN+1 : ADR=ADR+1:   GOTO 30
>100    PRINT "PRG",PN,"from ", :  PH1. BA, :  PRINT " to ", :  PH1. ADR,
>110    PRINT " (",ADR-BA,"bytes)",
>120   NB=XBY(BA)-2: IF NB<4 THEN RETURN
>130 IF XBY(BA+3)<>96H THEN  RETURN
>140    FOR XX=BA+4 TO BA+NB:PRINT CHR(XBY(XX)),: NEXT : RETURN
>prog
 1

READY

erase 命令で EEPROM 領域を初期化します。3分くらいかかるので気長に待ちます。その後プログラムを入れて、prog 命令を実行すると EEPROM にプログラムが保存されます。↑のプログラムは、EEPEOM にどんなプログラムが格納されているか表示するプログラムで、http://www.nomad.ee/micros/8052bas.shtml で公開されているものです。

>rrom

PRG 1 from  8011H to  8134H ( 291 bytes) Basic ROM directory

READY
>

rrom 命令を実行すると、EEPROM の1番目のプログラムを実行します。先ほど書き込んだ EEPROM に何が入っているかを表示するプログラムです。

>ram

READY
>new

>1 REM ASCII ART
>10 FOR Y=-12 TO 12
>20 FOR X=-39 TO 39
>30 CA=X*0.0458
>40 CB=Y*0.08333
>50 A=CA
>60 B=CB
>70 I=0
>80 T=A*A-B*B+CA
>90 B=2*A*B+CB
>100 A=T
>110 IF (A*A+B*B)>4 THEN GOTO 150
>120 I=I+1:IF I<=15 THEN GOTO 80
>130 PRINT " ",
>140 GOTO 170
>150 IF I>9 THEN I=I+7
>160 PRINT CHR(48+I),
>170 NEXT X
>180 PRINT
>190 NEXT Y
>
>prog
 2

READY
>rrom

PRG 1 from  8011H to  8134H ( 291 bytes) Basic ROM directory
PRG 2 from  8136H to  8417H ( 232 bytes) ASCII ART

READY
>rrom2

新しいプログラムを追加します。prog を実行すると EEPROM の2番目に格納されます。rrom2 と引数2で2番目を実行できます。

マニュアルを見ると、電源投入時に自動起動するプログラムの設定などもあるようです。また GPIO ピンもCPUについているので簡単に使えますし、このマイコンボードの右端にはメモリマップドI/Oの端子も出ています。プログラムのセーブが出来るマイコンボードは当時としては優れた機能だったかと思います。普通はROM差し替えですしね。まぁBASIC言語なので実行速度はお察しというところで。

E1DA Cosmos ADC 購入

やっとのことで、Cosmos ADC を購入しました。私は、E1DA Aliexpress Store https://ja.aliexpress.com/store/5142044 から購入しました。Aliexpress Standard shipping で2週間程度だったかと思います。

この Cosmos ADC の本体に何も信号を入れない状態のノイズが全体的に低く、アマチュアにはもったいないくらいの性能です。このグラフを出しているソフトは REW というソフトウエアです。

この Cosmos ADC に、USBオーディオインターフェースとプローブの端子を付けて、1kHz の信号を見てみました。

REW の信号ジェネレーターから 1kHz -3dB の信号を出して、アナライザ画面の表示を見たところです。THD+N 106.2dB と測定できます。

自作アンプの周波数特性や、入出力特性は Analog Discovery と FRA Plus で十分なのですが、歪率とノイズフロアは Analog Discovery ではどうにもなりませんでした。今回入手した Cosmos ADC なら、作ったアンプの歪率が高いとか、電源ノイズが出まくっているとかなどの確認が、私のようなアマチュアでも簡単に出来るようになりました。

MCS8051 BASIC-52 基板を買って組んでみました

電脳伝説さん https://vintagechips.wordpress.com/ の記事に、8752同等品でBASIC-52が動いた というのがありました。面白そうだったので、組んでみることに、基板はオレンジピコショップ https://store.shopping.yahoo.co.jp/orangepicoshop/ さんにて基板とCPUなどを購入しました。

今回組み立てた BASIC-52 基板は 8052 (Flashメモリ 8k) で動作します。↑の写真にあるようなCPU+メモリだけの最小構成のものです。今回購入した CPU は STC89C52RC(90C) というもので中華製互換チップです。これは、stc-isp-v6.xx.exe の書き込みソフトを使用して USB シリアルから Flash 書き込みをするタイプの CPU です。

http://www.stcmcudata.com/ というところが、製造メーカーの Web サイトです。このサイト右側に資料の pdf ファイルや STC-ISP ソフトウエアのダウンロードリンクがあります。書き込みソフトウエアについては、indows Defender が 「Trojan:Win32/Wacatac.B!ml」 を検出してすることがあるので、ダウンロードした .zip をウイルススキャンしてから unzip してください。 Wunzip したらドライバーなどのフォルダがありますが、何もインストールする必要はありません。stc-isp の exe ファイルをダブルクリックして起動するだけです。

書き込みソフトは電脳伝説さんの資料にあった、
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.88G.zip
や、その後のリリース
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.89G.zip
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.89G-tiny.zip
は Windows Defender にひっかかりません。

なお、BASIC-52 については、1.3 というのが最新版です。ソースはググると出てきますが、A Tiny 80(C)32 BASIC Board https://www.dos4ever.com/8031board/8031board.html に、ソースファイルと HEX がおいてあります。ダウンロードした HEX ファイルを ST89C52RC や AT89S52 などに書き込めば BASIC-52 が起動します。もしアセンブラでアセンブルしてみたい時は、ASEM-51 http://plit.de/asem-51/final13.htm というから v1.3 をダウンロードしてください。asem5113 を展開したフォルダでコマンドプロンプトを起動し、アセンブルしたら hex ファイルを作成することができます。

HEXファイルの書き込み(STC89C52RC)

ST89C52RC の場合は、STC-ISP を使用して、USBシリアル経由でフラッシュメモリの書き込みを行います。

  • ボードの電源を切る
  • stc-isp を起動する
  • MCU TYPE : STC89C52RC/LE52RC を選択する
  • シリアルポートを選択する
  • ファイル→Open Code File からダウンロードした HEX ファイルを開く
  • H/W Option のチェックボックスを確認する。Enable 6T にチェックを付けると倍速モードになります。
  • Download/Program ボタンをクリックする
  • ボードの電源を入れる
  • フラッシュメモリへの書き込みが行われる

HEXファイルの書き込み(AT89S52)

AT89S52 に書き込む場合は USBASP アダプタのファームウエアを書き換えて avrdude コマンドでフラッシュメモリの書き込みを行います。(TL866 II Plus などのパラレルライターを持っていればそれでも可能)

USBASP という AVR マイコンの書き込みアダプタがあります。これはアマゾンとかで検索すれば2個セットなどがたくさん出ています。AVR マイコンの書き込み機を持っておられない方は、2個セットがおすすめです。USBASP 用 AT89 対応ファームウエアは https://www.avrfreaks.net/comment/2109556#comment-2109556 に usbasp_AT89.zip として掲載されています。これをダウンロードして展開。main.hex というファイルがあるので、これを USBASP に書き込みします。USBASP は ATmega8(A) なので手持ちの AVR 書き込み機や、2個セット USBASP のうち1個使って、 AT89 用 hex を書き込みを行います。

  • 2個ある USBASP のうち1個の JP2 ジャンパをショーして、ファーム更新できるようにする
  • もう1個の USBASP とケーブルで接続し、USBポートに接続。avrdude コマンドでファームウエア更新をする
avrdude -c usbasp -p m8 -U flash:w:main.hex:i
  • ファームウエアを書き終わった USBASP の JP2 ジャンパを外す。(AT89対応 USBASP完成)
  • AT89 対応 USBASP を BASIC-52 ボードと接続する

結線は、MOSI/MISO/SCK/RESET と電源ピンです。USBシリアルから電源供給している場合は、USBASP から電源供給しないよう注意してください。avrdude コマンドでの書き込み例は以下のようになります。

$ avrdude -C avrdude.AT89 -p s52 -c usbasp -P usb -Uflash:w:version_1p3_hex.HEX:i -v

avrdude.exe: Version 7.0-20220610 (cb11423)
             Copyright (c) Brian Dean, http://www.bdmicro.com/
             Copyright (c) Joerg Wunsch

             System wide configuration file is "avrdude.AT89"

             Using Port                    : usb
             Using Programmer              : usbasp
             AVR Part                      : AT89S52
             Chip Erase delay              : 500000 us
             RESET disposition             : dedicated
             RETRY pulse                   : RESET
             Serial program mode           : yes
             Parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             PollIndex                     : 4
             PollValue                     : 0x69
             Memory Detail                 :

                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               flash                  33    12     0    0 no       8192  256     32   400   900 0x00 0x00
               signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
               atmelsig                0     0     0    0 no         32    1      0     0     0 0x00 0x00
               lock                    0     0     0    0 no          1    1      0     0     0 0x00 0x00

             Programmer Type : usbasp
             Description     : USBasp, http://www.fischl.de/usbasp/

avrdude.exe: auto set sck period (because given equals null)
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e5206 (probably s52)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: auto set sck period (because given equals null)
avrdude.exe: reading input file "version_1p3_hex.HEX"
avrdude.exe: writing flash (8192 bytes):

Writing | ################################################## | 100% 6.16s

avrdude.exe: 8192 bytes of flash written
avrdude.exe: verifying flash memory against version_1p3_hex.HEX:

Reading | ################################################## | 100% 1.60s

avrdude.exe: 8192 bytes of flash verified

avrdude.exe done.  Thank you.


BASIC-52 とは関係ないですが、C言語でプログラムをする場合は sdcc や、Keil μVision5 の C51 コンパイラが使用可能です。

BASIC-52 は EPROM/EEPROM 書き込み命令も持っていたりするのでおもしろいと思いますが、この機能は今回作成した基板では試せません。

興味を持たれたら BASIC-52 で検索してみると検索結果が多く出ます。それだけトライされている方が多いということかと思います。

TK-85 を Get しました

ヤフオクのワッチで TK-80 や TK-85 を見てていつも、いい値段だねぇとということでいつもスルーしているのですが先日1台落札しました。届いた後軽い清掃をして動作確認をしましたが

  • STEP/RUN 切り替えスイッチのレバー折れ
  • キーのチャタリングがひどい
  • 基板の反り → 放置

が最終的な残作業で残ってしまいました。スイッチは昭和なオーディオ機器にでも使われているようなスイッチなのですが、スイッチのピン間隔が 5mm だったかして今となってはどうしようもありません。レバーをエポキシで接着しました。

写真右側のレバーの根本にエポキシ接着剤が見えてしまっています。今のところこれで大丈夫そうです。オークション出品の写真でこのレバーが折れて無くなっている個体も良く見ますので仕方ないかと思います。

キーのチャタリングは、一度25キー外してみたのですがどうにもならんと判断。軽く掃除して戻しました。TK-85 のモニターROMのキースキャンは 9ms のチャタリング判定時間でやっていると付属の本に書いてありました。これを伸ばして多少はマシになるよう修正します。オリジナルの ROM を吸いだしてチャタリング除去時間の場所を確認します。

スクリーンショットはクリックすれば大きくなります。Visual Studio Code に Intel HEX Format プラグインを入れて編集しています。行末のチェックサムとか勝手に計算し直してくれるので便利です。修正箇所は 0697番地の 16 0E の 0E(14) が 9ms の設定値です。

ひとまず、この 0E を 5倍の 4D にしました。これを 2716 の EPROM に書き込んで TK-85 にセット。動かしてみたところ1回の打鍵でダブル・トリプルで文字が入るような状態はほぼ解消しました。まぁ25キーのスイッチも見つからないのでこれでマシになっただけでもよしとしましょうというところです。スイッチが経年でイカレテるので、完全なチャタリング除去は無理です。

オリジナルの ROM は無くすといけないので ROM2 ソケットに差しています。EPROM は手持ちに NEC D2716 があったのでこれに書き込みをしています。

RAMもプログラム領域などはモニタのメモリテストで good と出るのでひとまずOK。カセットインタフェースは今のところ試していませんが、PCのミキサーアプリで録音できるので暇なときにやってみようと思っています。

TL866II PLUS 25V/21V アダプターを作った(2764/27128版)

一つ前の記事、 TL866II PLUS 25V/21V アダプターを作った で 2716/2732 対応のアダプタ基板を作成しました。今回はバリエーションで 28ピンソケットのプログラミング電圧=1Pin の対応で基板を修正しました。

回路図や部品表などは、https://github.com/ngc6589/TL866II-PLUS-25V-21V-Adapter-for-2764-27128 にて公開しています。

このアダプタは 2764や 27128 など VPP=1Pin が対象です。作ってみて試しに手持ちの 2764 27128 に書き込みをしてみました。特に問題なく書けました。

余った基板は https://www.em9system.com/?p=989 にて頒布します。

TL866II PLUS 25V/21V アダプターを作った(2716/2732版)

TL866II PLUS のプログラマーは EEPROM などの書き込みや、ATMEGA328P のヒューズリセットなどお手軽でよいのですが、EEPROM となると書き込み用電圧が 18V までとなっています。この前の機種では 21V まで出たのですが現在は通販から消え去ってしまってます。今更 2716 を書くことは APPLE II のメンテで必要になるくらいなのですが、一つ作っておこうということで作っちゃいました。

回路図や部品表などは、https://github.com/ngc6589/TL866II-PLUS-25V-21V-Adapter にて公開しています。

このアダプタは 2716 VPP=21Pin 2732 VPP=20Pin が対象です。作ってみて試しに手持ちの 2716 2732 に書き込みをしてみましたが、 2716 は特に問題なし。2732 は書き込めず悩みました。ググった結果 XGpro というこのプログラマのアプリケーションにバグがあってワークアラウンドとして 2732 の 18Pin(チップイネーブル)をGNDに落として書き込むというのが今の状況です。これをすれば私のところでも書き込みは出来ました。

今回は初版とあって基板にミスがありますが余った基板を https://www.em9system.com/?p=965 にて頒布します。

Orbitron 用 DDEクライアント作成

アマチュア衛星などの通過予想に Orbitron というソフトを使ってます。CALSAT32 などもありますが、最初に慣れてしまったのがこのソフトなのでこれを使ってます。

この Orbitron は DDE で他のソフトに衛星名・アップリンク周波数・ダウンリンク周波数・ダウンリンクモード・アップリンクモードを渡してくれます。このデータのうち周波数はシリアル経由で無線機に送ることで自動的に合わせられます。周波数は衛星が近づいてくると高く・遠ざかる時は低くなるドップラー効果のため変動します。FMモードなら無線機の周波数は固定でも問題ないですが、SSB・CW は周波数を合わせないとすぐ聞こえなくなってしまいます。

今回は、Windows のプログラム勉強がてら DDE とシリアル通信するプログラムを組んでみました。開発環境は Visual Studio 2020 で言語は C#。プラットフォームは .NET 6 フォームアプリケーションです。

.NET 6 は初めて Visual Studio も久しぶりだったのでググりながら作成しました。作成したイニシャルバージョンは下記 github リポジトリの Release のところに置いておきました。

https://github.com/ngc6589/DDE2S

使い方は、シリアルポートを選択して、通信速度・通信設定のラジオボタンを押します。その後 CONNECT を押すとシリアル送信が始まります。ウィンドウ中央やや下のテキストボックスに、無線機に送る CAT コマンドを書きます。その時下記の <> 文字は Orbitron から取得した文字列に置き換わります。

  • <SN> Orbitron で表示される衛星名
  • <UP> アップリンク周波数 9桁で単位は Hz
  • <DN> ダウンリンク周波数 9桁で単位は Hz
  • <AZ> 方位角
  • <EL> 仰角

無線機の VFO-A に周波数を送る場合 FA<DN>; と書けばOKです。無線機の CAT コマンドで周波数が11桁の場合 FA00<DN> と足りない 00 を付けてやればいいです。コマンドが間違いなどの時は無線機から応答が返りますが、それは Receive 側に表示されるので目安になります。 FA; という無線機の周波数読み取り結果を表示するのにも使えます。