PICが飛んでもプログラムを焼き直す、もしくは、PIC変えて焼き直せば復帰できるのは分かっていました。
秋葉原にすっ飛んで行って、秋月のPIC焼きこみツールを手に取るところまで行きました。
akizukidenshi.com
5000円超のこのキットを持って、他にも買うもの無いかな、と店内をうろつくのはいつもの事。コロナ禍の為、入場人数規制をしていて、店内は良く見えるし。
ふと、目についた。Arduino。。。 ラズパイより小さな1ボードコンピューター位の認識でしたが、そういえばエレキーを作ったというサイトや、USBIFCW4でおなじみのサイトにも、キーヤーシールドがあったのを思い出しました。
nksg.net
秋月の店頭では、シールドが何かなんて知らないレベルでしたが、Arduinoで遊べたら
PICプログラマの数分の一の費用で色々出来そう、と思い直しそっとプログラマを戻しました。
情報が無さすぎるので、その場ではその他パーツ(やっぱり買った)を購入して帰宅。
帰り道の電車内で調べていたら沢山ヒット。
K3NGさんの作ったキーヤーのスケッチ(プログラム)を使って、シールド(周辺基盤)を作ってメッセージキーヤーを構成している人が何人もいる事を知りました。
Arduino UNOとか、MEGAとか色々ありますが コイツらUSBポートを持っていて、
開発環境のArduino Software (IDE)をPCにインストールすれば直結してプログラムを流し込めるので、ライタも不要。
Arduino モジュールは、1000円~数千円、中華互換機ならAmazonで3個で1000円みたいな価格です。
本家K3NGキーヤのgithub
github.com
そしていつも頼りになる情報源のjh4vajさん
www.jh4vaj.com
マルツキーヤー同様、Arduinoの脚にパドル入力、VRでスピード、SWでメッセージ再生
あとは、リグへのキーイング回路とブザー回路を付ければ良いのを理解しました。
あとは沢山あるArduinoやその互換機から何を選ぶかってだけです。
PICのICからArduinoのモジュールになるのでどうしても大きくなってしまう。
マルツキーヤーはB基板の切れ端を使ったけど、今回は、秋月の45mm角の基板に
収めたいと思ったので、思い切って小さなSeeed Studio Seeeduino XIAO-Arduinoを使ってみることにしました。
決め手はこの小ささに惹かれたから。
こいつは3.3V電源で動くので3.7VのLiPoバッテリーで直接駆動できます。
入力は5V入力まで。9VとかはNGのようです。
akizukidenshi.com
このチョイスは後でいろいろ大変でした。
シールドの回路図は、jh4vajさんが作成されたキットを作られている、JR1KDAさんのサイトを参考にしました。
K3NG キーヤーjr1kda.wordpress.com
さて、Seeeduino XIAOは CPUが ARM® Cortex®-M0+ 32bit 48MHz で 遅い。
低電圧3.3Vで動くので、アナログ系の値が狂う。K3NGキーヤーのシールドは5V電源を基調に回路定数が組まれています。VRでのキーイング速度変更、メッセージSWのchは抵抗で分圧しているので、電源電圧が違うと分圧値も違うよね。
その辺は組んでみてから考えようと、なんといっても小さいのがイイと進めました。
全然気づいていなかったけど、このSeeeduino XIAOにはEEPROMが搭載されていません。
IDEでK3NGキーヤーのスケッチを書き込もうとして、スケッチがEEPROMを叩いていてEEPROMが無いぞ!とエラーが出て気づきました。🤣
K3NGキーヤーは、メッセージやコマンドモードなどの状態を電源切っても覚えておけるよう、EEPROMにメッセージや各種パラメータを書き込んでいました。
調べればすぐに出てきますがエラーの回避方法が見つかりました。
Seeeduino XIAOの使い方:フラッシュメモリでEEPROMを行う
搭載している小さなフラッシュメモリにEEPROMを叩きに来たら代わりに投げ込むようです。
このおまじないをしたら、エラーは出なくなりました。
スケッチを起動すると、コマンドモード時に点灯するオンボードLEDが電源ランプと一緒に点きっぱなし。コマンドモードに入ると消灯。通常モードで点灯。あれれ。
逆だなぁ。回路図をよく見ると、オンボードのD13のLEDがなんとAct_L
Arduino UNOやNanoなどはAct_Hなんですよね。command_mode_active_led この変数で制御しているようです。
K3NGキーヤーのスケッチはファイルが大量にあるのでこの変数を叩いているファイルを見つけられなかったのですが、JR1KDAさんに相談したところ、
IDEではgrepできないので、外部エディタでgrepしています。
k3ng_keyer.ino(17132):
#if defined(FEATURE_COMMAND_MODE) && defined(command_mode_active_led)
if(command_mode_active_led) {
pinMode (command_mode_active_led, OUTPUT);
digitalWrite (command_mode_active_led,LOW);
#endif //FEATURE_COMMAND_MODE && command_mode_active_led
で、ポートを設定していますので、ここのLOWをHIGHに変えて、次のポートへの書き込みでHIHGとLOWを入れ替えれば良いように思います。
とアドバイスをいただき、スケッチのファイルの中身のステータスを書き換えて、無事に解決しました。grepって知らなかった💦💦
出来ました!燃える、爆発するといわれるLiPoバッテリーを電源としました。
ちっちゃい!
メッセージボタンは別基盤に外出しにしました。が、ツイストペアコードで延長すると
電圧降下で、使えるボタンは2つまで。1つはコマンドモードに入るボタンなので
メッセージは1つ。ということで、コマンドボタンとメッセージボタンを1つキーヤーシールドの空きスペースに実装、ブザーを少しずらしてます。
それ以外に、外付けで更にメッセージはSWは2個使えます。
マルツキーヤー基板との大きさ比較。基板切れ端のキーヤーよりは大きくなったけど
ジャック実装(コード引き出しは断線しやすそうだった)2層構造で基板の下に
LiPoバッテリーを置けたので006Pが不要に。
Seeeduino XIAOの下、ピンソケットの間にブザーとキーイング用のトランジスタを置いています。
多摩川コンテストではCTESTWINとFT-991AMの内蔵キーヤーを使って乗り切りました。
このK3NGキーヤーは 12/6の立川市 昭和記念公園でデビューしました。
脚には、ネオジム磁石を付けて、パドルと並べてボディにガチンとくっ付きます。
VCHアンテナを持って行って、7MHzCWにオンエア。しかし、1時間に1回くらい 計2回ハングアップしました。全くパドル操作を受け付けなくなったので電源OFF/ONで復旧はするけどEEPROMが無いのでメッセージが消失。再起動後に都度CQを再登録。
Arduino Nanoで作り直すかなぁ・・・とフィールド1回で引退の危機。
その2に続きます・・・・