2014年 09月 26日

電池ケースの電圧降下

よくある、マイナス側がスプリングになっている電池ケース、直列10個のものを使っていたが、どうも電圧降下が大きい気がしたので計ってみたところ、端子一組あたり67mΩほど抵抗があった。

10個直列で入っているので、およそ合計で 670mΩ の抵抗が直列で入っている。つまり 2A 流すと、これら金具だけで 1.34V も電圧降下が起きてしまう。約 2.68W もの電力がケースだけで失なわれる。

検索したところ、この手の電池ホルダーの性能があまり良くないのは有名らしく、特にスプリングの材質があまりよろしくないようだ。

いろいろ探した結果アメリカ Keystone 社の電池ホルダーがよさそうということがわかったが、廃盤のようで非常に高価になってしまっている。昔は秋月で100円ぐらいで売っていたみたいだけれど、今はもう単4のものしかない。

ということで、代わりにaitendo の電池ホルダで作ってみた。(秋月にも同様の製品はある)

これで作ってみたところ、電池1つあたりの電圧降下は 1A のとき 5mV つまり抵抗値は 5mΩ になった。10本で 50mΩ ということになり、2A時でも 100mV の電圧降下に抑えられ、大きく改善された。

この電池クリップ(ホルダー)は基板にうまく固定する必要があって面倒なのと、プラス/マイナスの入れ間違いをしても気付けない (フェイルセーフがついてない) ので、あまり好ましい感じではない。が、電池ケースでやたら無駄に電力が熱に変わるのは嫌なのでしかたない。

測定方法

テスターの抵抗測定機能だと微小抵抗はちゃんと測れないので、デジタルマルチメーター2台による4点計測方式で測定した。

電池の金具部分に比較的大きな電流 (経路中の定格を上回らない程度) を流し、測定対象で降下した電圧を計って抵抗値を求める。今回は直読できるように、安定化電源の定電流モードで、丁度1A流れるようにして測定した (1A 流した場合、R = E / I なので、R = E になる)

ただし、電池を入れた状態での測定ではないので、電池の端子との接触抵抗は測れていない。あくまで金具中の抵抗値だけを計っている

2014年 09月 24日

KX3 ACC1の無線化 (シリアルポートのBluetooth化)

KX3のPC 接続用 ACC1は、RS-232C レベルの電圧レベルを想定している(正確には、0VとVCCの負論理になってるけど)

これをBluetooth化してみたという話。

部品

使ったのは

RN-42 は1500円と、余り安くはないのだけれど、国内技適マークがついており合法的に使える。また、シリアル経由または、接続済みBluetooth経由で内部設定を変更できるモードがあり、簡単に柔軟な設定ができる。

ロジック変換には3.3Vレギュレーター付きのちょうど良いのがあったので、これにしてみた。

実際のところ、負の電圧はいらないので真面目にRS-232C変換する必要はなく、単に電圧と論理変換さえできればいいので、ICを使う必要はないけど、面倒なのでこれにした。

レギュレーターの耐圧が14Vなので、13.8V だとギリギリすぎるのと、ドロップ電圧が大きくて結構発熱してしまう。本当ならKX3内部のスイッチングで降圧された3.3Vに接続できたらいいのだけれど、良い方法がない。40mA 流すと 0.42Wは熱に変わってしまってエコではない。

製作

ただ繋ぐだけなのでデータシート見つつ半田付けしたら普通に動いてくれた。

デフォルトだと115200baudになっているので、screen /dev/tty.xxx 115200 で接続した後に、以下のコマンドで設定しなおす。(38400baudに)

// <CR> は改行

// コマンドモードに入る (GPIO5 が10Hzで点滅するようになる)
$$$<CR>
// ボーレート設定
SU,38.4<CR>
// 設定確認
D<CR>
// 再起動
R,1<CR>
// コマンドモードを抜ける
---<CR>

(エコーされないので、ローカルエコーを有効にしたほうがわかりやすい。コマンドモードに入ってから + を送るとエコーが有効になる)

これはどうやら電源を切っても記憶されているようなので、最初の一度だけで良い。

最初、ボーレートの設定方法がわからず、GPIO7をプルアップして9600baudに固定してみたが、上記の方法で自由にボーレートを設定できるので、GPIO7は何もしなくてよい。GPIO7 をプルアップした場合、ソフトウェア設定に関わらず強制的に9600baudに固定される。マイコンとか別途繋いだ場合、設定はボーレート強制したほうが安定するとか、そういう用途に使えそう。

