Top Page Mighty CW Keyer のケースへの実装
自作工程のメモとして
24.May.2017


 前のページに Mighty-1284p の製作関連(*1 ・ *2)を載せましたが、せっかく作ったCPUボードを活用する用途を考えてみました。
Web上では、 k3ng CW Keyer のシールドPCBを製作されているブログ等を見かけますが、ケースへの収納となるとあまり見かけないように感じていました。
そこで、Arduino ボード(Mighty-1284p)を使い、趣味との関連が深い k3ng CW Keyer のシールドを新規に作ってケースに収納することにしました。
ケースへの収納は、穴あけなどのパネル加工が大変で、なかなか取り掛かる気になりませんが、今回は以前から気になっていた手法で簡単にできればと思い試してみました。

*1:Arduino Mighty-1284p のPCB製作
*2:Mighty-1284p_Bootloaderの書込み



ケースへの実装の続編に 気象センサー&タイマーシールドの実装 を掲載しました。(2017/06/27)

2018/11/13:頒布終了しました。

完成品1号機です。(画像入替済み)


Edit by bluegriffon2.3.1


1.ケース選びとLCDディスプレイの選定

 CW Keyer の回路自体は簡単なものですので、シールドはArduinoサイズに十分収まると思いますが、LCDはぜひ付けたいと考えていました。
そうなると、通常の16X2のLCDの大きさは、横88mmのものが多く、それを採用するとケースの横幅は100mmは必要になってきます。
また、LCDの高さもあり操作SWやボリュームの実装を考えるとパネルの高さもそれなりになります。
そのような検討の中で、パーツ各社からできるだけ小型のLCDを見つけるために現物を入手したり、データシートを確認する中で、秋月電子の「超小型LCDキャラクタディスプレイモジュール」が目に留まり、横幅66mmならそれなりに小さくまとめることが期待できました。
そして、これに合うケースとして、少し高価にはなりますが、タカチの EX8-6-9 を採用することにしました。


■ ケースの選定

タカチ:アルミ押出材ケース EXシリーズ EX8-6-9SS
タカチの EX8-6-9SSケースは、横:80mm・高さ:55mm・奥行:90mmで、今まで使ってきたケースとは違いケース内にPCBを差し込めるレール?が有り、ぜひこのレールに収納する実験をしてみたいと考えました。
もう一つは、PCBもKiCadで簡単に作れるようになったので、例えばFusionで一番安く作れるPCBの大きさ(100mmx100mm以内)より小さいことが条件でした。
そういうことで、最初にケースを決めました。
もう一つ大きいサイズのケース EX11-6-8SSも収納できるPCBの横幅が100mmなので検討しましたが、後で出てくる前後のパネルを注文しようとするとサイズオーバーしてしまうため、採用を断念しました。

■ LCDディスプレイの選定

秋月電子:「超小型LCDキャラクタディスプレイモジュール(16×2行 白抜き)[SD1602VBWB-XA-G-G]通販コード P-02985」
ケースと同時進行でそれに収納できるLCDやOLEDを何種類か入手して試したりしましたが、想定しているスケッチ「k3ng CW Keyer」の変更が少なく、物理的に収まる秋月電子の「超小型LCDキャラクタディスプレイモジュール」を採用することにしました。
このLCDはパラレル仕様にため、I2Cに変換する小基板を入れることも考えましたが、スペースも少なく、幸い Mighty-1284p で拡張したデジタルポートを活用し、4bitパラレル接続することで、省スペースを実現することができました。



2.LCDディスプレーの実装方法

 実装形状をできるだけ小さくし、既に作ってある Mighty-1284p ボードを載せるため、取り付けの手間がかかりますが、LCDパネルに小基板を付けてジャンパー線で結ぶことにしました。

■ Mighty-1284p と LCD のIF回路


6つのデジタル信号と電源(+5V・GND)を、拡張した Mighty-1284p のP5コネクターから取り出し、小基板にボリュームと抵抗(LCDに添付されていた100Ω)を取付けます。秋月のデータシートにバックライトの抵抗は100〜200Ω程度と書かれていますので、100Ωでは少し明るすぎるかもしれません。


■ Mighty-1284p との配線とLCDの取付

  
エポキシ基板の切れ端を、ルーター(ミニドリル)にダイヤモンドカッターを付けて加工しました。
上の10ピンは、ピンプラグの補強用に用意しました。
部品は、下側のL型の基板に載せて配線します。
私はこのまま使いましたが、部品を取付ける基板は、画像加工でイメージを追記したように、上側に余裕が有るので、もうー穴分広げたほうが良いと思います。(VRの下面が端子に近いため)




