5cm Zynq基板製作記 その部品は表面?裏面?実装データのミスで発注キャンセル
5cm角Zynq基板のデータをJLCPCBへ提出しましたが、今回も素直には進みませんでした。
KiCadでは基板の裏面に配置していたはずの抵抗が、JLCPCB側では表面の部品として認識されていました。
その位置の表面にはDDR3Lが配置されています。抵抗が表面に実装されると、DDR3Lと物理的に重なってしまいます。
KiCadの画面上では問題がなかったため、非常に見つけにくいトラブルでした。

裏面に配置したはずの抵抗が表面に
今回問題になったのは、DDR3Lの裏側付近に配置した抵抗です。
KiCad上では抵抗を基板裏面に配置していたため、表面のDDR3Lとは干渉しない設計になっていました。
ところが、JLCPCBへ提出したデータでは、その抵抗が表面に配置される部品として認識されていました。
そのまま実装すると、DDR3Lと抵抗を同じ場所へ載せることになります。物理的に実装できないため、JLCPCB側から確認が入りました。
ガーバーだけでは部品の実装面を確認できない
基板発注では、複数のデータが異なる役割を持っています。
- ガーバーデータ:銅箔、レジスト、シルクなどの各層
- ドリルデータ:穴の位置や径
- BOM:使用する部品の一覧
- CPL:部品の座標、回転角度、実装面
部品を表面に実装するか裏面に実装するかは、主にCPLなどの部品配置データで指定されます。
そのため、ガーバーデータの見た目が正しくても、CPLの表裏情報が誤っていれば、実装サービス側では違う面に部品が置かれる可能性があります。
今回は基板パターンそのものより、実装用に出力した部品配置情報に問題があった可能性があります。
KiCad上では問題が見えなかった
KiCadのPCBエディターで確認した限り、抵抗は裏面に配置されていました。
表面のDDR3Lと裏面の抵抗は、基板を挟んで反対側にあるため、通常は物理的に衝突しません。
そのため、KiCad上で基板だけを確認していたときには、問題に気づけませんでした。
しかし、JLCPCB側の実装プレビューでは、抵抗がDDR3Lと同じ表面に置かれているように見えていました。
設計データが正しく見えていても、製造・実装用に変換したデータが同じ状態になっているとは限らないことを実感しました。
原因は最後まで断定できなかった
今回、なぜ裏面部品が表面として出力されたのか、正確な原因までは特定できませんでした。
思い当たる点としては、配線後に部品を移動した際、通常とは少し異なる操作をした記憶があります。
考えられる確認ポイントには、次のようなものがあります。
- フットプリントがF.CuとB.Cuのどちらにあるか
- 部品を反転した後に保存されているか
- CPLでTop/Bottomが正しく出力されているか
- 使用した出力ツールが表裏を正しく変換しているか
- 部品移動後に古いCPLを再利用していないか
- JLCPCBへ最新ファイルをアップロードしているか
- 部品番号と座標データが一致しているか
ただし、これらは一般的な確認項目です。今回の直接的な原因を断定するものではありません。
原因が分からないまま進めることには不安がありましたが、少なくともJLCPCB側で認識される部品面が正しくなるようにデータを修正しました。

JLCPCB側で修正できず、一度キャンセルに
JLCPCB側で確認が進んだ段階では、そのまま部品の実装面だけを変更して製造を続けることができませんでした。
そのため、注文はいったんキャンセル扱いになりました。
その後、こちらで部品配置データを修正し、改めて提出しています。
製造開始まで進んだと思ったところから、再びデータ修正と再提出へ戻ることになりました。
時間はかかりましたが、誤った状態で実装されるよりは、ここで止まってよかったと思います。
実装プレビューまで確認する必要がある
JLCPCBには、部品を配置した状態を確認できる実装プレビューがあります。
今回は、この確認が少し甘かったと反省しています。
実装プレビューでは、少なくとも次の項目を確認する必要があります。
- 部品が表面と裏面のどちらにあるか
- 部品の座標が正しいか
- 回転方向が正しいか
- 1番ピンの向きが合っているか
- コネクタの向きが正しいか
- 同じ位置に部品が重なっていないか
- 基板外へ部品が飛び出していないか
- 未実装予定の部品が含まれていないか
特に両面実装では、表面だけでなく裏面も切り替えて確認する必要があります。
KiCadの3DビューとJLCPCBの実装プレビューを見比べれば、今回のような表裏の違いにも気づきやすくなります。
自動化されていても、最後は確認が必要
KiCadからJLCPCB向けのデータを作成し、Web上へアップロードする流れはかなり自動化されています。
しかし、自動でファイルを作成できることと、その内容が必ず正しいことは別です。
今回のように、KiCad上では正常に見えていても、出力後のCPLや実装プレビューで異なる状態になることがあります。
特に部品の表裏、座標、回転角度は、ガーバーデータだけを確認しても分かりません。
設計画面、出力ファイル、実装サービス側のプレビューという3段階で、同じ配置になっていることを確認する必要があります。
見えないトラブルを一つ経験した
今回の問題は、配線のショートやクリアランス違反のように、DRCで簡単に見つかるものではありませんでした。
KiCad上では抵抗が裏面にあり、基板の配線も完成しています。それでも、実装用データでは表面として扱われました。
このような、設計画面では見えにくいトラブルもあるのだと実感しました。
一度経験すれば、次からは実装プレビューで表面と裏面を必ず確認できます。
発注がキャンセルになったのは残念でしたが、実装前に問題を発見できたことは幸いでした。
まとめ
5cm角Zynq基板をJLCPCBへ提出したところ、KiCadでは裏面に配置していた抵抗が、実装データでは表面部品として認識されていました。
表面の同じ位置にはDDR3Lがあるため、そのままでは部品同士が物理的に衝突します。
正確な原因までは特定できませんでしたが、部品移動時の操作やCPL出力時の表裏情報などを確認し、データを修正しました。
JLCPCB側ではその状態のまま製造を継続できず、注文はいったんキャンセルになりました。その後、修正したデータを改めて提出しています。
今回の経験から、発注前には次の3つを照合する必要があると感じました。
- KiCad上の部品配置
- 出力したCPLの表裏・座標・回転情報
- JLCPCB上の実装プレビュー
自動化された発注システムは非常に便利ですが、最後の確認まで自動で保証されるわけではありません。
見つけにくいトラブルでしたが、誤実装される前に止められたことは助かりました。
English Summary
After submitting the 5 cm Zynq board for assembly, I encountered an unexpected top-versus-bottom placement problem.
A resistor that appeared on the bottom side in KiCad was interpreted as a top-side component in the assembly data. A DDR3L device was already located at the same coordinates on the top side, so the two components would physically collide.
The PCB layout itself looked correct in KiCad. The problem became visible only in the manufacturer’s assembly placement view. Component-side information is primarily carried by the component placement file rather than the Gerber data, so checking Gerbers alone is not sufficient for an assembled PCB.
The exact cause was not identified, although a previous component move or the placement-data export process may have been involved. The order could not proceed in its existing state and was canceled. After correcting the placement data, the board was submitted again.
This experience showed the importance of comparing three views before approving assembly: the KiCad layout, the exported placement data, and the manufacturer’s assembly preview. Both sides of a double-sided assembly must be checked for component side, coordinates, rotation, and physical overlap.