GPIO5 は接続が完了すると出力がゼロになるので、LEDを繋いでいても接続中は電流が流れずエコ。ただ、これは対応するデバイスファイルを open しタイミングで消えるので、ペアリングしただけではチカチカしたまま。

使用感

デバイスを指定すれば自動的にペアリングされ、/dev/tty.xxx に勝手にデバイスファイルが作られるので、それを指定して普通にシリアル通信すればよく、特に Bluetooth だからといって難しいことはない。

遅延がちょっとあって、ケーブル直と完全に同じ使用感という感じではない。

メリット

  • シリアルケーブルがいらない
  • ホストPCのUSBポートを占有しない
  • PC との GND の分離

デメリット

  • KX3側での消費電力増
  • 遅延

無線化できるメリットはあるにはあるけど、めっちゃ便利というほどでもない。サイドに繋いでいるケーブル類の殆どの無線化できたら便利だろうけど、難しい。数本繋いでいるうちの1本ケーブル減ったくらいでは嬉しさがあんまりないなという感じ。

可能なら

電源をスイッチング降圧にしたいが、スイッチングだと

  • デカい
  • ノイズ対策が必要

というのが厳しい。0.6W ぐらいならリニアレギュレータで我慢するほうがいいかもしれない。

あと、丁度いい小型のケースを見つけるのが難しい。今回は aitendo のプラケース (22x11x43)を使ってみたが、aitendo は在庫が安定してないので、タカチの SW-30B (20x18x30) か SW-40B (30x20x40) がいいかもしれない。

RS-232C をモジュール基板でやってるのも無駄なので、表面実装の適当な Vth 低い FET でやるようにできるとよさそう。

追記

SQ,16 というコマンドをうちこむとレイテンシが改善されるらしい。やってみたけどちょっとマシになる程度

$$$
SQ,16 // low latency 優先モードになる (スループットが落ちる) SQ,0 でデフォルト
GQ // 現在のモード

ハシゴフィーダー

オリジナルのツェップアンテナはハシゴフィーダーを使うが、なぜハシゴなのかよくわかっていなかった。

要は、エンドフェッドでインピーダンスが高いワイヤーへの給電に、同調型のハシゴフィーダーを使うことで、インピーダンス変換を行うということのようだ。

ハシゴフィーダーを同調型として使うことで、平衡経路であるハシゴフィーダー上からは、位相が反対の定在波が立ち打ち消しあって電波がでないが、インピーダンスは長さによって (伝送路インピーダンスとは異なった) 変化する値になり、ちょうどいい長さに調整することで給電できる。このとき、定在波が立っているのでケーブルの伝送路インピーダンスは直接関係なくなる。

同軸の場合、不平衡経路なので、経路上から電波が出てしまい意図した挙動にならない。

ツェップライクと呼ばれるアンテナでは給電にLC共振回路を使って間接的にエレメントに給電している。ハシゴフィーダーの変わりに集中定数で解決している。

ハシゴフィーダーのメリット

  • 損失が少ない (7D同軸の10分の1程度)
  • インピーダンスマッチングを兼ねられる
  • 細かい線路インピーダンスは無視できるので自作可能

デメリット

  • 雨や周辺環境の影響を受けやすい
  • 同調型で使う場合、長さに制約がある
  • 必然的にでかい
  • 耐久性があまりない

アンテナの合わせかた、またはSWRが高くても飛ぶアンテナ

重要なこと: SWR が下がっていれば同調していると考えていいが、SWRが高いからといって同調していないというわけではない。

というのも、リアクタンス成分がゼロ (=共振) でも抵抗成分がミスマッチだとSWRは高くなるから。

正しいアンテナの調整方法は

  1. まずアンテナ系を共振状態にする
    • リアクタンス成分をゼロに近づける
    • アンテナの流さ・コイルなど
  2. インピーダンスを50Ωにあわせる
    • トランスで変換するか、アンテナの角度調整・ATUで強制マッチ

アンテナが共振状態であれば、あとはマッチングすれば電波は飛ぶ。SWR 計だけだとインピーダンスがどうなっているのかわからないので、詳しく見るにはアンテナアナライザーが必要。

SWR の最小値が見つかるならば、そこは同調点と考えていい。その場合、最低点におけるSWRの高さはインピーダンスの抵抗成分のミスマッチによるものになるので、確かに同調しているならばATUで最後だけあわせこんでも問題ない (はず)

2014年 09月 18日

