レーザーカッターでステンシルを作ってみる3

昨日の続き

※文章校正をChatgptにしてもらいました。AI校正記事(?)です

今回、ステンシルを使ってはんだペーストを塗布してみたところ、思った以上にペーストがはみ出して潰れてしまいました。原因としては、ステンシルが基板に十分密着していなかったことが大きそうです。今後はステンシルの抑えを作り、基板にしっかり固定できるようにすれば改善できそうです。

また、全体的にペーストが外側にはみ出す傾向があったため、開口サイズをもう少し小さくすることも検討したほうがよさそうです。

とはいえ、このままでもリフローすれば表面張力である程度きれいにまとまりそうな印象だったので、基盤の縁にはみ出した部分だけ軽く拭き取り、そのままリフローしてみました。

結果として、コンデンサが2個ほどずれかけたため、リフロー中にピンセットで微調整しました。仕上がりはやや見た目が荒いものの、ブリッジは発生せず、予定していた部品はすべて実装できました。初回としては十分実用的な仕上がりです。

Chatgpt提案改善点

改善点についてもChatgptにきいたので、今後は参考にしながら、最適な方法を探っていきます。

今後の対策・改善点

1. ステンシル固定治具の作成
基板とステンシルを確実に密着させるため、簡単なフレームや治具を作る。テープ固定だけでもかなり改善が期待できる。

2. ペースト量の最適化
開口を5〜10%程度小さくする、もしくはスキージの圧力を下げて塗布量を減らす。

3. 塗布方法の見直し
スキージを一方向に一定速度で動かし、往復させない。余分なペーストは毎回回収する。

4. 部品の仮固定
リフロー前に軽く位置を確認し、特に小型チップ部品はセンターに乗っているかチェックする。

5. 温度プロファイルの安定化
急加熱を避け、予熱時間をしっかり取ることで部品のズレを減らす。

バックアップ先のNFSが死んでいてメインサーバローカル書き出しでメインも死んだ

事象

別サーバのHDDをNFSでマウントしてバックアップのコピーをrsyncしているメインサーバがあった。

別サーバが落ちた際に監視等をしていなかったため、

  1. メインサーバのローカルに差分ファイルを書き出し
  2. 差分といってもメインサーバにはファイルがないため既存ファイルを一気に書き出し
  3. I/O負荷が高い状態が継続
  4. (容量はまだ余裕がありそうだったが)何かのリソースが不足しsystemdがお亡くなり

というシーケンスが発生した模様。

Jan 30 06:25:15 ホスト名 systemd[1]: Failed to fork off sandboxing environment for executing generators: Protocol error 
Jan 30 06:25:15 ホスト名 systemd[1]: Freezing execution.

重症そうなlogがでていた。

4番は内部で何が発生したかをさらに追う技術力はないので調査はここまで

別サーバが落ちた原因

Linuxを動かしているSSDとバックアップ用のHDDで構成していたがSSDが完全に動かなくなった模様。HDDは無事。古いハードなので電源が不安のある動きをしている気がしないでもないがSSD故障はしょうがないのでそんなものかもしれない。

対処

クラウドは高く、マシンから離れない生活をしているので懲りずに基本的に物理サーバで復旧対処する。

算定対処

メインサーバ自体は再起動で復活。

バックアップに関してはメインサーバのSSDに短期バックアップ保存->メインサーバのHDDとリモートのHDDの2か所に保存していたためメインサーバHDDの無事は確認。

死んだ別サーバの復旧は後回しにして、取り急ぎS3にバックアップを退避。

本格対処

別サーバのSSDを取り外し、余っていた中古256GSSDに変更、Ubuntsuをセットアップし元の状態に復旧

NFSの死活監視をしていなかったのが原因なので死活監視追加

夜間バックアップで発生するので、監視に気づかない場合に備えNFSがつながっていない時はバックアップをしないように変更

レーザーカッターでステンシルを作ってみる2

レーザーカッターでステンシルを作ってみる1の続き

下図のように枠線で出力されているDFXファイルにてカプトンシート(ポリイミドフィルム)そのままレーザーカッターでカットしてみた。

30wのCO2レーザー(Beamo)で「出力24%、速度20、パス1回」と普段コピー用紙をさくっと切る設定でまずは試した。

切り抜けていない箇所と、パッドが隣とつながってしまっている個所が混在。つながったりつながらなかったりしているパッド間は0.6mm程なので今の出力だと0.3mm程レーザーのカット幅で予定より大きくなっている模様。また、切り抜けていない箇所があるので出力を上げるか、複数回カットが必要。

レーザーのカット幅分切り抜く位置を内側に寄せたいがDFXファイルだと編集が面倒そう。塗りつぶしで出力されるSVGでオフセットをかけて内側にカットラインを寄せてみる。具体的な手順はこちらを参考にした。

