Top Page KiCad4.0.7から5.0.2への移行
自作・実験工程のメモとして
10.Jan.2019


 今回は製作ものでは有りませんが、日ごろから使っている KiCad 4.0.7 (以下、KiCad4と略す)が5.0にバージョンアップされたので、移行することにしました。
5.0が出始めたのが2018年夏ぐらいからでしたが、KiCad 5.0.2 (以下、KiCad5と略す)が出る予定が近かったので待っていたことと、基板づくりが一区切りつく時期を狙い、年明けのタイミングになりました。
それまでは、Webの検索でKiCadのインストールやKiCad4からKiCad5へ引き継ぐ内容のホームページ(HP)やBlogを探すとともに、トランジスタ技術2018年12月号も購入して肥後信嗣氏の[特設記事]を参考にさせていただきました。

記載した内容が、私の勘違いから間違っている場合もあることをご了承ください。




Edit by bluegriffon3.0.1

Migration from KiCad 4.0.7 to 5.0.2
1.KiCad4の保管とインストール

 KiCad4を残したままKiCad5をインストールする方法もあるようですが、よくわからなかったので、アンインストールすることにしました。
そこで、前のファイルのバックアップを残してインストールすることにしました。

1.残すフォルダー
・ProgramFiles のKiCadフォルダー全部をコピー
・Document\My_KiCAD もコピー
・\AppData\Roaming\Kicad もコピー



2.KiCad 4.0.7 のアンインストール
・「コントロールパネル」「プログラムと機能」から、KiCad4.0.7 をアンインストール