iTunes Store で不明なエラー 5002 が出た

不明なエラー 5002

現象:

  • iTunes からストアで曲を購入しようとしたところ 5002 とかいうエラーがでた。
  • サインアウトしてサインインしなおそうとしてみたら、そもそもサインインすらできなくなった (同じく 5002 エラー)
  • iTunes 以外では発生しない (App Store / Web の Apple Store / Mac OS X の Apple ID サインインは正常)

ググってでてくる情報でなかなか解決しなかったが以下をやったらなおった。

  • store.apple.com から請求情報を開いて、エラーになっている項目があったらなおす
    • ふりがなとかが昔はひらがなだったのがカタカナになっていたり、電話番号のバリデーションが厳しくなっていたりする
    • カード情報そのままでクレジットカードのセキュリティコードを入れなおす
  • iTunes 再起動
  • iTunes 上で「Apple ID を作成…」して入力項目がでてくるところまですすむ (入力しない)
  • iTunes 上で「サインイン…」を選び再度サインイン

ローカルにキャッシュされているアカウント情報とサーバ側のアカウント情報に齟齬が起こると変なエラーがでる? よくわからないけど、エラーメッセージに何の意味もなくて途方に暮れる。Console.app にもエラー詳細など一切出ない。

2014年 09月 12日

上海問屋で売っている DN-10101 はステレオ入力可能か?

結論から言うと、DN-10101 は (商品ページには書いてないが) ステレオ入力可能 (ステレオマイク入力)。これはおそらく SD-DAC63095 や USU08B という型番の商品と同じようで、中身は定評のある VIA チップのようだ。中国製品は外見が同じでも中身が全然違うコピー製品もたくさんあるので結構買ってみるまでわからないところがあって、ちょっとした賭けになってしまうけれど、この製品はアタリだと思う。

上海問屋からメール便で買うとマニュアルがないが、以下から英文マニュアルはダウンロードできる。

書いてある通り、このデバイスはステレオマイク入力が可能なので、SDR 用の入力デバイスとして利用できる。96kHz 24bit サンプリングかつステレオ入力ありの小型デバイスというのは世界的に殆ど存在せず、国内販売されているものでは現在唯一といえそう。本来もっと安いが、安いが故に個人輸入すると送料でかえって高くつくので上海問屋で買うようが納期が安定して良い。

KX3 と繋いで SDR 用のサンプリングデバイスとして使ってみたけど何の問題もない感じ。ものすごい変なノイズとかはない。写真の通りかなり小さいので、持ってでかける用途によさそう。

ただ、マイク入力端子は3V程度直流がかかっているので、カップリングコンデンサが入ってないLINE出力な機械に繋ぐとまずそう。KX3 は 10μF 入ってるので大丈夫っぽい。

出力端子もノイズ少なくて良いけど、どうも手元の Mac だと 24bit 出力はできなかった。16bit なら可能。

2014年 09月 10日

トロイダルコアを使うときに便利なツール

http://toroids.info/FT140-43.php

このサイト使ってる。好きなトロイダルコアを選んで、適当にパラメータを入力すればあとのものが計算される。つまり

  • 7MHz で 3kΩ のインピーダンス確保するには? → 9ターンにで、50cm ぐらいの線長が必要
  • 100uH 欲しいんだけど〜? → 11ターンで 55cm ぐらいだよ
  • なんか20Tの作例あるんだけど、インダクタンスどれぐらいを想定してんの? → 350uH ぐらいよ

みたいのができる。特に自分で巻く場合線長計算できるのが大変便利。ただ + 10cm ぐらい余分に切らないとだいたいの場合いろいろ厳しい思いをする。

2014年 09月 05日

さようなら技適。また会う日まで

Elecraft KX3 を買ったはいいが、電波を出せるようにするためにはこの無線機について国に登録して免許を受けなければならない。国内販売の殆どの無線機は日本の技適を通っているので何も考えなくても免許が下りるのだけれど、KX3 は技適無線機ではないので、面倒なステップがある。

日本において、アマチュア局の無線局免許状を得る際には必ず使用する無線設備について許可を得なければならず、その方法は大きくわけて3つある。

  1. 技適 (技術基準適合証明) 番号を使って申請
    • 殆ど何も書く必要はない
  2. TSS という民間会社で「技術基準適合の保証」をしてもらってから申請
    • 書類審査と金で「保証」してもらう
  3. 落成検査をうける
    • 200Wより送信電力が上の場合この方法しかない。200W以下の場合大変すぎるので普通はやらない

自力で登録証明機関に持ちこんで技適証明を貰うとかという方法もあるけどコストかかりすぎるので普通やらない。今回は2つ目のTSSで保証してもらう方法で、これはアマチュアのみ可能な方法。

TSS 保証

以下のような時間感覚ですすんだ (まだ総通の処理待ちだけど) 総通も処理終わった

  • 2014-08-09: 申請 & 振込
  • 2014-08-20: 音沙汰ないのでメールで問い合わせ (入金連絡とかもない)
    • 11日に入金確認済みだが、混んでて入金日から17日後に審査開始となると言われる
    • ( 紙のほうが早いから切替えてもいい、とも)
  • 2014-09-01: 補正連絡
    • 大した内容ではないので即日補正し返信
  • 2014-09-04: 補正連絡
    • チェックボックスの漏れ一箇所なので即日補正し返信
  • 2014-09-05: 保証のお知らせ
  • 2014-09-05: 総務省のシステムで保証書添付して送信
  • 2014-09-08: 受付処理中
  • 2014-09-09: 審査中
  • 2014-09-10: 審査終了

だいたいメールがくるのが、いつも18時ぐらいだった。

電子申請より紙のほうが早いというのは理解に苦しむけど、たぶん全く自動化せずTSSでも総務省の画面にファイル読みこませてシコシコやってるんじゃないかみたいな遅さなのかもしれない。大変だな

今回やったこと

メインは KX3 の保証認定だけど、ついでにPC変調のデジタルモードについても一括で申請した。つまり

  • 第1送信機 (技適機種) の変更 (外部変調装置を付けると技適から外れる)
  • 第2送信機 (KX3) の追加

つまりどちらも技適外になる。技適から外れると途端に書く書類が増える。以下のような書類で提出した

  • 第1送信機
    • 電波形式・終段菅など全部書く
    • 送信機系統図のPDF (技適機種の場合、系統図内の無改造の無線機内部のついては技適番号で代替できる)
      • 「変更」の場合変更内容もこの系統図に書く必要がある
  • 第2送信機
    • 電波形式・終段菅など全部書く
    • 送信機系統図のPDF
    • 5MHz 送信不可の証明書 (CamScanner でスキャンしたPDFそのまま・英文)
  • 附属装置諸元のPDF
    • デジタルモードの変調方式を列挙したもの

附属装置諸元のPDFに書いた電波形式と、各送信機の送信内容に書いた電波形式が矛盾なく一致していなければならない。これがとにかく手動だと面倒。とりあえず手動で頑張るしかない。

第1送信機 (FT-450DM) の申請内容

やりたいことはPC変調装置の追加だけなんだけど、これをやった時点で技適の範囲から外れるので基本全部の要求事項を書くハメになって面倒くさい。免許状では一括コード指定だけど、ここは個別の電波形式をバンドごとに全て列挙しなくてはならない。

技適から外れるので、申請時に技適送信機扱いにしてはいけない (「技術基準適合
証明設備の使用」のチェックを入れてはいけない)。ただ、送信機系統図内では、無改造の技適機種の内容は技適番号で省略できることになっているので、そこは楽ができる。

電波形式は取説や別紙諸元とあわせる。変調方式は取説にあわせる。

変調方式、いっぱい聞いたこともないのが並んでいるんだけど、基本「その他の振幅変調」と「その他の周波数変調」「SSB」しか使わないっぽい。FT-450D は A3E が低電力変調でF3Eはリアクタンス変調だけど、どちらも選択肢にはない。電子申請だとこのへん完全に一致するように選択しなければいけないので攻略本が欲しいところ。

KX3 の申請内容

直輸入のものなので若干不安だったけど、直輸入でも日本向け保証に関する必要な資料は最初から含まれていた (局発周波数の表・キーも含めたブロックダイアグラム・5MHzブロック証明・変調方法の解説など)。あとは事前に先人のやった内容とかをググっていたからか KX3 まわりで特別な指摘はなかった。

  • 変調形式のところ
    • A3E -> その他の振幅変調 (DSPによる変調)
    • F3E -> その他の周波数変調 (DSPによる変調)
    • J3E -> SSB
  • 送信機系統図
    • なんとなくイラレでイチから書きおこした (送信部分だけでいいはずだけど、一応全部書き出した)
    • 局発と送信周波数の関係表は必須 (電波法に書いてある通り)
    • PC変調装置も入れてある
    • シリアルナンバーも入れてある
      • 実際の送信機に貼ってあるシリアルナンバーの写真とかは添付してない

