「ArduinoなのでSi4735DSPラジオのソフトを書き換える事でハード変更なしで使えるようになるのでは・・」と思い立ったのがGW頃でした。

その後、いつもお世話になっているLeoさんに相談に乗ってもらいながらソフトを書き換えを進めて何とか5月末にはそれなりに動作するようになりました。

丁度そのころ開かれた「関西自作の会」で頒布希望をいただきハードとサンプルプログラム入りのマイコンを頒布させていただきました。

今回頒布したプログラムはまだ発展途上でしたが、私自身のテンションはSSBモードに対応できたことで満足してしまい、「まっ、ボチボチ機能追加していこう」と思っていましたがJE3QDZさんから「ソースをくれたら色々触りたい」との依頼がありソースをお渡ししました。
(お渡しする時に、「こんな機能や、あんな機能を実装したい・・・」と勝手な独り言を、ブツブツ言いつつ、半ば実装を押し付けてしまいました(;^_^A。。。ごめんなさい)

その、「QDZさん」から「ハードは完成したがSSBが受信できない」と連絡を頂き、現象を聞いてみると、SSBモードに移行時「LW0ninarimasu・・・」と表示されてしまい受信できなくなる現象でした。

この現象は私も遭遇したことは有りますが極々稀で再現性が、全くなかったため「たまに出ます」と回答しましたが、「QDZさん」のところでは頻発(ほぼ固定)で発生するとのことでした。

I2Cの波形、プルアップ抵抗の変更、通信速度の変更、とある程度I2Cに絞って色々試行錯誤していただきましたが原因がなかなかつかめません。

最後は物理交換で切り分けしていくしかないと思い、マイコンとSi4735Module(ラジオ本体)も追加でお送りして切り分け調査してただきました。

その一方で、私がお願いしていた機能以外にも便利機能を毎日のように追加していただき開発スピードの速さには本当には本当に驚かされました。

内容としては下記の様な物になります。

 今回私が独り言で依頼していた機能・・・Hi
  ・電源OFF直前の周波数や音量のメモリー機能
  ・ミュート機能
 QDZさんオリジナル機能
  ・スリープ/ミュートタイマー機能
    スリープ・・・・・・タイマーで電源OFF
    ミュートタイマー・・タイマーでミュート→ミュートOFF
  ・不揮発メモリー初期化機能
  ・SWゼネカバ機能(周波数でモード自動選択)
    今までのHAM/SWL(今回「BCL」に改名)に加えてゼネカバ対応しました
  ・30chメモリー機能(周波数、音量、モードをメモリー)

簡単な紹介動画です。
盛りだくさんの機能を追加していただきました。


さて、話は戻って、SSBモードに移行する際の不具合の件も平行して作業が進み、マイコン個体によって発生頻度が変わることが判り、ここから一気に原因までだどりつきました。(まっそんなに一気ではありませんでしたが・・・(;^_^A)

結局、マイコンRC発振器の個体誤差(10%)が原因で処理速度の違いで現象が発生することが分かりました。

対応策としては、個体差を十分に吸収できるdelayをかけてようやく解決。

上記の「LW0ninarimasu・・・」以外に、表示は正常でBFOが出ない現象も発生していましたが、同じ原因で有ったため今回のプログラム改修により解決できました。

その他の細かなバグもなくなり新機能も充実して普段ラジオとし使える物になったと思います。

最後になりましたが、本件で大変ご尽力いただきましたJE3QDZ OMには感謝いたします。
ありがとうございました。

他にも自作の会のメンバーを中心にJM1VQBさん、JR3BGTさん、JM1FIAさんから情報提供をいただき、JE3GPMさんから機材提供を頂きました。
本当に沢山の方々の支援をいただき大いに助かりました、ありがとうございました。

また、今回のトラブルでなんとなく解かったつもりだったI2Cの規格やその他の箇所を改めて調べてみることで私自身も大変勉強にもなりました。