Inkscapeで枠線を0.2mmオフセット。出力24%、速度20、パス2回にして再実行。

カットしたシートはゆがんでいる。ただし、カット前に一度ヘッドに巻き込まれて折り目がついてしまったので、カット時の熱のせいか、巻き込みのせいかは不明。

暫定対処でマスキングテープで角を止めてみる。見た感じは悪くなさそう。少なくともつまようじ等でペーストを乗せるよりはいい感じになる予感。

今日はここまで。

レーザーカッターでステンシルを作ってみる3

レーザーカッターでステンシルを作ってみる1

PCB用のステンシルは試作用基板で作るには高いのでカプトンシート(ポリイミドフィルム)で作ってみる。CO2レーザーでカットしてみる予定。

カプトンシート

購入先はAliのこちら

1/25発注で1/30到着

A4大封筒にビニール包みで届いた。気になる折り目等は無し。ただ、他の荷物と同根なので段ボールの端が刺さったりとかはありそう。

耐熱等も書いていなかったのでとりあえずきれっぱしを温めてみた。

1分ほど240℃で温めてみたが特に変化なし。(はんだペーストで問題でないか確認するつもりだったがそもそもリフローの時には熱がかからないこと後で気づいた。カットの時の熱でどうなるかはこれから)

ステンシル用データ

KiCAD9.0.6を使用。

2面基板(実装部品は表のみ)の場合は、パッドのデータは「PCBエディタ->ファイル製造用出力->ガーバー」から「左上のプルダウンからDXFまたはSVGを選択」F.Pasteのみ選びプロットで出力できた。裏面を出す場合はB.Pasteだろうけど試していない。

2026.2.3追記

F.pasteのみだと外径が出ていなかった下図のように含めるレイヤーF.pasteとすべてのレイヤーでEdge.Cutsを選択すると基盤外径も出力される。

紙ベースでやっているブログがあったのでこちらを色々参考にする

追記終り

DXF形式だとパッドの枠のみ出力、SVGだと塗りつぶしで出力された。DXFでそのままレーザーでカットできれば楽だけど塗りつぶしの方が微調整必要になったときにやりやすいかも。

出力の際にインチ指定だと、(今回インストールしたての)LibreCADでmmを指定してもインチで認識されてしまった。mm指定で出力した場合はmmで認識してくれた。LibreCADの使い方の問題かもしれないが自分が編集しやすい単位で出しておいた方がよさそう。

今日はここまで

続き

The type javax.imageio.ImageIO is not accessible

久々に素のJavaプロジェクトをEclipseで使い

import javax.imageio.ImageIO;

をしようとしたら以下メッセージが出て怒られた

The type javax.imageio.ImageIO is not accessible

ルートにmodule-info.javaが自動生成されていてImageIOが入っているモジュールを明示的に要求するか、module-info.javaを削除しないとだめとのこと

module ImagePack {
	requires java.desktop;
}

module-info.javaにrequires java.desktop;を追記しとりあえず動作。そもそも使い捨てツールぐらいなのでモジュール化いらないのでmodule-info.javaファイルを削除しただけでもよかったかも。

Aliexpressで買ったソレノイド/電磁弁

Aliexpressで買って使っているソレノイドの仕様を忘れがちなのでメモ。

ものはAliexpressでソレノイドで検索するとよく出てくるこいつ。夏場にミストノズルから水道水を断続的に噴射するのに使っている。数個買って一つは1-2年で内部のばねが下手って駄目になったけどその他はおおよそ問題なく使えている。(簡単なつくりなので部品があれば分解修理もしやすいが程よい固さのばねがないので修理しないで他のを使っている)

電流オープン時でおおよそ0.5A(12V)、常温ぐらいでコイル抵抗25Ω程。ラベルに1Aとかそれっぽい文字が空いてあるけど、電流じゃなくて検品時のグレードか何かかもしれない。

接続はタカギのジョイントを使っている。

FreeCAD1.0.2でGearワークベンチがエラー

エラー内容

FreeCADの勉強で1.0.2をインストールし、Gearワークベンチ(アドオン)を追加したところ以下のエラーメッセージが出て動作しない。

All ufuncs must have type `numpy.ufunc`. Received (<ufunc 'sph_legendre_p'>, <ufunc 'sph_legendre_p'>, <ufunc 'sph_legendre_p'>)

原因

Gearsが内部で呼んでいるnumpyモジュールの仕様変更があり不整合が起きているらしい。

