「OLEDオシロスコープ」のノイズを何とかしたい(後編)

色々とやってみた「OLEDオシロスコープ」製作記の最終回です。
(ケースが出来たら、別記事で紹介する予定です。)

少し納得できない所もありますが、ノイズ対策は解決したのではないでしょうか。
今回は、3種類の「OLEDオシロスコープ」を、組み立てて比較・確認しましたが、正常に動作しています。

これまでの経緯

プリント基板製作ソフト KiCad の使い方を覚えるために、素人なりに「ラジオペンチ」さんの「OLEDオシロスコープ」用のプリント基板を設計して、格安でプリント基板をオーダーできる PCBgogo さんに基板を頼んでみました。

その(自称)カッコいい SMD 部品を多用した基板を、自宅リフローで組み立ててみました。
はじめての自宅リフローに緊張しましたが、思ったよりも簡単にリフローは成功して一発で動作を確認することが出来ました。

しかし、「OLEDオシロスコープ」のレンジを切り替えて。電圧を 5 V より小さく、時間間隔を最小方向に設定すると大きなノイズが発生します。
そのノイズを消すために色々とやってみました。しかしノイズは消すことが出来ませんでした。

「OLEDオシロスコープ」の初号機はユニバーサル基板で作ったので、ノイズが発生したのはユニバーサル基板のグランド不足と、入力端子に単線を使っている為だと考えて、ノイズ対策のために専用の基板を作ってグランドを広くとり、電源入力部分には複数のコンデンサを足しましたが、ノイズ対策には効果がなかったようです。
(前回のノイズ対策は、こちらのリンクをご覧ください。)

前回までに行った対策

前回までに行った対策は、

1 電源の対策
1番のノイズ源と思われる昇圧基板は、2種類で比較しました。
昇圧基板の出口に、コンデンサ、フェライト、LCフィルタを追加しても同じでした。
さらにノイズが発生しないリチウムイオン電池を直結で確認しましたが、ノイズは消えません。

2 OLED を基板から遠ざける
次に、ノイズ源の可能性が高い昇圧回路を内蔵しているOLEDを、ブレッドボード用の配線を使って基板から遠ざけましたが、ノイズは変化なしです。

3 OLED のノイズ対策
アナログ電源から取る形になっていた OLED の電源をデジタル系に付け直し、コンデンサなどを追加しましたが変化なしです。
OLED の裏側に、銅板をグランドに接続したシールドを足してみましたがノイズは変わりません。

4 アナログ電源へ LC フィルタを追加
アナログ電源にも、ATmega328P のデータシートで指定されたノイズ対策用の LC フィルタを追加しましたがノイズは出ています。

5 Arduino Nano に変更してノイズ確認
オリジナルの作例に従って、MCU を Arduino Nano に変更して確認しましたが、ノイズは変わりなく出ています。

ノイズ対策の「前編」以降に行った対策

MCU(ATmega328P)単体ではなく、ブートローダを UNO 化したArduino Nano に「OLEDオシロスコープ」(V402)のスケッチを書き込み基板へ接続しました。

色々な設定で波形を確認しましたが、Nano でも同様のノイズが出ていました。
さて、次はどうしようか。と考えている時に、Arduino Nano の「A0」の入力端子が、基板の IC ソケットから抜けてしまいました。

「あれ?ノイズが消えた??」

MCU の入力端子の A0 端子から、基板につないでいた配線を外すと、今まで何をやっても消えなかったノイズがきれいに消えました。

組み直して確認

基板の入力ラインと A0 間の配線を削り取ります。
ここでも前回紹介したダイソーの「精密ケガキ針」が活躍しました。

問題を切り分けるために、昇圧基板と OLED も元に戻します。
そして、IC ソケットに ATmega328P を戻して電源を入れます。

ノイズはきれいに消えました。
(写真では 0.01 V と見えますが肉眼で見ていた時は 0.00 V と行ったり来たりしていました。周波数も検出できないレベルの「nan」表示です。)

MCU、OLED と昇圧基板をプリント基板に組み込んだ状態でも、ノイズが消えています。

入力回路の犯人捜し

やっとノイズが消えました。
でも、入力回路を切ったので、このままでは何にも使えません。
(入力できないオシロスコープなんて意味がありませんから。)

入力回路には、それほど沢山の部品があるわけではありません。
コンデンサが2つと抵抗が5個です。
(配線図は、「siliconvalley4066」さんのHPより引用)

