エントリー

Si4732レシーバー(ATS-20+)のファーム改造

前回ファームを(現時点で)最新のV3.0.8に更新したが操作性が自分に合わないので改造

改造のポイントとしては日本向けの実用的な受信機にすることにして実験用の多機能受信機は別途

画面

IMG_20230531_204106.jpg

基本操作になるが,ロータリーエンコーダを回すと周波数が変わり,ロータリーエンコーダを押すと周波数の変更桁を変えることができる様にした

機能別操作
機能 ボタン V3.0.8の操作 改造後の操作 備考
周波数変更   ロータリーエンコーダの回転で周波数ステップ分の周波数が上下,サブ時はサブ周波数の上下 ロータリーエンコーダの回転で設定桁の周波数が上下  
周波数ステップ STEP ボタン押下,ロータリーエンコーダの回転で周波数ステップ変更(1/5/9/10/50/100kHz),サブ時はサブ周波数ステップ変更 ロータリーエンコーダのスイッチを押下,回転して周波数の変更桁を設定,再度押下か操作なしで(自動)解除

SW時のみで,MWは9kHz,FMは0.1MHz固定

AGC/アッテネータ AGC ボタン押下,ロータリーエンコーダの回転で変更(AT0/AGC/AT1-36) 変更なし 選択肢が多いので変更なしとした
バンド切替 BAND+ ボタン押下,ロータリーエンコーダの回転でバンド変更 ボタン押下でバンドアップ 前回更新した日本向けバンドと同じ
Soft Mute control BAND- ボタン押下,ロータリーエンコーダの回転で変更 ボタン押下でバンドダウン 機能は未対応
音量 VOL+ ボタン押下,ロータリーエンコーダの回転で音量を調整,長押しで連続可変 ボタン押下で音量アップ,長押しで連続可変  
Automatic Volume Control VOL- ボタン押下,ロータリーエンコーダの回転で変更,長押しで音量ダウン連続可変 ボタン押下で音量ダウン,長押しで連続可変 変更は未対応だが機能はON
帯域変更 BW ボタン押下,ロータリーエンコーダの回転で変更 ボタン押下で順に帯域変更 受信モードで設定帯域が異なる
受信モード MODE ボタン押下,ロータリーエンコーダの回転で変更(AM/LSB/USB) ボタン押下で順にモード変更(AM/LSB/USB) WMはAM,FMバンドはFMのみ
周波数SCAN Rotry ロータリーエンコーダのスイッチでSCAN開始/停止,SCAN周波数の方向は事前のロータリーエンコーダ操作に準じる STEPボタンでSCAN開始/停止,SCAN周波数の方向は事前のロータリーエンコーダ操作に準じる 周波数SCANは周波数変更でも停止
サブ周波数切替 Rotry 受信モードがSSB時(LSB/USB)ロータリーエンコーダのスイッチのトグルで切替 なし(SSBで自動的に使用) STS-20ではBFOのON/OFF
消音 Rotry ロータリーエンコーダのスイッチを長押しでトグル 変更なし  
  • 機能別にボタン押下してロータリーエンコーダで変更が面倒(操作の一貫性はあるが良く使う機能は簡単に操作したい)
  • ロータリーエンコーダのみで周波数変更可能(周波数合わせを重視した操作性)
  • 機能ボタン押下,ロータリーエンコーダの回転による操作は2~3秒操作なしで自動解除(V3.0.8では10秒)
バンド別画面

(MW画面)

IMG_20230531_204009.jpg

(FM画面)

IMG_20230531_203945.jpg

(SW画面(AM))

IMG_20230531_204036.jpg

周波数変更桁の変更

ロータリーエンコーダのスイッチ押下で桁マーク設定時表示が出るのでロータリーエンコーダを回転させ左右に周波数変更桁マークを移動(100kHz~1Hz)

IMG_20230531_204121.jpg

ロータリーエンコーダのスイッチ押下または2~3秒操作なしで桁マーク設定時表示が消える

AGC/アッテネータ

AGCボタンを押下するとAGC/アッテネータ表示部がリバース表示(V3.0.8と同じ)

IMG_20230531_204201.jpg

機能の操作

機能ボタン通りに変更(V1.1.5と同じ)

Sメーター

Sメータの基準でS9を指す状態は30MHz以下の場合コネクタへの入力電圧は100μV,アンテナ端子の入力インピーダンス50Ωとして終端時の電圧は50μVとのこと

ライブラリの値は「0-127 (dBμV)」と記載されていた(μVと思って良いのかな)→ dBなので0-127で良いのでした勘違いしていた

50でS9になるようにしてみた(rssi * 9 / 50)

S9オーバーは+dB10/+dB20/+dB30と示されるが現状は未対応

当初は表示バーをスペースのリバースで表現していたが無信号(S0)状態だと何だか判らないので目印的に文字を表示した(グラフィック表示は処理性能的に最初からやる気なし)

正式な定義ではないがS1毎に+6dBが一般的でS9オーバーはdBμVの場合+20,+40,+60となる(Vの場合は20log,Wは10log)

スプラッシュ

改造版かどうか判断できなくなるので起動時のスプラッシュが「V3.0.8-By PU2CLR」の表示の後「Update Edition X」と変わる