接続しないピンが4本あるので、LCD側には未接続のピンが有ります。
LCD側は、L型のピン端子を上に向けて使用しています。



LCD側の取付穴は、1.8mmの下穴が開いていますが、私はM2用に2.0mmのドリルで拡張しています。
皿小ネジ(M2x10)を表から通して、ナットで止めています。



取付穴は3か所しかなく、バランスが悪いので、一つはダミーで皿小ネジ(M2x6)を表から通しています。
写真は付けていませんが、LCD取付用の表面は皿穴用のザグリ( *M4ドリル)を入れています。
(*ザグリは 3.5mmドリルのほうが広がりすぎないと思います。)
ザグリは、本ページ下部の9項を参照ください。(2017/06/15修正)



ついでに、小基板の様子を載せておきます。


■ ケースへの Mighty-1284p の取付


今回、ケース(アルミ)への穴あけはこの4か所のみとなります。(2.5mm下穴にM3タップ)
ただし、穴の位置がずれると、後の仕上がりにも影響しますので、慎重に穴をあけました。
後面パネルに Mighty ボード(Arduino UNOも同様)を真っ直ぐに押し当てながら、USBと電源のコネクタを基準に左右の位置を合わせます。
充電式のドリルドライバを使ったため、正規位置から左右方向に若干ずれましたが、許容範囲に収めることができました。
樹脂のスタッドは、高さ5mmのもので、ビス部分が短いタイプを使用しています。

3.CW Keyer Shield の回路

 シールド側の回路は、Web上でいくらでも見つかりますが、本家の回路を元にフォトカプラを付けています。
PS/2キーボードは、保管品を2台持っていますが、使う予定も無かったのでPS/2コネクタは載せていません。
また、横幅80mmというケースの制限から、CW出力は2つのみとしています。
もしPTT出力が必要な時は、スケッチの設定を変更してTX2の端子を使うことにします。


■ シールドの回路


クリックで拡大(PDF)が表示されます。


4.サイドトーンの音量調節

 サイドトーンは、Web上ではそのまま駆動(音量調節なし)している回路が多かったと思いますが、私はぜひ音量を調節したいと思っていました。
スピーカーに直接可変抵抗を入れる方法も完全には無音にならず、他の方法は無いかとWeb上で探していましたら、オーディオ用の回路が見つかりました。
入力は、PtoP5V一定ですので十分な振幅が有り、それ以上の増幅は不要のため、エミッターフォロワで十分と思われ試してみましたところ、思いのほか音量調節ができました。

■ サイドトーン回路


回路はWeb上で見つけたエミッタフォロワーを使用しています。
入力のボリュームは、基板の表面・裏面に取り付ける場合を想定して、JP2で切り替えられるようにしています。(SpeedのボリュームもJP1で同様に)
また、スピーカーは、2箇所に設置できるようにパターンを作ってています。
密閉状態のケースの中でスピーカーの音を外部に伝えるためには、開口部が必要で、アルミケースの上面に穴をあけるか、または前面パネルの一部を穴あけして、開口部を設けるように考えました。
結果的に、前面パネルにあらかじめ用意しておいた位置(○印のみ裏面にシルク)に2.5mmのドリルで穴をあけ、スペアーのLS2部分に設置することにしました。

■ 前面パネルの音出し穴


予め、前面パネルの裏側の上記位置に小さな〇印を付けています。
画像は、穴をあけた後ですが、アルミのケースに穴をあけるより簡単にドリルが通るため、前面から音を出すようにしました。
そのため、スピーカーはLS2の位置に変更しています。
ケースに入れた後、この穴を指でふさいでもあまり音が小さくならなかったので、この穴は不要かもしれません。


■ 2箇所のスピーカー位置(お好みで選択)


シールドの上面にスピーカーを取付けると、ケース上面に穴(2.0〜2.5mm程度)をあける必要があります。




今回は、上記のLS1の位置ではなく、あらかじめ予備として用意してあったLS2の位置に取り付けることにしました。




5.CW Keyer Shield の部品配置と主要部品リスト

 今回の回路は、スペースに余裕が有るためKiCadでいつも使う自動配線を使用せず、手配線でパターンを張りました。
サイドトーンの音量とスピード調節用のボリュームは、裏面に取り付けるようにします。
また、オプションとして用意したLEDは、裏面に取り付けます。


■ シールドの表面の部品配置


フォトカプラは、手持ちの関係でPC817でなくTLP621を使っています。
当初、フォトカプラにICソケットを付けるように考えていましたが、高さがオーバーしてしまい直接取り付けています。
ボリュームの切替は、裏面に設置する側(Btm)にハンダを盛っています。
また、Arduino UNO等の標準的な取付穴の他に、位置関係が長方形の各頂点になる取付穴を、4か所予備としてあけています。


■ シールドの裏面の部品配置


LEDは、熱収縮チューブを被せ、少し浮かせて取り付けています。(現物合わせ)
LEDの足の長いほうが、パターンの四角いパッド側になります。
また、頭はPCB端面より3mmほど出した位置に取り付けています。


■ シールドの取付状態


Mighty-1284p ボードとの接続は、足長のピンソケットを2個使い連結しています。
プッシュSWと上面ケースの間が0.5mmぐらいしか無く、プッシュSWをハンダ付けするときに浮きが無いように注意する必要があります。
ケースと部品の精度が高いためか、ケース側にこすれたりすることは無いようです。(設計上は、0.55mmのすき間)
トランジスタ(2SC1815)の頭もギリギリですので、高さ7mmぐらいになるように押し込みます。


■ Mighty-1284p ボードとの連結ピンソケット


同じものを2個使いましたが、一つは高さを合わせるためピンを短くカットしています。
二つを組み合わせた高さが約28mmになります。


■ 後側の状態(画像入替済み)


USBコネクタやDCジャックをハンダ付けする時に発生する若干のズレも有ると思いますが、許容誤差内に収まっていると思われます。


■ CW Keyer Shieldの主要部品リスト

Reference Value 補足説明 必要数 手配先 発注コード 発注単位
C6,C7,C8,C9 0.01u 足間 2.5mm or 2.54mm 4 秋月電子 P-04063 10
C1,C5 0.1u 足間 2.5mm or 2.54mm 2 秋月電子 P-00090 10
C2,C3,C4 22u ニチコン UMW1V220MDD 3 秋月電子 P-08378 1
D1 LED_AK 1 秋月電子 I-11577 1
LS1,(LS2) Speaker 村田 PKM13EPYH4000-A0 1 秋月電子 P-04118 1
Q1 2SC1815 足間 2.54mm曲げ済み 1 秋月電子 I-04268 10
R7,R8 470Ω 1/6W 2 秋月電子 R-16471 100
R1 10k 1/6W 1 秋月電子 R-16103 100
R5 180k 1/6W 1 秋月電子 R-16184 100
R2,R3,R4,R6,R9 1k 1/6W 5 秋月電子 R-16102 100
SW2,SW3,SW4 SW_GRAY Alps: SKHHLRA010 3 モノタロウ 01486047 1
SW1,SW5 SW_RED Alps: SKHHLSA010 2 モノタロウ 01486056 1
U3,U4,U5 3.5ST005G_J ステレオ 3 秋月電子 C-02460 1
U1,U2 PC817 TLP621等で可 2 秋月電子 I-11861 1
VR1,VR2 10k Alps: RK09K1110A0J 2 RS-Online(*2) 729-3622 1
超小型LCD
SD1602VBWB-XA-G-G 1 秋月電子 P-02985 1
3mmプラネジ
(L=5mm) 4 秋月電子 P-10358 100
スペーサー
5mm TP-5S 4 秋月電子 P-07557 1
皿小ネジ(黒)
M2x5 ナット付き 1 添付(*1)

皿小ネジ(黒)
M2x10 ナット付き 3 添付(*1)

六角穴付ボルト
M2.5 x 5(L8 => 5変更) 8 モノタロウ 41509273 12
ツマミ 13φ以内 サトーP K-8075 2 モノタロウ 08626274 1
ケース
タカチEXW9-6-10SG(*3) 1 各店(*4)
1
ピンソケット他 省略




皿小 ネジは、黒亜鉛メッキ等で処理されたものが欲しかったのですが、近くのホームセンターでは手に入らず、白色になっています。送料はかかりますが通販で入手できるようですので、ほかの物を注文するついでの機会が有りましたら、交換してみようと思います。
(*1)入手性を考え、皿小ネジ(黒)は、頒布品に添付いたします。(2017/06/15)
(*2)VR1,VR2(Alps: RK09K1110A0J)は、納期はかかりますがモノタロウでも入手可能です。
(*3)前後面のアルミパネルは使用しないため、安価なケースの型番に変更しました。(2017/12/24)
(*4)手配先名を削除しました。(2018/11/13)
 