この中のどれか(又は複数)の部品と、その配線間でノイズを拾っているのだろう考えられます。
「外部からノイズを調べる器材」などは持っていないので、1つづつ調べていきます。

あ、DC の時に使用する「C2」は、AC/DC を切り替えてもノイズは消えないので犯人ではありません。(多分)

残りは6つです。
でも、AC/DC 切り替えスイッチも怪しいので、犯人に加えて7つにします。
容疑者は次の7つです。

・S1:AC/DC切り替えスイッチ
・C4
・R1
・R2
・R3
・R4
・R5

へたくそなライン取りで恥ずかしいですが、何かの参考になるかもしれませんので、実際の基板の図を公開します。(裏側はノイズ対策で、ほぼベタグランドです。)

今回、問題の入力ラインは青く塗りました。
R2 ~ R5 は、見栄えを良くするために縦に整列させたのですが、これが良くなかったのかなぁ?

検証の順番は、基板のパターンを見ると配線が短い「C4,R1,R2」は後回しにして、このリストの逆順に行います。(R5 → R4 → R3 → R2 → R1 → C4 → S1)

検証用の基板をリフロー

現在使っている基板の部品を1つづつ外すのは大変なので、予備の基板にリフローします。
(決して最初のリフローが成功して、楽しくなったのではありません。しかたがなく、もう1度リフローをするのです。そうです、必要に迫られてリフローをするのです。リフローをするのが目的ではありません。多分・・・)

もちろん、入力部分の抵抗などは取り付けないので、その部分はクリームはんだも「転写」しません。

まず、前回の反省点の基板洗浄をします。
クリームはんだをはじくのを防ぐために、基板をアルコールで洗浄します。

マスキングテープで目止めをして、ステンシルを基板にマスキングテープで固定します。
前回、テープでしっかり固定しすぎて、ステンシルを剥がすのに苦労したので、前後だけを簡単に固定しました。
(写真では、透明フィルムのステンシルは見えませんね。)

低温クリームはんだをステンシルの部品があるところに少量出して、プラスチックのヘラで伸ばします。
アルコールで洗浄したおかげか、しっかりと基板にクリームはんだが「転写」されました。

拡大鏡で見て、クリームはんだが乗っていない部分は、セリアの「瞬間接着剤用ハケ」で修正しました。
また、サムスイッチ部分は、クリームはんだが少なかったので、ハケで足しました。

次に、先の細いピンセットと拡大鏡を使って SMD 部品を基板に乗せます。
一応、 SMD 部品は、専用の測定器で値を確認してから基板に乗せました。
(SMD 部品の便利な整理方法は、リンク先をご覧ください。)

前回のリフローで慣れたので、ここまでかかった時間は1時間以内でした。

基板をヒートプレートに乗せて電源を入れます。
5分少々でクリームはんだが溶ける匂いがしたので、ヒートプレートから降ろします。

今回は余裕があったので、基板をヒートプレートに乗せた写真(上)と、温めている時の写真(下)が取れました。

「楽勝、楽勝!リフローも2回でマスターしたぞ。」
と思った次の瞬間に、持ち上げた時にサムスイッチに触ったらポロっと落ちました。

よく見ると、スイッチ部分のクリームはんだは艶消しの灰色のままでした。
また、中央のコンデンサが90℃横倒しの状態でした。
(過信はいけませんね。謙虚に生きましょう。)

修正するために、少量取り出したクリームはんだを、サムスイッチが取り付けられる基板の端子へ「瞬間接着剤用ハケ」を使って乗せて、スイッチを上に置きました。

再度、ヒートプレートの電源を入れます。

今度は、スイッチ部分の半田がキレイな銀色になるまで待ちます。
そのころになると、中央のコンデンサの半田も溶けているので、先の細いピンセットで部品を正常な位置へ動かして修正完了です。

手で半田付けする場合に比べると、驚くほど簡単に修正が終わりました。
SMD 部品を使ってリフローするのは、こんなに楽なんですね。

端子などを半田付け

最低限必要な端子類を半田付けします。
今回は、MCU の周りの配線の確認と修正をしたいので、IC ソケットを使わずに丸ピンソケットを使いました。

入力回路のない OLED オシロスコープが完成しました。
(この写真には Hold スイッチ(右側のスイッチ)が付いていませんが、後で取り付けました。)

ノイズの確認

最初に、入力回路に何も部品を取り付けない状態でノイズを確認します。
これでダメなら、入力部分につながる配線がノイズを拾っていることになるので、対策が面倒です。

祈るようにして電源を入れます。
切り替えスイッチは付いていないので、ジャンパ線で対応します。