「X」は「A」から始まる版数としている

IMG_20230531_204331.jpgIMG_20230531_204312.jpg

スケッチ

更新は以下の1ファイルのみで,V3.0.8のスケッチに入れ替えてコンパイル

SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V8.ino(UTF-8N, LF, TAB4)

自分が見易いようにコーディングスタイルを変更(全部ではない)しているが冗長など削除していないので判りにくい部分もあるかも

不具合修正や更に改造したら連絡もらえると幸い,予告なく更新することがあるので了承を

注意事項

kHzより上をメイン周波数(もしくは単に周波数),下をサブ周波数(もしくは単にサブ)と記載

ATA-20の取説やスケッチでは「BFO」と記載されているが厳密には「BFO」ではないのでサブ周波数とした(BFOはSSBを復調するためのキャリア生成器でデジタルでは使用しない)

メイン周波数の変更時は一時的に受信周波数なしになるためか「ザー」と音がする(SDRでも発生することだが周波数値を変更する際のArduino・Si4732間の通信時間が関係するのかと思われる)

周波数を連続的に扱うためサブ周波数を「0 - 999Hz」で使用し1kHz超で基準周波数をアップ(逆はマイナス時にダウン)するように対応したところ1kHzの切れ目で周波数が連続しないことに気付く

どうやら周波数のズレがあるのだろうと思われるが厳密に調査はしていない(例えばVFOで調べてはいない)

※)基準周波数が7101kHzと基準周波数7100kHz+サブ(+1000Hz)は同じ(周波数を受信)ではないということ

影響するのはSWL(アマチュア無線局の受信)のみで,通常はkHz単位の使用すると想定し(-500 - +500Hz)で切り替えるようにした

同様に500Hz単位でも連続しないようだ

上記の対応変更によりSSBからAMに切り替えた際に1kHzの間引きが発生する場合がある

また周波数の終了指定端で問題あるかも(未確認および対応しない)

Sメーター対応は上記(S9オーバーは未対応)

LWバンドはなし

RDSは対応未

Automatic Volume Control は設定変更は未対応だがSSBなどの音量が少ないので機能はONにしている

ロータリーエンコーダの回転方向が当方の基板の場合のみか逆になっていたので回転方向の判定を修正している(648~696行あたり)

// Use Rotary.h and Rotary.cpp implementation to process encoder via interrupt
void rotaryEncoder()
{
// rotary encoder events
uint8_t encoderStatus = encoder.process();
if(encoderStatus) {
if(encoderStatus == DIR_CCW) { //was DIR_CW
encoderCount = 1;
} else {
encoderCount = -1;
}
}
}

FMで周波数SCANを途中で終了させると,稀に変更できない(SCAN単位である)10kHz位置で止まることがある(最後に補正しているのに)

周波数SCANはMW:9kHz, SW:1kHz, FM:10kHzの固定

拙者は縦横が基板と同じの最小サイズで厚みは30㎜の筐体で使用中

IMG_20230602_104011.jpg

フィッシングメール

今度は三井住友カードを騙り詐欺メールがきた

SS20230601_001.png

流石にこれでは困るので対策したがセキュリティ確保のためどうしたかは記載しない

SS20230601_002.png

フィッシングメール

またAmazonを騙ったフィッシングメール(詐欺メール)が来ていた

メールアドレスが知られてしまったのでメールアドレスを変更しない限り回避は困難だろう

今回はプライム会員更新の確認を餌に送られてきたが日付が異なるのと確認なしに設定したこともありおかしいと判断(文面でも怪しいの判るけど)

SS20230528_101.png

今後もAmazonからのメールは細心の注意を!

SS20230528_102.png

DDSモジュールの確認

DDSでVFOを作製しようとして購入していたDDSモジュールをテスト

ADF4351

周波数が35MHz~4.4GHzで,実はちょっと勘違いして(Aliexpressで購入したので安価だったが)購入したモジュール

本当はDC~30MHz位のDDSを考えていたので,後にAD9834モジュールでも購入しようと思う

このチップは高い周波数を安定して出せるようなのでアップ・ダウンコンバーターとして利用しようかと考えている

動作確認するために「こちら」と「こちら」から情報をもらった

「LCD keyboard シールド」を準備して

IMG_20230520_193153.jpg

3.3Vが必要なので新しく購入したコンパクトなDCDCモジュールを使用

IMG_20230525_142928.jpg

裏側のパターン処理で3.3Vなど固定出力可能

IMG_20230525_143010.jpg

多少のズレはあるが問題なく動作

IMG_20230525_165317.jpg

AD9833

12.5MHz位まで出力できるモジュール

IMG_20230528_120742.jpg

接続

Arduino AD9833
5V VCC
GND DGND
SCK(#13) SCLK
MOSI(#11) SDATA
SS(#10) FSYNC

Arduino用のライブラリに動作確認用のスケッチがあったので使用

IMG_20230527_203113.jpg

しかし,サイン波,三角波ともに全く出力されず

IMG_20230528_120540.jpg

不良品かACカップリングのためコンデンサを取り付ける際に破壊してしまったのか・・・

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed