Taylor氏が開発した低電力ビーコン送受信プログラムで、数Hz帯域幅でSNR-28dBの信号までデコード可能な136kHz帯でもよく使われるデジタルモードのひとつです。WSPRコードの生成はPCのソフトで行いますが、PCをつかわず送信機単体か外部コントローラーのPIC内で生成できないものか模索中です。幸いなことにWSPRのソースコードは公開されておりユーザーマニュアルにWSPRコード生成の概要が記されていますが、ソースコードやマニュアルを見ても拘束長?畳み込み?などなど素人の自分には最初なんのこっちゃわかりませんでした。Talbot氏のサイトにWSPRコーディングに関する具体的な手順の解説を見つけました。FEC)も少し勉強してようやくつかんできました。備忘録としてソースコードを読んで解説を訳しながらまとめてみることにします。基本様式は、コールサイン(原則6文字)、グリッドローケータ(4文字)、送出電力(2文字)の計12文字(=12バイト=96ビット)ですが、これらをまとめて50ビットに圧縮します。数字、アルファベット、スペース記号を0から36の数値に割り当てます。50ビットに圧縮されました。後の前方誤り訂正処理(FEC)を行うため、圧縮した50ビットを1バイト値の1元配列として割り当てます。81ビットになります。88ビットの器が必要になります。その器に上から数値化コールサインNと数値化グリッドローケータ・電力Mを隙間無く入れ、残りの器(7番目の3ビット目以降)はすべて0とします。3.FECエンコード32ビット長のシフトレジスタを2つ用意して、データの最初のバイトのMSBから1ビットとりだして、各々のシフトレジスタを右に1シフトさせてからLSBに格納します。一つ目のシフトレジスタと0xF2D05351とのANDをとり、ビット間のXORをとった結果を別のレジスタに格納。ひとつのシフトレジスタと0xE4613C47とのANDをとって同様にビット間のXORをとった結果をレジスタに格納。この操作を81回繰り返すことによって162ビットのコードが生成されます。4.インターリーブ無線による信号伝送においてランダムエラーとバーストエラーに対してFECはランダムエラーには強いが、バーストエラーにはあまり強くないのでインターリーブを施します。ビットの並びをある法則によってシャッフルして隣同士のビットを離すことによりバーストエラーに対抗する手法です。WSPRの場合は、162ビットのコードに順番にビットに番号を振って、その番号を8ビットであらわしてビットの並びを逆さにして並び替えます。符号なし8ビット整数0から255まで順番にビット並びを反転します。"72"並び替えられた番号順にビットを並び替えます。ビット並びを反転した整数が162未満の場合、その整数の番号の位置にFEC処理したコードを順番に1対1で割り当てていきます。これをコード数である162回繰り返します。これで162ビットのデータシンボルが生成完了です。最後にあらかじめ求められた擬似ランダム同期シンボルとデータシンボルを連結して1シンボル2ビット(4階調)の最終送出データが完成します。2間違っているところがあるかもしれないので逐一修正しますが、この手順をCでコーディングしてみようと考えています。アマチュア無線2014年8月27日水曜日ムーミン谷の国からハムフェアも終ってまだ1週間も経っていないのに、遠い過去のような感じがするのは気のせいでしょうか。みなさんいかがお過ごしでしょうか。Outになっていましたが、今年7月過ぎからキットのサプライヤーを新しくして少しずつキットの販売を再開しています。以前から475.5kHz帯開放を見据えてTX-136の兄弟機TX-500を購入しようとしばらくアンテナを張っていたところ、ハムフェア直前にTX-500キットの在庫5セットを確認したのでこのタイミングで1セット購入に踏み切りました。ここのところの円安でTX-136を購入した頃に比べて10,000円以上高くついてしまいましたがこの送信機シリーズの完成度の高さには疑いもないのでまだまだコストパフォーマンスは高いと思っています。今回もPayPalを使いましたが、適度な自制心(笑)があれば海外通販にはとても便利ですよね。そんなわけで、本日到着しました。注文してからほぼ1週間。電源ケーブルも同梱されてますTX-136のときはパーツの欠品何点かと基板のパターンが一部切れたりとあまりよろしくなかったのですが、今回は果たして...製作過程は逐一ブログで報告します。Mini-V2ブログに書きましたが、試験的に基板の発注先をかえて基板を発注することにしました。プログラム済みPICとのセットを再販しますのでよろしくお願いします。夏が終わりました先日の23,24日はハムフェア2014に参加していました。展示機材をリュックに詰め込んで家を出て1時間ほどで会場に到着しました。秋の気配がするとはいえまだまだ蒸し暑く汗だくになりました。7L1RLL若鳥さんとお会いして入場。_)mやはり、向かって左端の大きなローディングコイルやリッツ線できれいに巻かれた135kHz,475.5kHz帯短縮コイル&マッチングトランス整合システムに注目が集まっていました。自分もFSK改造TX-136、外部コントローラー実機とプログラム、そしてMini-Whipを展示させていただきましたが、マニアックすぎたのかほとんど質問されませんでした^^;;;まぁでもhamlife.jpの記事でも入場者数が昨年より増えたそうで、たくさんの方がこちらのブースにも足を運んでいただいたようです。記帳もおそらく80名くらいはいったのではないでしょうか。ブースで訪問された方を相手にするのは今回初めてなので、いろいろと勉強になりました。多くの方は、「このコイルはなんですか?」という切り出し。あとは「135kHzやってみたいんですけどね~」などなど。バンドが解放されて5年経過していますが総じて自分たちが当たり前と思っていることもまだまだぜんぜん認知されていないなという印象でした。editionが発刊されたそうです。購入して勉強するつもりですが、今までの自分や135kHzで活躍されている皆さんの運用経験を踏まえて何か日本でも手引きになるような書がもうそろそろあってもいいんじゃないのかなぁとひしひしと感じています。導入しやすいように標準の設備の準備方法とか運用の実際とか自分もこれならできそうだという気持ちにさせるようなものがないと今後も局数は伸びないでしょう。来年は475.5kHz帯も開放される予定なのでなおさらそのように思います。ハードウエア面でもメジャーなメーカーがわざわざこの周波数帯の機器を開発するとは到底期待できないので、JUMAまでとはいかないまでもまじかるくらぶさんのように135kHz関連のキットも何かどこかで出してみたいなぁと思います。話が思いっきりそれてしまいました^^;お昼で中座したときに、すこしだけ会場を回ってみました。うわさになっていたこればっちり見てきました。コンパクトで良いですね。モービルでFT-857を使っていますが、後継機期待できそうです^^写真にはありませんでしたが、CQ出版から発売予定のTRX305でしたっけ、こちらの実機も触ってきました。フルディジタル機ということでしたがメーカー機と比べても受信音の雰囲気など引けをとらない印象です。こちらは200k円弱になりそうで、ちょっと高めですが弄るのにはよさそうだなーと思いました。あと、期間中の唯一の戦利品はこれ。1.2GHzの中古IC-120を先日の関ハムでゲットしたのでV/Uで使えるアンテナを探してこちらを購入しました^^ゆっくり設置して楽しみたいと思います。長波だけでなくほかのバンドも出ますよ~あと、1日目のアフターでは突発的に数名の有志で新橋の鳥料理居酒屋で飲み始め、2次会以降はコンテスターが集まる某飲み会に無謀にも乱入して夜中2時近くまで飲み歩いてしまいました^^;;何とか鳥(名前忘れた(汗)を炭火で。そんなわけで、非常に充実した2日間でした。アイボールいただきました各局どうもありがとうございました。mini-V2基板セット無事すべて完売いたしました。ありがとうございました。アマチュア無線2014年8月19日火曜日TX-136再進化計画とハムフェアの準備JUMA製135kHz帯CW送信機キットTX-136のFSK対応ファームウエア改造を見直し整理して第一弾が完成しました。一口にFSKといってもさまざまなモードがあるため、汎用性を持たせるように外部からのコントロールはDDSのレジスタから引き算する値をシリアル通信経由でダイレクトに入力する形に変更しました。0.0373Hzと、TCXOの精度1ppm(0.136Hz)よりも小さい値になり十分以上でしょう。これでサムウエイのTX-2200Aオプション2と比肩する(それ以上?)機能が備わったことになります。外部コントローラー側も、各モードのプロトコールに見合うシフト量を送信するようにプログラムを修正しました。ブースに実機展示させていただけることになりましたので、具体的な手法についてをそちらで公開します。他にも475.5kHz帯やアクティブアンテナなどの展示もあるそうなのでご興味ありましたらぜひブースまで足を運んでいただけると幸いです。自分もブースでお手伝いさせていただく予定です。タイトルにTX-136再進化計画とありますが、次の第二弾ファームウエア改造計画を備忘録兼ねて。WSPRモード対応です。TX-136のファームウエアをビルドしたときの消費プログラムメモリはおよそ33%とまだまだ余裕があります。QRSSとDFCW対応はとりあえずいけそうです。WSPRはコード変換プロトコールやソースは公開されていますがライセンス上公開されたソースの引用改変ができず、自分で変換プログラムを作って本体のPICに入れ込みたいので前の2モードが完成してから手をつけます。Mini-V2の基板プログラム済みPICセットのお取りおき分と残り分を持参します。残りは2セットありますがご希望の方いらっしゃいましたらメールでご連絡ください。先着締め切りで、ハムフェア前日までご連絡なかった場合でも一応持っていきますので当日直接お声をかけてください。電子工作2014年8月9日土曜日OLED(有機EL)モジュールお試し関ハムやFDコンテストも終わってひと段落、これまた中断していたDDSVFOの開発を再開しようとブレッドボードに組みなおしました。今度はMCUを20ピンの18F14K22から28ピンの18F26K22に変更しました。18F26K22はプログラムメモリが64KB、RAMが4KB、EEPROMも1024Bと各メモリの搭載量が多く、また動作クロックも最大64MHzと高速なのに値段が安い、と18Fシリーズの中ではコストパフォーマンスが高いというところに目をつけて採用しました(秋月で1個220円で購入しましたが、最近240円に値上げされたようです)。ソースの移行については、Config文とクロック関連のレジスタの修正、ポート関連の割り当て変更と、とくに入力系統を内部プルアップが有効になるPORTBに移しました。同じ18Fシリーズなので大幅な変更なくMCU移行は無事完了しました。ここで以前から試してみたかったOLEDモジュールへ換装してみました。使用したOLEDはaitendoで購入した128x64ドット単色グラフィックモジュールです。表示領域が非常に小さい(1インチ未満)ものの、標準GLCD解像度を持っています。(秋月の超小型GLCDは128x48です)インターフェースは4線SPI専用なので、ハード的にはGLCDとそのまま置き換えが可能です。最初戸惑ったのはピンの名前でした。・CS(チップセレクト)・D/C(データ・コマンドセレクト)・SDI/SDO(シリアルデータ入出力)・SCK(同期クロック)という名前が通常だと思っていましたが、このモジュール(他のaitendoのモジュールもでした)では、見慣れない"AO(A0?)"と表記されたポートがありました。aitendoのサイトにはポートの説明が何もなかったので、サンプルプログラムをDLしてソースファイルを見てみたら、どうやらD/Cと同じだろうということで落ち着きました。AO(A0?)って何の略でしょう。わかる方いらっしゃいます?ポートの謎が解けたところで今度はソースの変更ですが、コントローラーチップのマニュアルを読むと表示制御コマンドは一般的なGLCDと同じため、モジュール初期化部分の追加だけでよく修正はきわめて容易でした。OLEDとGLCDのスタートアップ画面比較。OLEDは縦方向が64ドットなので下4分の1が表示されません。通常はOLEDのほうが白黒反転しますが、コマンドでスタートアップのときのみ反転させています。同じもの表示させてもまったく印象が違いますね。小さいのにコントラストがくっきりしていて離れたところからでも視認性は格段に上がっています。表示切替時の残像も皆無で小気味よいです。消費電流はまだ確認していませんが、コントラストを強くすると電流が上がってしまうのでコマンドでほとんど低いほうにあわせていますが、表示的にはぜんぜん問題なさそうです。いうわけでOLEDは表示器として十分以上に使えそうです。ひとつだけ問題が...撮影したiPhoneのカメラの表現力がいまひとつでわかりにくいですが、いわゆる焼きつき現象です。数分のみ放置しただけで、長時間点灯部分のドットの残像がすでにみられます。サイトを巡回してみるとOLEDいわゆる有機ELディスプレイの焼きつき現象があちこちで話題になっていました。いえばソニーのPSPも一時有機ELを採用したかと思えばまたTFT液晶に戻していたのを思い出しましたが、焼きつき現象が原因のひとつだったのでしょうか。勝手な予測ですが、バックライトが不要で表現力が高いと評価されていたOLEDもなかなかメジャーになれなかったのは、この現象に対する根本的な有効策が見つからないからなのかもしれませんね。このモジュールでも従来の秋月ミニGLCDでも使えるように開発を進めていこうと思います。電子工作2014年8月8日金曜日FDコンテスト移動8月2日と3日、山梨県のとある山奥までFDコンテストのため移動に行ってきました。早朝5時過ぎに出発し、1名twitter、G+つながりの局長さんを途中で乗せて首都高速から中央自動車道を名古屋方面に向かいました。夏休みで土曜日だったせいか下り線はすでに25kmほど渋滞。10時過ぎにようやく現地に到着し、荷解きをした後他のメンバーが来る前に136kHzのアンテナを上げて運用開始しました。アンテナはいつもの12m傘2条つき短縮バーチカルでしたが、高い立ち木が多く地面も掘るとすぐ石に当たったりなど条件がよろしくなく、アンテナ入力抵抗はやはり200Ωと高い値でした。以前富士市移動のときにも経験しましたが、立ち木が多いとアースマットの下に絶縁シートを挟んでもアンテナ入力抵抗はほとんど下がりません。時間の余裕もあまりないので突き詰めず変換トランスで50Ωに落として送信機に接続しました。風もなくVSWRもバンド内1.1から1.3と安定していました(アンテナ入力抵抗が高いためバンド幅は広くなっている)送信出力も38WとまずまずでしたがCWでCQ連呼しても応答ないためQRSS30でID送信しました。後日JN1MSOさんのArgoで捕捉されていたのを確認しました。粘りたかったのですが、急に雷雲が出てきてしまいやむなく一時中断してFDコンテストの準備に移りました。136kHzで使ったアンテナは傘エレメントをはずして垂直部分だけ残し、前日工作した80mバンド用のローディングコイルを取り付け、アースは136kHzのアースマットをそのまま使用しました。クリップとマッチング用のクリップで調整します。136kHzやっていると、ローバンドの短縮バーチカルが容易に思えてしまう不思議hi午後になって他のメンバーとも合流し、1200MHzまですべてのアンテナや設備を設営しましたが開始の21時直前までかかってしまいました。80mと20mを運用しましたが、早出のためか眠ってしまいあまり貢献できませんでした^^;また、80m運用時どうもPCのタッチパッドに回り込んでたらしく、カーソルがしばしば動かなくなってログ入力修正などに障害が出てしまい戸惑ったりと、課題が残る結果になりました。いうかもっとCWの受信能力を高めないと><136kHzのアンテナ設備を利用したローバンド運用が手軽にできそうなので、160m用のローディングコイルを作って移動運用したいなと思いました。