大丈夫でした。
前回と同じ「AC, 2V, 41us」レンジでノイズは見られませんでした。
(写真は、確認用に 1 V レンジで取りましたがノイズは 0.1 V 以下です。)

ちなみに、この状態で電圧レンジを切り替えても、関連回路に部品が付いていないので切り替わりません。
では、1つづつ検証していきます。

R5 の取り付けとノイズの確認

R5 を取り付けます。
今回は、取り外すことを考えて、通常の半田ではなく、クリームはんだを使って手半田で SMD 部品を取り付けていきます。

手半田には、SMT クランプが役に立ちました。
SMD 抵抗の根元に少しクリームはんだを付けて半田こてで温めると、簡単に部品の半田付けが出来ました。
電源を入れてノイズを確認します。

R5 を取り付けた状態ではノイズは見られませんでした。
その後、R4、R3 と取り付けて R2 を付けた時にノイズが発生しました。

しかし、よく考えてみると、R2,3,4,5 をすべて取り付けないと入力回路部分は正常に動作しないので、この検証自体が無意味な気がしてきました。

初心に帰って再確認

そして、前回の再確認では、MCU、OLED、昇圧基板を取り外して、電源を乾電池に変更後にオシロスコープ(ジャン測)で電源ラインのノイズを確認しました。
この時には、もちろんノイズはありません。
ところが、MCU である ATmega328P をソケットに刺すと、入力端子と電源ラインにノイズが発生しました。

ちなみに、「OLEDオシロスコープ」(V402)で追加された「校正用パルス信号」がノイズ源ではないことを確認するために、校正信号を出力する基板の端子部分を削って、パルス信号(75 kHz)が外に出ないようにしてあります。

これ以上、この基板でノイズ対策は無理と判断して、新たな基板を設計して PCBgogo さんに発注しました。
今回は、初回特典の「送料込みで $1」は利用できませんが、色々と工夫することで安価にプリント基板がオーダー出来ました。

「OLEDオシロスコープ」の基板を安価にオーダーした記事は、下のリンクをご覧ください。

問題の再確認

使用中のバージョン

今まで対策を行ってきたのは「ラジオペンチ」さんオリジナルの「OLEDオシロスコープ」(V300)を「siliconvalley4066」さんが改良された V402 です。

こちらの「OLEDオシロスコープ」は、オリジナルの

・入力モード:+DC, AC (DCの負電圧は不可)
・垂直感度:0.2 ~ 50 V
・水平感度:50 us ~ 200 ms
・サンプリング周期:8 us (125kHz)
・トリガ:50% p-p 自動、スロープ指定可能
・その他の機能:波形周波数表示、波形デューティ比表示、ゼロオフセット、マルチメータ、電源電圧表示

という素晴らしい機能に加えて

・水平感度拡張:20us/div(25samples/div)
・FFTによるスペクトラム表示
・校正用パルス信号
・等価時間サンプリング:~ 16Msps

という機能の拡張がなされています。
ATmega328P という旧型の MCU の少ない記憶容量で、これだけの機能を実装されたのには驚愕しました。

ノイズの比較

最初にユニバーサル基板で作った「OLEDオシロスコープ」1号機のノイズ画面です。
入力端子を GND に接続しましたが、「AC, 2V, 41us」レンジでノイズは 17.2 kHz 、0.13 V 程発生していました。


ノイズ対策のためにオーダーした、SMD 部品を多用してリフローで作った基板の波形です。
同じ「AC, 2V, 41us」に設定して、「0.09V, 20kHz」程度のノイズが出ています。(写真では29kHzに見えますが、19と20がチラチラしています。)

最後に、オーダー基板から昇圧基板と OLED を取り外して、MCU を乾電池で駆動した時の入力部のノイズです。6 kHz 位で 10 mV 程なので思ったよりは少ないです。(本当は、この状態ではノイズがないと思いましたが・・・)

そして、同じ状態の電源(OLED の +5 V 端子で計測)部分のノイズです。
600 Hz というよく分からない周波数で、50 mV 程度の三角波?です。

新規基板の製作方針

これらの状態を改善するために、新たにプリント基板を設計します。
(ノイズ対策の素人で、日曜電子工作の範囲ですが)

ちなみに、大変ありがたいことにオリジナルを作られた「ラジオペンチ」さんから、ブログにメッセージを頂きました。

参考になるか判りませんが、うちのペン型オシロのノイズを動画に撮りました。
https://x.com/radiopench1/status/1784437610787815825
対策検討のゴールになるかも知れません。