ピンソケット(ピンヘッダ含む)他は、手持ちの品等で組み合わせるため、リストには省略としました。
このケースを使用した場合、下側 Mighty ボードの上面と、上側シールドの下面との間隔が約33mmの高さになりました。
例えば、秋月のピンソケットリード長10mm(実寸は 10.5mm)を組み合わせて
==================================================
↑ ■シールド下面のピンヘッダ   :樹脂高さ 2.5mm
| ■秋月ピンソケットリード長10mm:樹脂高さ 8.5mm (ピンの足は4mmほどカットして露出部は無し)
| ■秋月ピンソケットリード長10mm:樹脂高さ 8.5mm + Mightyのソケットに刺さりきらない露出部 5mm
↓ ■Mightyのピンソケットの高さ  :樹脂高さ 8.5mm
==================================================
                合計: 33.0mm  <==偶然ちょうどのサイズに収まりました。



6.ケースのパネル設計

 Fusionで扱ってくれるかは不明でしたが、KiCadのPcbnewでパネルも設計して発注してみることにしました。
位置関係が崩れないように、基板設計時に同画面でパネルも設計していきます。
自分で加工する場合、特にLCDの窓等の四角い穴は、どう頑張ってもきれいな仕上がりにならないため、データシートを元にPcbnewのグリッドを0.1mmに設定してCAD上で配置しました。

■ シールドとパネル設計のエディタ画面


発注用のデータを作るときは、3つのプロジェクトに名前を変えて保存し、不要なものを削除しました。
また、ケースの横幅(内寸)75.5mmに対してシールドPCBの横幅を75.4mmで設計しましたが、出来上がってきたPCBの横幅が+方向に0.2mm誤差が出ていました。
今回は、中に入れたシールドがスムーズにケースのレール部を動くように、PCBの側面を紙やすりで少し削る必要があります。
ケースの奥行に当たるPCBのサイズは、0.1mm以内の誤差で仕上がっていました。
次回発注することが有れば、0.3mmぐらいの余裕をもって設計したほうが良いようです。


■ タカチ:EX8-6-9の断面図


タカチのカタログ(Web)より入手したデータと、各部品のデータシートを参照してパネルの穴位置を決めていきます。
このケースの向きが正常のようですが、外見は上下の区別が無いので私は上下逆にして使いました。
シールドは、3つあるレールの真ん中に挿入します。(緑色のイメージ)

また、前面・後面のアルミパネルは、勿体ないですが使用しません。


7.Fusion PCBへの発注と問合せ対応

 KiCad 4.0.5 での発注は2度目となるため、ほぼ前回の設定のままで発注ファイルを作ることができました。
しかし、いつものように2層PCBの設定でボードの色を黒にしただけでしたが、実は2枚のパネルは銅箔が片面だけしかなく、2枚ともFusionから問合せが返ってきました。
その問合せの受信・返信ともGoogleの翻訳を使い、そのまま作業を進めてもらうことができましたが、問合せの発生した前・後パネルには、本来は裏面にあるはずのFusionの管理番号が表面に打たれたのが送られてきました。
すぐに、再生産をお願いする問合せ(2017/05/20)をしたところ、対応してもらえる旨の連絡(2017/05/23)が入っています。
その後色々なやり取りが有り、パネルの仕様を変更して再発注し、Fusion側からの問合せ無しに仕上がりました。(2017/06/15)


■ シールドのガーバービュー



■ 前面パネルのガーバービュー


パネルの中央付近にあるカスレ?は、ダミーの回路を用意してSMDのパッドを裏面に置き、裏面全体に銅箔で塗りつぶしをかけているためで、表面に影響は有りません。(後面パネルも同様)
後面のダミー回路を表面下部に持ってくる変更をしています。(2017/06/15)


■ 後面パネルのガーバービュー





8.k3ng CW Keyer として使う場合の本品特有の設定

 本品特有の設定は、4ビット接続のLCD設定が主なものとなります。
そのほかは、お好みで設定すれば動くと思います。

■ 最新版のk3ng CW Keyer スケッチの場所

「k3ng cw keyer github」で検索してください。
 

■ cw keyer 設定例(自分用のメモを追記:WINKEYを使用する場合  2017/07/27)
2022/03/12:
「2022.01.28.01」を導入しようとしたところ少し変更が有ったため、設定を見直しました。


