KiCAD10といっても、使い始めてまだ1カ月ほど。
プリント基板なんぞにゃトンと縁がなかった。
なにぶん電子機器の知識が無いものだから何かを作ってみようという気が起きなかったのだ。
そこに昨今のAI騒ぎ。AIなんてよくわからん物をとにかく使ってみるかいな、という次第で作る回路を決めてみた。
そうそう、昔、Apple II などという機械があったが、あれでよく遊んだのだ。という事で設計する回路は
Apple II 用の拡張スロットに差し込んで使うものにした。
それで相談相手のAIはGEMINIにしてみた。これは画像を読み取ってくれるAIなので相談しやすそうだと思った次第。
でもGEMINIはある意味バカだった。いや、もっと悪い。わからないのなら、知りませんとか答えればいいのにごまかすのだ。
GEMINIが提示してくる回路図を眺めてみると、電子機器の知識に乏しいオイラにもひどい出来だとわかる図面。
こりゃ話にならんと、次なるAIを探してみた。検索上位に引っかかるAIを試してみると、
これらはGEMINIよりもひどかった。嘘はつかないが、こちらの話を無視するか、はぐらかして、逆に質問してくる。つまり教えてくれという態度なのだ。
それに、そういうAIには大抵有料会員勧誘のページがしつこく表示される。うんざりした頃にCLAUDEにたどり着いた。
CLAUDEは画像を読み取ってはくれない。話だけで回路図が作れるものかなぁ?
と思っていたけどCLAUDEは結構使える。使えるので有料会員になってみた。
でも回路図をきちんと作ってプリント基板を発注するにはCADを使わないといけない。
それで、KiCADというアプリの解説本を一冊買って読んでみた。
本の内容はよくわからないが、とにかく使ってみた。
最初の数日は大変だった。年寄ってよくわからん本を読んでると眠くなるのね。
あそこはドーダとかここはどうすれば良いのか、などとAIに相談しながら1週間ほどで回路図ができた。
さて回路図ができたので、次はKiCADのPCBエディタというtoolで回路図に従ってプリント基板の上にコンデンサやら抵抗を乗せてゆく作業になる。
最初に買い込んだ本は、その辺りから解説が少なくなっていて、まあ、使い物にならなくなった。
今では回路図の第二版にとりかかっているのだが、kiCADで回路図つくるよりもKiCADのPCBエディタでプリント基板上の部品同志を配線してゆくほうがよほど大変なのだと思う。
その作業が大変なので、AIに相談したらFreeRoutingというJAVAソフトがあって、それが自動的に結線してくれるのだとか。
これを使ってみると、こりゃ楽チンだわ。あっという間に結線が終了。で、よく確認もせずにJLCPCBにプリント基板を発注。
一時間後、あれま!アースのベタ塗の順番を間違えて、孤立ベタができているではないの。まあ、それでもジャンパーを飛ばせばなんとかなるだろうと。
それに、電子機器はハードウェアだけでは動かないので、動かすソフトウェアを作らないといけない。でもハードウェアが一発で動作するとは、さすがに考えていなかった。
そこはほら、AIに作ってもらおうか、などと考えながら、一週間ほどでプリント基板が到着。
さっそく部品を基板に乗せて半田つけしていった。ほとんど完成かという時になって妙な事に気が付いた。
使っているCPLDというチップなのだが、ピン番号が違うのだ。KiCADにあったPCBエディタで使うフットプリントという、まあCPLD写真みたいな物、がATF1502AS_PLCC44とあったのを拝借して使っていた訳。ところがこいつは基板に直つけする製品では無くてソケット使用の製品だった。さらに勘違いが続く。購入したCPLDはATF1502AS_TQFP44,これは基板に直つけする製品。さらに、PLCCとTQFPはピン番号が完璧に違っていたのだ。
まあ、そういう次第で最初のプリント基板はお倉入りになった。CPLDの方はWinCUPL_IIというアプリで動作をシュミレートしてOKだという結果だったのだが、さて現実の方はどうか?
という次第で回路図の第二版と相成った。
ATF1502ASを使うというのは、何とも気分が悪い。こんなCPLDなんか馬に蹴られて死んでしまえ。なので ATF1508AS_TQFP100を使う事にした。このチップはヒン間の距離が0.5mmで100個のピンがあるいとう代物。どうせ動かない物を作るなら派手に玉砕してしまえ、などと思ったわけではない。半田つけは老眼のオイラには一日仕事になりそう。
で、作業が順調に運んだかというと、そうでもない。
先にこれは便利と思ったFreeRoutingというアプリが反乱を起こした。java.lang.StackOverflowErrorを起こしてまったく動作しなくなった。
「古いFreeRoutingはバグが多いです。GitHubの最新版を使うと改善されることがあります。」
というAIに、いや最新版なのだが、と思いながらも最新版を再インストールするオイラ。
「FreeRoutingをコマンドラインから起動します。java -Xss10m -jar freerouting.jar」
でもJAVAに疎いオイラには実行できない、どうやら -Xss10m というのがスタックを増やすという事のようだ。
「PCBエディタから直接FreeRoutingを呼び出せます。」
やってみると、やはりjava.lang.StackOverflowErrorとなってしまう。
何とかコマンドラインから
java -Xss10m -jar freerouting.jar
とやってみると
Error: Unable to access jarfile freerouting.jar
AIによるとpathが通っていないからだと。システムpathの通し方は下の方にある通り。
Windowsでもfreeroutingには jar 版と exe 版があり、オイラの使っていたのは exe 版の方。
でもスタックを増やせるのは jar 版の方だというので、ダウンロードしてきました。
そしてダウンロードフォルダーまでPowershellでディレクトリーを移動して
java -Xss20m -jar freerouting-2.2.4.jar
と実行するとJAVAのバージョンが古いと言われてしまう。
java -version
で見ると
Java 8(class file 52.0)
なのに対してFreeRouting 2.2.4が必要なJavaは
Java 25(class file 69.0)
最近のJAVAは
https://adoptium.net/
からとってくるみたい。
OpenJDK25U-jdk_x64_windows_hotspot_25.0.3_9
というのをとってきてインストール。
実行してみると
Error: Unable to access jarfile freerouting-2.2.4.jar
なので、
C:\Program Files\Eclipse Adoptium\jdk-25.0.3.9-hotspot\bin
をpathに加えてみた。
ただやはりStackOverflowErrorは続く。
そうやって何時間か経過しているとAIが、StackOverflowErrorはfreerouting-2.2.4のバグだという。
Simplex.simplify が無限再帰を起こしているとのこと。
対策としてfreeroutingの古いバージョンを使うといいらしい。
いろいろ試してみて
FreeRouting 1.9 + OpenJDK17U-jdk_x64_windows_hotspot_17.0.19_10
という組み合わせに決めた。
JAVAのpathの通し方。
Windowsキー → 「環境変数」と入力 → 「システム環境変数の編集」→「環境変数」ボタン
続いて
「システム環境変数」のPathを選択 → 編集 → 新規追加
以下の項目をpathに追加した。
C:\Program Files\Eclipse Adoptium\jdk-17.0.19.10-hotspot\bin
その上で
Windows powershellで
java -version
と入力してjava17がインストールできている事を確認し
https://github.com/freerouting/freerouting/releases/tag/v1.9.0
からFreeRouting-1.9.0.jarというファイルをダウンロード
ダウンロードフォルダにFreeRouting-1.9.0.jarが届いているはずなのでpowershellでdownload folderまで移動してpowershellで
java -Xss20m -jar freerouting-1.9.0.jar
とすると
[main] INFO Freerouting v1.9.0 (build-date: 2023-10-30)
[main] INFO Settings were loaded from freerouting.json
[ForkJoinPool.commonPool-worker-1] INFO New version available: v2.2.4
新しいfreerouting-2.2.4がありますよ、というメッセージは無視して、しばらくするとfreerouting-1.9.0が立ち上がってきます。
その画面の「デザインファイルを選択する」ボタンを使ってKiCADからexportしたdsnファイルを読み込みます。
読み込めましたら、画面の上欄に「オートルーター」というボタンが表示されているので、これを押すと自動配線が開始されます。
使ってみると最高ですね。何よりもStackOverflowErrorが出ない。
自動配線ができない場合は延々と動き続けるので、画面をマウスで押さえて動作を止めます。
うまく自動配線が終了すると自動的に最適化というのか、総結線距離とビアの数を減らす操作が始まります。
一時間も眺めていると、それらの数が減っています。一晩中動かし続けてもいいのですが、そのうち数が減少しなくなってきますので、適当な時期に動作を止めます。
つまり「mail addressを登録してね」というメッセージが出ない。
今回のプリント基板は
1層-一般配線
2層-GND層
3層-VCC層
4層-一般配線
の4層基板にしました。
最初はfreeroutingがStackOverflowErrorを出して使えないので4層基盤なら手配線できるだろうと始めたのですが、
徹夜しても完成しない。しないどころか、どうやって完成したものか見当もつかない状態になってしまった。
freeroutingを使うなら1.9.0ですね。
この状態で久しぶりにfreerouting-2.2.4を使ってみると数本だけ配線して200か所以上未配線で終了してしまった。

0 件のコメント:
コメントを投稿