気になったのがOLEDの電源のGNG側の電流パスです。別配線にされてるから大丈夫だと思いますが、OLEDの電源のリターン側、つまりGNDの電流がマイコンの回路を通過していないでしょうか。OLEDモジュールの電源に47μFくらいのコンデンサを入れるのも良い対策になるかも知れません。

「ラジオペンチ」さんの2024年4月28日のコメントより

こちらのアドバイスを参考にします。
目標は、オリジナル程度のノイズ(全域で 20 mV 以下)です。

プログラム書き込み不具合の修正

それと、忘れていけないのは、プログラム書き込みの不具合です。
どうやら、前回 AliExpreseで頼んだ小型のセラロックが、注文した周波数ではない部品が届いたようです。
(表面には周波数の記載がありません。)

オシロスコープで、MCU のクロックを見てみたら約 10 MHz でした。
どうやら、違う部品を送ってきたようです。
(「良かった」と受け取り評価をした後なので、今さら苦情も言えません。泣き寝入りです。)

このままではタイミングが合わないので、MCU を基板に乗せたままでプログラムを更新することが出来ませんし、「計測器」として、誤差が大きくなりすぎます。
新しく AliExpress で同型のセラロックを発注して(違う店にしました。)到着済みなので、この不具合も修正します。

アナログ経路の分離

前回作ったプリント基板は、何も考えずに線をつないだだけでした。

本来、分離しなければならないデジタル系の電源(VCC)とアナログ系の電源(AVCC)も直結していましたし、有ってはならないことに、AVCC と OLED の電源が接続されていました。

また、アナログ入力配線の周辺にベタグランドがない部分が多く、単線で配線しているような状態です。
デジタル系のグランドとアナログ系のグランドも分かれていないです。
これらを、同じサイズの基板上で可能な限り解消します。

MCU の反転とクロック回路の分離

何も考えないと、IC を置く際には無意識に IC の左下側を1番ピンにしてしまいます。
前回作った基板もそうでした。
この配置にすると、最短経路で接続する必要があるクロック回路は当然ながら IC の下側中央の配置になります。

今回は、デジタル系をアナログ回路と分離するために、MCU を180度回転して配置してみました。
すると、デジタル回路を上側に集めることに成功しました。

そして、グランドもアナログ系とデジタル系で分離しました。
さらに、入力ライン周辺にグランドが少なかったので、配線周りと裏側のベタグランドを増加しています。

長穴の修正

前回の基板では設計が悪く、入力端子用の長穴と、入力部に使用しているスイッチ用の長穴が、小さな丸穴1つになっていました。
このままでは組み立てが大変なので修正します。
(前回の基板の状態)

(PCBエディターで描いたプリント基板図)

基板のオーダー前に KiCad の「3Dビューワー」で最終確認したのですが、分かりませんでした。
(「3Dビューワー」の表示画像です。)

これは、やり方さえわかれば簡単に修正できました。
修正する部品(今回はスイッチ)を右クリックして「フットプリント エディターで開く」を押します。

「フットプリント エディター」で開いたスイッチの「長穴」部分をダブル・クリックします。
(ここでは「MH1」)
この図では「MH1」は、作成した時の状態のままで「長穴」で表示されています。

「パッドのプロパティ」が開きます。
右下の図を見ると、こちらの図では小さな丸穴になっています。
これを「長穴」に修正します。

左下の「穴形状」の横を押します。

「円」から「長穴」に変更すると、右下の図も長穴になります。
(忘れずに)「OK」で更新します。

同じように反対側の穴も修正します。

入力端子の穴も修正します。
手順はこれだけです。簡単ですね。

抵抗値などの基板への印字を追加

プリント基板を製作する「PCBエディター」で見ている時には抵抗やコンデンサの値が見えていたので、オーダー基板にも印刷されると思っていたら、到着した基板のシルクスクリーン部分には何も表示されていませんでした。
これは、事前に「3Dビューワー」で見てみれば分かることでしたが、私の確認不足でした。
(「3Dビューワー」で見た基板の拡大図)

基板のシルクに抵抗やコンデンサの値を表示させる変更を、1つ1つ手作業で行うのはつらすぎます。
分からないことはネットで調べましょう。

一度の操作で簡単に全ての設定が変更できることが分かりました。(ラッキー!)
まず、抵抗などの値が入っている部分を確認します。
抵抗をクリックして画面左の「基本プロパティ」を見ると「F.Fab」に書かれていることが分かります。