keyer_featuers_and_opsions.h ファイル

以下の // を外す。<< WINKEYで使用する場合 >>
(行)
05: #define FEATURE_COMMAND_BUTTONS
上記設定が2行に分かれたようなので、2つとも許可する。
05: #define FEATURE_BUTTONS
06: #define FEATURE_COMMAND_MODE


08: #define FEATURE_MEMORIES
09: #define FEATURE_MEMORY_MACROS
10: #define FEATURE_WINKEY_EMULATION

14: #define FEATURE_POTENTIOMETER

22: #define FEATURE_DEAD_OP_WATCHDOG

26: #define FEATURE_LCD_4BIT

keyer_pin_settings.h ファイル

CW出力の確認(例:7・8行目辺り)

#define tx_key_line_1 11       // 初期値 11 確認のみ。
#define tx_key_line_2 12       // 初期値 12 確認のみ。

コマンドモードに入っているときの状態表示ピン(例:28行目辺り)
  #define command_mode_active_led 7   // 初期値 0 => 7

4BITのLCDを使用する場合のピンの設定(例:43行目辺り)
//lcd pins
#ifdef FEATURE_LCD_4BIT
  #define lcd_rs 18
  #define lcd_enable 19
  #define lcd_d4 20
  #define lcd_d5 21
  #define lcd_d6 22
  #define lcd_d7 23
#endif //FEATURE_LCD_4BIT

keyer_settings.h ファイル

4行目辺りのサイドトーン周波数は確認のみ。
#define initial_sidetone_freq 600        // "factory default" sidetone frequency setting

23行目辺りの最低・最高スピードを好みに変更
#define initial_pot_wpm_low_value 10     // Potentiometer WPM fully CCW
#define initial_pot_wpm_high_value 25    // Potentiometer WPM fully CW

42行目辺り
#define LCD_COLUMNS 11 ==> 16
#define LCD_ROWS 4 ===> 2



コマンドボタンの確認(例:78行辺り  確認のみ。初期値:4 )
  #define analog_buttons_number_of_buttons 4


ボード選択を忘れそうなので、追加した。(2022/03/12)

9.その他気づいたこと

(1)LCD取付用の皿ネジのザグリについて(2017/06/15)

皿ネジの角度は90度ですが、ドリルの先端角度は120度のため、ドリルを使ったザグリではきれいな仕上がりにならないようです。
3.8mmのドリルも買って試しましたが、引っ掛かりが強くて深く掘りすぎる傾向があり、貫通してしまう可能性が有ります。
そこで、面取カッターを購入して試してみました。

■ 2種類の面取カッター


どちらも、900円前後で購入できましたが、材質がガラスエポキシのためか、歯が5ヶ所ついている側のほうは滑る(引っ掛かりが弱い?)ようでした。
右側は、歯の部分は1ヶ所しかついていませんが、滑りは少ないようでした。
右(モノタロウ:\960)、左(近くのホームセンター:\813)


■ 良かったほうの拡大画像




■ ザグリの状態


ザグリを入れた後、基板の白い部分が目に入るため、黒マジックペンで修正しています。



(2)コマンドモードのLED表示を追加(2017/07/10)

コマンドモードに入ってメモリに記憶させようとしたときに、慣れていないせいかコマンドモードに入っているのかわからないときが時々ありました。
コマンドモードに入るとLCDに表示され、コマンドモードから通常モードに戻った時にLCDへ1文字表示される(同じ文字ではない)のですが、わかりにくいと感じています。
そこで、既にある機能を活かして、コマンドモードの表示をすることにしました。

■ 追加の配線(1kΩ)


シールドのデジタルポート「D7」から、赤色LEDのプラス側へ1kΩを入れます。(抵抗自体のリード線で十分届きます。)
これで、コマンドモード中は中央の赤色LEDが点灯しますし、キー出力の有無も明るさが変化して十分識別できます。


■ スケッチの設定


 keyer_pin_settings.h ファイル

(28行目辺り)
#ifdef FEATURE_COMMAND_BUTTONS
  #define analog_buttons_pin A1
  #define command_mode_active_led 7
#endif //FEATURE_COMMAND_BUTTONS

command_mode_active_led(初期値:0) を、デジタルポートの 7 番に変更する。
上記8項の設定例にも追記しました。(2017/07/27)



(3)都度、追記します。


mighty-1284p mighty 1284p ATmega1284p
99.追記用(予備)