不安だったけど、このへんは思ったより簡単だった。

補正

書類の形式ミスの指摘が大半だった。あとはデジタルモードの諸元と送信機に書いた電波形式の相違の指摘だった。

ハマったところをメモしておく

  • 「移動する送信機の取替え及び増設の台数」はいろいろ書いてあるが、要するに新規に発効すべき「証票」の数を入れればいい
  • 備考にある既に免許を持っている場合というのは、固定局と移動局でコールサインを一致させるために入れるっぽいので、移動局だけの申請なら何も入れない。
  • 「14 変更する項目」と最後に出てくる「申請届出事項」は矛盾なく一致しなければならない (画面が違うのでウッカリ間違えがち)
  • 送信機系統図を各送信機の画面で添付した場合「添付図面」の「送信機系統図」にチェックを入れなければならない
  • 「変更」の場合は送信機系統図内に変更内容がわかるような記述をすること

電子申請の考えかた

電波利用 電子申請・届出システム Lite = sinsei.xml 編集ツール + 申請ツール

TSS 保証認定のときもこのシステムで sinsei.xml を作って、これを総通に申請する変わりに出す (最終的には、保証認定書を添付して総通にも出すけど)。

sinsei.xml はただのXMLなので整合性が保たれていれば手で編集しても問題ない。特に各周波数帯ごとに電波型式を全部書くのはウェブのシステムでやるとただの地獄なので、一通り入力したら「途中保存」を行って sinsei.xml をダウンロードし、手元で編集したほうが早い。(編集して、再度アップロードしてちゃんと思った通り入力されているか確認する)

余談だけどシステムから出力される sinsei.xml はインデントがタブだったりスペースだったりして、ライブラリを使わずに自分で書いてる臭いがする。

諸元

  • 方式
  • 通信速度
  • 周波数偏移幅
  • 副搬送波周波数
  • 符号構成
  • 電波型式
  • どの送信機で使うか

を全て書く必要がある。電波形式は各送信機で申請する内容と矛盾なく一致する必要がある。

あと、1.9MHz帯は占有周波数帯幅の制限があり一部電波形式は許可されないので、それを送信機側のの電波形式に含めたりしないようにする必要がある。

これは1から書くとだるすぎるので、ネットでころがってただいたい全部載ってますみたいなのを Google Docs にインポートして、足りてない情報と間違っている情報を直して提出した。

2014年 09月 04日

はんだごて先クリーナー

白光(HAKKO) こて先クリーナー クリーニングワイヤータイプ 599B-01 - 白光(HAKKO)

白光(HAKKO)

5.0 / 5.0

コテに元々ついていたスポンジがさすがにボロボロになってきてしまっていて (10年以上使ってる…)、スポンジだけ買おうかなと思っていたのだけれど、このようなものが目に入ったので試してみてる。

スチールウールみたいなのにフラックスが塗ってあって、おもむろにコテを突っ込むとコテ先が綺麗になるというしろもの。

メリットとしては

  • 水を使わないので温度が下がりにくい
  • コテ先が非常に綺麗になる (ハンダのりが改善される)

あたりがあるっぽい。特に後者はでかくて、細いコテ先だと先端がすぐ酸化してしまって、スポンジだとなかなか綺麗にならず、先端にはんだが乗らなくなって細いコテ先の意味がなくなるので、かなりライフチェンジングな感じがする。

あとはどのぐらい耐久性があるかという話になるけど、実際使い続けないとわからない。

2014年 09月 03日

AngularJS で http リクエスト中画面内のボタンを disabled にする

とにかく面倒だから全部の http リクエストを監視してボタンをオフにしたい。という要件

いまいちいい方法が思いうかばないけど以下のようにして実現した


http の状態管理するサービスをつくる

myApp.factory('httpState', function () {
    return {
        processing: 0
    };
});

$httpProvider のインターセプターで http の状態を更新する

myApp.config(function ($httpProvider) {
    $httpProvider.interceptors.push(function (httpState) {
        return {
            'request': function (config) {
                httpState.processing++;
                return config;
            },
            'response': function (response) {
                httpState.processing--;
                return response;
            }
        };
    });
});

コントローラでスコープに入れておく

myApp.controller(function ($scope, $http, httpState) {
    $scope.httpState = httpState;
});

テンプレートで状態を見て disabled にする

<button ng-disabled="httpState.processing > 0">foobar</button>