「編集」の「テキストと図形のプロパティを編集」を押します。

「レイヤーでフィルター」を値が書かれている「F.Fab」にして、
「アクション」で「レイヤー」を、表面に印字する「F.Silkscreen」にします。

自分でやってみようと色々試した時も、ここまでは分かっていたのですが「OK」を押しても変更されませんでした。
実は「スコープ」の「値」をチェックしなければなりませんでした。
忘れずにココもチェックします。
これで「OK」を押します。

再度、抵抗のプロパティを確認します。
抵抗など全ての部品の値の「レイヤー」が、1度の操作で「F.Silkscreen」に変更できました。

しかし、このままでは文字が大きいです。
基板屋さんが受け付けてくれる最小値ぐらいまでに変更します。
今回は「0.8 mm」にしてみましょう。

「フィルター」部分と「テキスト幅」「テキスト高」部分を変更して「OK」です。

全ての抵抗値などの値の表示の大きさが、一度の操作で変更できました。

変更後の基板を「3Dビューワー」で見てみます。

基板上に見える大きさで、ちゃんと値が表示できました。
これを1個づつ変更する手間を考えると、自動で変更できる方法が分かることは私にとっては大きな進歩です。

PCBgogo さんで格安に基板をオーダー

PCBgogo さんでは、初回限定で「送料込みでプリント基板の製作が $1」というサービスを行っています。
この特典はすでに使ってしまったので、受け取った基板のレビューを書いて $10 オフのクーポンをもらって安価に基板をオーダー出来ました。
送料も、有名な DHL は素晴らしいサービスでしたが少々高価なので、今回は少し安い「OCS」にしてみました。
これらの対策を行うと、総額 $12(1,867円)で基板オーダーが注文出来ました。

基板のデータをアップすると、2時間ほどで確認が終了するスピードは健在です。
一応、オーダーする基板の完成予想 CG も見られるので、「長穴」部分を確認しておきます。
この画面で見ても大丈夫ですね。

気になって進捗を見てみると、すごいスピードで基板が作られています。
ほぼ1日で基板が完成しました。

機械が自動で作っていても、人が動作を見ているはずなのですが、夜中も休まず作業が進んでいるようです。

翌日には「OCS」で発送されました。
「OCS」は、初めて利用しましたが ANA グループの国際輸送会社です。
航空便で送られてきました。

記録を見ると、木曜日に PCBgogo さんから出荷され、金曜日に現地の通関手続き、土曜日に輸出許可が下りて航空便で発送、月曜の朝には北海道に届いています。
「OCS」でも、十分に素早い輸送であることが確認できました。(送料は $16 でした。)

注文から到着までをまとめてみました。
・月曜日:基板データの送信
・火曜日:製造指示
・水曜日:基板製造
・木曜日:PCBgogo さんから出荷、OCS が受領
・金曜日:現地の通関手続き
・土曜日:輸出許可が下りて航空便で発送
・月曜日の朝:北海道に到着

届いた基板の確認

実際の荷物はこんな感じで、国内輸送は佐川急便さんで届きました。
キレイな状態で、中の基板にも全く問題ありませんでした。

箱の中は、梱包材でしっかりと固定されていました。
中の基板はプチプチでヒートシールされています。

基板を確認します。
良い出来だと思います。

上から順に、「siliconvalley4066」さんの V402
「ラジオペンチ」さんの V300
「siliconvalley4066」さんの「2チャンネルのOLEDオシロスコープ」
そして、「I2C スキャナ」の各基板です。

前回のように、同一回路ではないので、長穴で区切ると「面付」扱いで製作代が高価になるので、長穴で区切っていませんが、「OLEDオシロスコープ」の斜め部分は長穴で注文出来ました。

基板の切り出し

改造した丸のこで基板を切り出します。
プロクソン社の電動工具は元々の作りが良いので、私の改造品でも切断後はバリもなく大変きれいで良い感じです。
(写真はヤスリ掛け前の状態です。)

ジャンクで入手した糸鋸を「丸ノコ」に改造した詳細については、リンク先をご覧ください。

自作のステンシルでクリームはんだを転写

物置でホコリをかぶっていたカッティングマシン(Craft Robo)でステンシルを作って、クリームはんだを「転写」します。
細かなやり方は、「カッティング マシン Craft Robo を復活させ ステンシル を作る」に記載しました。
リンクはこちらです。