FeeCADが内部で持っているpythonのライブラリを最新にアップデートしたら治るとのこと。(参照

cd “C:\Program Files\FreeCAD 1.0\bin”

python.exe -m pip install –upgrade numpy scipy sympy

言われるがままに上記コマンドをコマンドプロンプトから管理者権限で実行した。その結果動作するようになった模様。(そもそも初めて使うので完全に正常な動作なのかの確認は取れていないが、ぱっと見動いている)

直接エラーの出たnumpy以外にも依存モジュールの scipy/sympyリンク先に書いてあったので一緒に更新

Freecadのpythonコンソールでの出力結果(最初の2行が入力)

import numpy, scipy,sympy

print(numpy.__version__, scipy.__version__,sympy.__version__)


2.3.4 1.16.3 1.14.0

正常動作時のバージョン

  • FreeCAD 1.0.2
  • freecad.gears workbench 1.3.0
  • numpy 2.3.4
  • scipy  1.16.3
  • sympy 1.14.0

備考

gearワークベンチの依存モジュールにjupytorというものもあるが更新していない。もしかしたら同様に更新必要になるかも。(モジュールが何をするものなのかよくわかっていない)

FreeCADのpython配下にモジュールを直接入れたけれども使うアドオンによっては逆に古いバージョンでないと動かないとかもある模様。それぞれのアドオン用に起動環境を準備したほうがのちのち良いかもしれない。

Aliで買った格安彫刻刀セット研がないと使えない

買ったものはこちら。買った時点では、12組セットで330円の格安品。

そんなに切れ味よくはないだろうと想像していたけど、力を入れてもほぼ彫れない。やわらかいSPF材(ツーバイフォー)で試してもかなり力を入れても1mmの切りカスを作るのがやっと。

刃の素材はマンガン鋼と書いてあるので研いだら何とかなるはず。

ということで、同じくAliで買っていたこちらのやすりで研いでみた。

1分ほど軽く研いだらぴろっと長めに彫れるようになった。感覚的には、ほとんど使っていない小学校で買った息子の彫刻刀の半分ぐらいの切れ味。ちゃんと研げば切れるようにはなるんだろう。

最初400番の砥石で研ごうとしていたけど全然切れ味変わらなかった。刃先の状態が悪すぎなのでもっと荒いのでスタートしなくてはいけなかった模様。

Aliで買ったフォトリフレクタITR9909使えた

買ったもの

買ったのはこちらのものとこちらのもの。買ったの忘れて別の場所から2回買ったけど物は多分同じ。

スケッチ

手元のArduino UNO R3で以下のスケッチで動作確認。(LED側の抵抗は220Ω、フォトトランジスタ側の抵抗は10kΩ。配線は下の方に記載)

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println( analogRead(0));//A0ピン
  delay(200);  //測定間隔
}

出力は5-10mmの距離で白い紙を置くとAnalog値で100

979
977
954
809
288
125
117

回路

データシートは購入先のこちらに抜粋

物理的な配置ではグランドにつなぐエミッタとカソードが対角線にあるので注意。

Aliexpressで買った3wレーザーダイオードモジュール

おそらく同じもの複数売られているけどこいつ

Vfは3.05ぐらいだったのでおおよそ表示通り。30mA(15mAの定電流ダイオード2並列)でしっかりと光る。それより若干電流が小さくてもレーザーとして光ったはず。(試して時間がたったので記憶が曖昧)

電線は蚊トンボの足のようにもげやすい。(付け直しのはんだはやりやすかった)

電池2本駆動だとレーザーダイオードで3Vつかい、昇圧しないと定電流回路を動かす分の電圧が足りない。

というわけでAliで売っているいつもの昇圧コンバーターで昇圧。どうせ、昇圧するなら作るの簡単な定電流ダイオード2並列で雑に作ろうということで定電流ダイオード(秋月のこいつ)の動作に必要な4.3vをたして3V(レーザー)+4.3V(定電流ダイオード)の7.3V以上に昇圧。(ちょっと余裕持たせて8.5Vぐらい)

単三電池*2->昇圧コンバーター->定電流ダイオード(15mAの2並列)->スイッチ->ダイオードのシンプル構成

余っていた使わない基盤に張り付けて完成。1月ほど使っているけど今のところ安定動作。

電流はおおよそしか制御できていないはずだけど安い部品なのでざっくり。

試していないけど、Aliに使えそうな定電流ICがあった。電池2本だと厳しいだろうけどリチウム電池やスマホから5Vとれるならシンプルに使えそうなきがする

(2025/10/1追記)

壊れたレーザーポインターの基板に取り付けて使っていた動いた。よく見るとその基盤は、22Ω抵抗とスイッチのみ(単三2本で動作)。レーザーの劣化が若干早い気はしたけど、いつもスイッチが下手るのが先。そんな単純な構成でもおおよそ動く模様。部品高いものでもないし壊れたら交換するぐらいに割り切って使ってもよいかもしれない。