3.KiCad 4.0.7 の環境を削除
・USER\AppData\Roaming\Kicad を削除(Kicad4の設定を引き継がない [*1]

4.KiCad5のインストール
・KiCad5.0.2_1-x86_64.exe インストール(標準)
・KiCadインストールの後FreeCADソフトのインストールを聞かれたのでスキップしました。

5.KiCad: プロジェクト・マネージャー の初回起動
・初回起動でグラフィックアクセラレータ使用の有無を聞かれたので、「有効」を選択した。

 [*1] kosakalabさんのBlog「KiCad 5 のフットプリントライブラリ参照の不具合」を参考にさせていただきました。
2.Eeschema: 回路図エディターとコンポーネント・ライブラリー・エディター

 回路図エディターは、KiCad4のシンボルが使えるようにします。

1.シンボルライブラリーの設定
・シンボルライブラリのグローバルライブラリーパスの追加設定
「設定」==>「シンボル ライブラリーを管理」


KiCad4で使用していた二つのシンボルライブラリーを登録します。(1)

2.KiCad 5.0.2 用のシンボルライブラリーの登録
・シンボル ライブラリー エディター を起動して左端アイコンから、事前に用意したKiCad5用のシンボルフォルダーに自分用の(例)「0_Ki5_Symb.lib」ファイルを作成する。(自動的にライブラリーファイルが追加されるようです。(2)
・ファイル名の先頭に 0_ を付けるのは、参照時に一番上の行に出現するから付けています。
・シンボルライブラリーのコピーは、既存のシンボルを一つ選び、右クリックで「コピー」した後、先ほど作った 「0_Ki5_Symb.lib」ファイルを選択して右クリックから「シンボルを貼付け」で写すことができました。



3.部品表(BOM)を生成
・BOMは、「プラグインを追加」で bom2csv.xls を選択
コマンドラインの記述は自動で出現するので、


上記のように .csv を付加しました。


3.Pcbnew: 回路基板レイアウト・エディターとフットプリント・エディター

 こちらの回路基板レイアウト・エディターでも、KiCad4のフットプリントが使えるようにします。

1.フットプリントライブラリーの設定
・フットプリントライブラリのグローバルライブラリーパスの追加設定
「設定」==>「フットプリント ライブラリーを管理」

こちらもシンボルと同様に、KiCad4で使用していたフットプリントライブラリーを登録します。(1)

2.KiCad 5.0.2 用のフットプリントライブラリーの登録
・フットプリント ライブラリー エディター を起動して既存のフットプリントを一つ選びフットプリント エディターに移します。
・そのフットプリントを左端から3つ目のアイコン「新規ライブラリーを作成して現在のフットプリントを保存」から、事前に用意したKiCad5用のフットプリントフォルダーに自分用の(例)「0_Ki5_Footprint.pretty」フォルダーが作成されます。
・フォルダー名の先頭に 0_ を付けるのは、参照時に一番上の行(KiCad4で使っていた .pretty の次)に出現するから付けています。
・(.prettyは、新規フォルダーの場合付加されるとのこと。)
・フットプリントは自動的にライブラリーファイルが追加されないようなので、フットプリント ライブラリー エディター で、「ライブラリーを参照」ボタンから追加しました。(2)

3.デザインルール チェック(DRC)の設定
・DRCでは、以下の「DRC実行前に・・・」にチェックを入れました。



4.製造ファイルの出力 設定
・以下の2箇所にを入れました。




5.ドリルファイルを生成 設定
・ドリルファイルが二つ生成されるので、「・・・一つのファイルにマージ」にを入れました。





4.KiCad4で作成したフットプリントの不具合をBASICプログラムで修正

 上記3項までの設定を進めながらKiCad4で作成したプロジェクトを開いていくと、パッドの一部にシルク層が重なったフットプリントが有ることが分かりました。
今までのフットプリントは、参照する元のフットプリントを一旦ローカル(.pretty)フォルダーに入れて変更等を加えて使っていました。
そのためかも知れませんが、KiCad4の時は気が付かなかったものが出現しているようです。
試しに、旧プロジェクトを開いて該当するフットプリントを修正しましたが、相当数の修正が必要なファイルが有るようでした。
そこで、一括して修正するために、プログラム処理を実施しました。

1.修正途中のフットプリント
・1・2ピンを修正したときの状況です。(パッドをF.SilkS層が覆っている)



2.フットプリントライブラリーの設定
・フットプリントエディターでバッドのプロパティを見たときのテクニカルレイヤーの状況


手動でチェックを外し、シルク層が消えるのを確認。

3.該当するフットプリントのファイルをエディターで確認(抜粋)
・F.SilkS B.SilkS *.SilkS とランダムに入っています。(規則性は無いようです)



4.一括修正のプログラム
・修正に当たっては、昔からなじみが有り手軽に使えるBASICを使おうとWeb上で探し、Windows 10 で使用できるプログラムで、できるだけN88-BASICに近い処理系としてTinyBASIC 1.50 を使わせていただきました。
・久しぶりのBASICで戸惑いましたが、何とか動かすことができたようなので参考までに掲載しておきます。

' ========================================================
' Tiny Basic 1.50 用のtbtファイル
' 2019/01/09:je3jlb
'
' KiCad 4.0.7 のフットプリント ?????.kicad_mod の中に、
' pad(パッド)がF.SilkS(B.SilkS  *.SilkS の3種類) 属性を持っているものが有り、
' それを一括で削除するために作成した。
' 手順
' (1)Tiny Basicは、(例)C:\TBasic\TBasic.exe に置く。
' (2)その下層の (例)C:\TBasic\AAAA\ に本.tbtファイルを置く。
' (3)さらに下層に入力用として、C:\TBasicAAAA\ki_in\pretty\ フォルダーを作成する。
' (4)もう一つ出力用として、C:\TBasic\AAAA\ki_out\pretty\ フォルダーを作成する。
' (5)対象となる .pretty 内のファイルをエクスプローラで入力用\pretty\ フォルダーにコピーする。
' (6)入力用\pretty\ フォルダーのファイル全てを選択・コピーし、"サクラエディタ"
'    新規ファイル上にペーストすると、ファイル名がフルパスでテキストとなる。(メモ帳では無理)
' (7)フルパスの各行をエディタで修正する。
'     (例)C:\TBasic\AAAA\ki_in\pretty\SAMPLE.kicad_mod => \pretty\SAMPLE.kicad_mod
' (8)修正後、(例)"infile.txt" ファイルに書き出して準備しました。
' (9)C:\TBasic\AAAA\ から、本.tbtファイルをオープンし実行する。
'
' ========================================================
CLS
infn$ = "infile.txt" ' ファイルリストを記述したテキストファイル
LET HITSTR$ = ".SilkS"  ' 変換対象の文字列
LET XCNT = 0        ' 読み込んだファイルの先頭に番号を付けるため
LET FILE_CNT = 0    ' 修正したファイル数
LET LINE_CNT = 0    ' 修正した該当する行数
LET ST_Timer = Timer ' 開始した午前0時からの秒数を記憶
' 処理するファイルを読み込む
  OPEN infn$ for Input as #8
'
  WHILE NOT EOF(8)
      LINE INPUT #8 ,AINF$
      XCNT = XCNT + 1
      PRINT Using "####  @"; XCNT , ":" & AINF$
      gosub *CNVJOB
  Wend
  CLOSE #8
*JOBEND
  PRINT
  PRINT Using "@ ####"; "全ファイル数:", XCNT
  RITU = FILE_CNT / XCNT * 100
  PRINT Using "@ ####  @ ###.#@"; "修正ファイル数:", FILE_CNT, " ( 修正ファイル該当率: ",RITU ,"% )"
  PRINT Using "@ ####"; "修正該当行数:", LINE_CNT
  PASS = Timer - ST_Timer
  PRINT Using "@ ###.## @";"処理秒数: ", PASS ,"秒"  
END
'
*CNVJOB
' 入出力ファイルのオープン
' InJobFile$, OutJobFile$ は、
' OPEN の{ファイル名}部分で文字列の結合(連結)記述ができないため用意した。
'
  InJobFile$ = "ki_in"&AINF$
  OutJobFile$ = "ki_out"&AINF$
     OPEN  InJobFile$ for Input as #1
     OPEN  OutJobFile$ for Output as #2
'
' 行頭付近に " (pad " 文字列が有る行のみ HITSTR$ を確認する。
' HITSTR$ が有れば、"F.SilkS" "B.SilkS" "*.SilkS" 等の文字列を削除する。
'
  FILE_FOUND = 0    ' 当ファイルの修正該当行数をカウント
  WHILE NOT EOF(1)
     HIT = 0
     LINE INPUT #1 ,AA$
     B4AA$ = AA$    ' 修正前の行を記憶
     IF LEN(AA$) > 0 THEN
         IF InStr(1,AA$," (pad ") > 0 THEN HIT = InStr(1,AA$,HITSTR$)
         IF HIT > 0 THEN
             AA$=LEFT$(AA$,HIT-3)&MID$(AA$,HIT+6,20)
             Print "▼"&B4AA$    ' 修正前
             Print "■"&AA$    ' 修正後
             FILE_FOUND = FILE_FOUND + 1
             LINE_CNT = LINE_CNT + 1
         end if
     end if
     PRINT #2,AA$
  Wend
  CLOSE #1
  CLOSE #2
  IF FILE_FOUND >= 1 THEN FILE_CNT = FILE_CNT + 1
return

5.プログラム処理した結果
・全ファイル(173)を処理した結果





9.その他気づいたこと

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





99.追記用

 大幅な改定・追記用