本来ならば昔のパソコンでないと接続できない場合が多いようですが、こちらの手順で Windows10 のパソコンでも OHP シートを細かくカット出来ました。
ただし、同じように 0.1 mm 程度の厚さのプラシートをカットする場合は、速度を最低(設定の「1」)にして、カットは2度にした方が良いでしょう。

自作したステンシルです。
よく見ると正確な四角形にはなっていませんが、クリームはんだが基板の端子部分に適量「転写」できればよいので、こんな感じで十分です。
小型セラコンの端子部分は、非常に細かな切込みが3つ並んでいますが、この程度の精度でも成功率は100%なので、かなりいい加減でも大丈夫なようです。

今回は、基板1個ごとにステンシルを作るのが面倒だったので、1枚の OHP シートに全ての基板分をカットしました。

基板の上でクリームはんだがはじかないように、アルコールで洗浄します。
次に、対応する基板を間違わずに、テープで基板を固定します。きっちりと固定してしまうと剥がすのが大変なので、適度な固定を行います。

現場監督の視察

作業中に現場監督の「くうちゃん」が作業部屋の視察に来ました。
完全に閉まっていないドアを、器用な手で空けて自分で入ってきました。
現場監督は忙しいので、相手をしないと直ぐに出て行ってしまいます。

クリームはんだの修正

ステンシルを静かにはがして、クリームはんだの「転写」状況を確認します。

見た所、少し半田が少ないところがあるので、拡大鏡で見ながら、セリアの「瞬間接着剤用ハケ 2P」で修正します。

部品を基板へ乗せる

修正が終わったら、SMD の部品を乗せていきます。
コンデンサは乗せる前に SMD テスタで値を確認します。抵抗は表面に値が書いてあるので見て確認します。

写真を取り忘れましたが、スイッチを含めた SMD の部品を乗せ終わりました。
今回の基板の表面にはシルクで抵抗値などが記載されているので、簡単に部品を乗せることが出来ました。

自宅リフロー

ヒートプレートで自宅リフローを行います。
前回、基板の全体へ熱が伝わらずにリフローが失敗したので、ヒートプレートを買い直しました。
購入先は同じ AliExpress ですが、今回のサイズは 7 cm × 12 cm です。(こちらも400円程度です。)

前回使用したのが 7 cm × 7 cm だったので、今回使用するヒートプレートならオーダー基板の通常サイズ 10 cm × 10 cm は問題なく収まるはずです。(上下が多少足りない場合は、ずらして対応します。)

耐熱シリコンマットの上に、お菓子の金属箱のフタ(鉄製)を置いて、スイッチをオンにします。
ヒートプレートの足には強力なマグネットが付いているので、多少の事では動いたりはしません。

普通に見ていれば状況は分かるので、(私程度の)アマチュアのリフローには精密な温度測定や厳密な温度管理は必要なかったです。
また、温度を一定にするために大きめの缶(20 cm × 20 cm)も購入したのですが、基板が外気に触れていてもリフローの完成度には関係なかったので、このままで行きます。

1分ほどで低温のクリームはんだが溶けだす温度になります。
基板をよく見ていると、まず、クリームはんだに含まれている半田ペーストが蒸発してかすかな煙が出てきます。
次に、温度の高い部分から順番に、クリームはんだの艶消し灰色がキラッとした輝く銀色に代わります。
この時に、SMD の抵抗やコンデンサがズレたり立ち上がったりすることがあります。

その修正は簡単です。
半田は液状に溶けているので、焦らずにピンセットで正常な位置へ部品を移動させるだけです。
最初に部品の位置を直すときには、手半田の時のように「半田が溶けている間に、急いで修正しなくては!」と思ってしまいましたが、電源を切るまでは半田は溶けたままなので、焦らずにゆっくり修正が出来ます。

問題がなければ、ヒートプレートの電源を切り、一呼吸置いたら基板をピンセットで耐熱シリコンマットに下ろします。
3度目になると、キレイにリフローが出来ました。
今回は大きいヒートプレートに替えたので、全ての部品にしっかりと熱が加わりました。
部品に触って落ちるような不具合もありません。

その他の部品の手半田

IC ソケットや端子類を手半田で取り付けます。
背の低い部品から取り付けますが、2P の端子などはズレやすいのでマスキングテープで固定して半田付けします。

1つ目の基板が完成しました。
同じように残りの2つの基板も組み立てます。

今回、「ラジオペンチ」さんの V300 を組み立てるために、はじめて SMD のダイオードを使用しました。
この部品が曲者で、SMD の抵抗やコンデンサのように広めの端子が両端にあるのではなく、細い金具が本体の下からチョビッと出ている感じの作りでした。
(SMD ダイオードの 3D 画像)

1つの SMD ダイオードの端子の片側に半田が付いていない状態でした。
リフロー後に気づいたので、再度、その部分にクリームはんだを足して、細い半田ごてで温めると修正できました。

動作確認

3種類の基板が完成したので、動作を確認してOKならばノイズを見てみます。
まずは、ラジオペンチさんの V300 基板に OLED と昇圧基板を取り付けて確認します。

ここで、基板の不具合を2か所確認しました。

基板の不具合を修正

1つ目は、OLED 端子の部分です。
今回ノイズ対策のために IC ソケットを180度回転させたのですが、OLED の信号端子である「SDA」と「SCL」はそのままの順番でつないでしまいました。
つまり、OLED の 4P 端子は左から「GND」「+5 V」「SCL」「SDA」でなくてはなりませんが、「SDA」「SCL」の順になっていました。
このままでは OLED が表示できないので、基板のパターンをカットして基板裏でジャンパで配線しました。
(画像上の J3 が OLED 端子ですが、Pin3 は MCU の Pin28 へ、Pin4 は MCU の Pin27 へ接続するべきですが逆になっています。)

2つ目は、入力端子がグランドに短絡していました。
前回、入力端子の裏面がレジストに覆われていて端子を半田付けできなかったので、KiCad の「フットプリント エディター」で入力端子の基板裏側の形状を変更しました。
「入力端子に設定したのだから、グランドに接続などされない。」と考えていました。
もちろん、KiCad の検査でも問題は表示されないことを確認済みです。

しかし、正常に動作しないので、「3Dビューワー」で良~く見てみると、端子裏がグランドにつながっています。

これも、パターンをカットして正常に動作しました。
(元のデータをコピーしてPCBのパターンを作ったので、3枚の基板ともに修正が必要でした。)

プログラム書き込み不具合の確認

「OLEDオシロスコープ」の動作確認をする前に、MCU に供給されるクロックを確認して、プログラム用端子に USB 変換器をつないでファームウエアの書き込みが出来ることを確認します。
新たに入手した小型セラロックも、拡大してみてみたら数字は印字されていません。
さて、今度のセラロックの波形(周波数)はどうでしょうか?

オシロスコープ(ジャン測)で見てみると、今回はちゃんと 16 MHz 位で発信していました。(気のせいか、こちらのセラロックの方が、見た目が良い気がします。)

作業部屋の Linux パソコンを USB 変換器を介してつないで、プログラムの書き込みが出来るかを確認します。
問題ありませんでした。

やはり、周波数が異なることが書き込み不良の原因でした。
(16 MHz で発信しなければならない所を 10 MHz では正常に動作するはずがありませんよね。)
これで、1つ目の不具合は解消しました。
少し安心です。

「ラジオペンチ」さんの V300

最初にラジオペンチさんの V300 を確認します。
このバージョンには、前回確認した「41us」レンジがないので、「AC, 2V, 50us」でノイズを比較します。
「おっ!今まで苦労したノイズがありません!!」

うれしいので、OLED 画面を別写真で拡大します。
ノイズが小さいので、周波数は一定になりませんが、数kHz、 0.01 V 以下ですね。

次に、自作した信号発生器から信号を入れてみます。(中身は「AD9834」DDSの簡単な回路です。)
ちょうどよい振幅の信号を入力できるように、信号発生器の出力には自作のアッテネータを取り付けます。

信号発生器もアッテネータも自作の簡単な物なので、BNC ケーブルはメーカ品(HP 製)を使いました。

信号を入力した画面がこちらです。
なかなかピントとシャッタースピードが合わずに、少しピンボケですが 2 V レンジで 14.9 kHz を示しています。波形もしっかり出ています。
これなら実用的な波形を見る「計測器」として使用できます。

「siliconvalley4066」さんの 「2チャンネルのOLEDオシロスコープ」

次にどちらを確認するか迷いましたが、「siliconvalley4066」さんの 「2チャンネルのOLEDオシロスコープ」を確認します。

「2チャンネルのOLEDオシロスコープ」の性能

この「OLEDオシロスコープ」は、私にとっては Arduino Nano(ATmega328P)で作ったとは思えない「異次元」の性能です。
機能の概要です。

  • チャンネル数:2
  • 入力モード: DC、AC
  • 電圧レンジ(volts/div): 1V, 0.5V, 0.2V, 0.1V, 50mV
  • 時間レンジ(time/div): 10s ~ 580us (17ksps)、(1チャンネルのみ) 500us ~ 33us (307ksps)、62.5us ~ 0.625us (16Msps)(等価時間サンプリング)
  • FFT機能:8bits 128 samples(200ms/div以下)
  • パルスジェネレータ機能:0.238Hz ~ 8MHz (約5Vpp方形波 Duty ratio可変)
  • ファンクションジェネレータ機能: 0.01Hz to 9999.99Hz(実用は1kHzまで) 約5Vpp
  • 8波形: sine, saw, revsaw, triangle, noise, sinc5, trapezoid, chainsaw

5ポジション・スイッチの機能

こちらの「OLEDオシロスコープ」は、インターフェースが「上・下・左・右」なので、サムスイッチでは対応できません。
そこで、5ポジション・スイッチをケーブルで取り付けました。

5ポジション・スイッチの機能図

動作確認

こちらも、色々な設定で見てみましたがノイズは見られません。
ちなみに、実装していない「CH2」は「OFF」にしています。

同じように、信号発生器の 15 kHz を入力してみました。
三角波がノイズもなく表示出来ています。
周波数もしっかりとカウントしています。

「siliconvalley4066」さんの V402

最後に今まで数々のノイズ対策を行ってきた「siliconvalley4066」さんの V402 を確認します。

ダメですねぇ。
今までと同じ「AC, 2V, 41us」で見てみましたが、0.09 V のノイズが出ているようです。

しかし、色々と設定を変えてみているうちに、よく見ると周波数欄が計測不能になっています。(nan 表示)
これは今までと違います。

ノイズが出ている時には、「0.1 V」近い波形ですから「周波数」と「%」部分に数値が出ていました。
今回もノイズのような波形が見えますが、実際にはノイズは無いのかもしれません。

本当にノイズが減っているのか確認するために、「安価にプリント基板を発注しよう」の記事でも書いた、電池駆動でのノイズをオシロスコープで確認してみます。
OLED と昇圧基板を取り外して、電源を電池から供給します。

まずは、入力部分の波形です。
前回は、安定しないノイズ波形が、数kHz で 10 mV 程度で観測できました。
今回は、ノイズらしきものは見られませんでした。

次に、+5 V のノイズを見てみます。
前回は、600 Hz で 50 mV ほどのノイズがありましたが、今回はノイズらしきものは見つかりませんでした。

想像ですが、最小時間間隔付近では何らかの拡大処理の関係でノイズらしき波形が表示されてしまうようです。
(私の能力では、それ以上は分かりませんでした。)

他の基板と同じように、信号発生器の 15 kHz を入力してみます。
今までは、信号を入力してもノイズが合成された波形として表示されていたのが、きれいなサイン波が見られます。周波数もしっかりと認識しています。

これは、無信号の際に表示されるノイズ状の波形さえ気にしなければ、波形を表示する「計測器」として十分に使用可能なのではないでしょうか。

入力端子部の取り付け

そういえば、まだ3種類のOLEDオシロスコープには入力端子部が未装着でした。
金具を加工して取り付けます。

材料は2つです。
テスト棒の先と「板ラグ端子」です。

「板ラグ端子」は、微妙に M4 のネジ径より穴の直径が狭いので、丸いヤスリで少し削ります。

テスト棒が入るサイズに加工出来たら、基板に半田付けします。
基板に挿入した「板ラグ端子」の先は、90度に曲げて半田で固定します。
M4 のナット(写真ではケース内で固定が容易なように四角いナット)で固定します。

完成しました。
予定していた 3D 画像どおりに仕上がりました。

ケースが無いむき出しの状態ですが、基板上にスイッチなどをすべて配置しているので、電池さえ接続すれば、このままでも全ての機能を使用することが出来ます。

全体評価と今後の予定

「ラジオペンチ」さんのアドバイスにもあったように、これ以上「ノイズ対策の沼」に深入りせずに「OLEDオシロスコープのノイズを何とかする」シリーズは、今回の「後編」で終了とします。
多少気になる部分は残りましたが、スッパリと終わりにします。

「ラジオペンチ」さんと「siliconvalley4066」さんが、製作に必要な全てのデータを公開してくださっているおかげで、素人の私でも素晴らしい性能の「OLEDオシロスコープ」を組み立てることが出来ました。
ブログ上ですが、お二方に御礼申し上げます。

これで「OLEDオシロスコープ」を組み立てるカテゴリはお休みです。
少し時間がかかると思いますが、次は、3DプリンタでOLEDオシロスコープのケースを作る予定です。

コメント