EEVblog Electronics Community Forum

Electronics => PCB/EDA/CAD => KiCad => Topic started by: Miti on June 29, 2020, 12:21:40 pm

Title: Kicad 5.1 and BGAs
Post by: Miti on June 29, 2020, 12:21:40 pm
I wanted to try a design with BGA and since the free Eagle doesn't allow 4 layers, I tried Kicad 5.1.6. FPGA library is from SnapEDA. I get some circles around the pads which I believe are keep-out areas that I cannot get rid of. DRC rules are JLCPCB minimums.
How ready is Kicad for fine pitch BGAs?
This is the second time that I looked at Kicad and the first impression (or the second) is not very good. It seems awkward to me, a long time user of Eagle.
Title: Re: Kicad 5.1 and BGAs
Post by: PartialDischarge on June 29, 2020, 12:46:01 pm
You can get rid of them visually or effectively, look here https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015 (https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015)
Title: Re: Kicad 5.1 and BGAs
Post by: tox3 on June 29, 2020, 02:04:14 pm
Might be to fine pitch BGA for JLCPCB
Title: Re: Kicad 5.1 and BGAs
Post by: knapik on June 29, 2020, 02:10:59 pm
If the software is try to prevent you from breaking your design rules, seems like a good thing to me? :-//

The outline around your BGA pads is the clearance rule you've set. Given that they're intersecting with one another, your clearance isn't small enough. Either check your clearance rules, or if they're correct JLC can't manufacturer your specs.
Title: Re: Kicad 5.1 and BGAs
Post by: knapik on June 29, 2020, 02:20:29 pm
You can get rid of them visually or effectively, look here https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015 (https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015)

Removing the DRC sounds like a really bad idea to me.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on June 29, 2020, 11:52:59 pm
Might be to fine pitch BGA for JLCPCB

I don't think it is the case, my BGA is Altera UBGA484, pad is 0.5mm, pitch is 0.8mm, pad to pad clearance is 0.3mm.
JLC BGA capabilities for 4-6 layers, min pad 0.25mm, pad to pad clearance 0.127mm.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on June 29, 2020, 11:54:46 pm
You can get rid of them visually or effectively, look here https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015 (https://www.eevblog.com/forum/kicad/kicad-lock-component/msg3096015/#msg3096015)

Removing the DRC sounds like a really bad idea to me.

I don't want to remove DRC rules. I just wanted to know where is that circle defined and what rule I'm breaking.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on June 30, 2020, 12:37:53 am
I looked a bit closer, I think fanning it out would be a challenge, definitely not possible to fan out many I/Os on a 4 layer board with JLC or PCBWay capabilities.
Oh, well...
Title: Re: Kicad 5.1 and BGAs
Post by: knapik on June 30, 2020, 11:48:39 am
Sorry, I'm running a nightly build, so the UI for DRC is going to look a little different, nor would I recommend running nightly either.

To get into the DRC menu, you want to hit this button in the toolbar.

From there, you can set up your design rules via "constraints" (What KiCAD will be checking against to see if your board is able to be manufactured) and your "Net Classes" (I haven't played around with this much before, but it will be for applying design rules to certain nets eg. rules for high voltage traces). You should have a setup roughly what I have, which will allow you to just get a via in between 0.4mm wide BGA pads like so.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on June 30, 2020, 04:20:42 pm
The problem is that I have 0.35mm between pads. If I squeeze a 0.127mm trace in between two pads, I violate JLC’s minimum clearance requirements.
Title: Re: Kicad 5.1 and BGAs
Post by: poeschlr on June 30, 2020, 05:56:14 pm
@knapik the DRC system has been totally reworked in nightly. So please do not confuse users with the new unstable stuff that is currently rabidly changing.

---

For reference KiCad version 5 can only define clearances on the netclass, footprint or pad level. All of that is found under file->board setup in KiCad 5.1.6 (the same is true for all 5.1.x releases including future ones, as minor releases are not allowed to change KiCads interface or behaviour)
Title: Re: Kicad 5.1 and BGAs
Post by: Bassman59 on June 30, 2020, 06:49:43 pm
The problem is that I have 0.35mm between pads. If I squeeze a 0.127mm trace in between two pads, I violate JLC’s minimum clearance requirements.

Then you need to find a different board house.
Title: Re: Kicad 5.1 and BGAs
Post by: dnotq on July 01, 2020, 08:46:27 am
I have been making boards with 0.8mm pitch BGAs with KiCAD since V4.0.7 (around late 2017), and the the 5.1.6 version is more than capable of doing fine-pitch BGAs.  I use OSHpark for all my prototypes and have never had any problems.

I don't think it is the case, my BGA is Altera UBGA484, pad is 0.5mm, pitch is 0.8mm, pad to pad clearance is 0.3mm.
JLC BGA capabilities for 4-6 layers, min pad 0.25mm, pad to pad clearance 0.127mm.

You are looking at the BGA *package*, not the footprint.  The 0.5mm spec is the size of the solder-ball, *NOT* the footprint pad for the ball.  The recommended ball-pad is 0.4mm for a 0.8mm ball-pitch, non-solder-mask-defined NSMD.  You can get away with *one* 0.127mm (5mil) trace between those pads and be within the capabilities of most board-house's standard specs (i.e. not the high cost or special features).  Your vias need to be 0.46mm dia / 0.25mm hole (18mil / 10mil) or smaller to be able to dog-bone the pads.

The problem is that I have 0.35mm between pads. If I squeeze a 0.127mm trace in between two pads, I violate JLC’s minimum clearance requirements.

Actually, you will have 0.4mm between the pads, enough for one 0.127mm trace at standard-specs.

I don't want to remove DRC rules. I just wanted to know where is that circle defined and what rule I'm breaking.

You have to adjust your DRC-rules based on the specifications you are working with.  The defaults do not necessarily work for every situation.  I made special rules for all the BGA nets, since those were tighter than what I wanted for the rest of the board.

https://www.xilinx.com/support/documentation/user_guides/ug1099-bga-device-design-rules.pdf (https://www.xilinx.com/support/documentation/user_guides/ug1099-bga-device-design-rules.pdf)

By the way, KiCAD is simply awesome.

Matthew
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 01, 2020, 11:55:49 am
Thanks dnotq, that’s great!
You are right, first I looked at the package, but then I realized my mistake and I looked at the footprint that I downloaded from Snapeda. The pads are 0.45mm.
I found that Xilinx document but I didn’t look at the recommended footprint/ pad size, I looked only at the recommended fanout.  :palm:
In the light of your new revelations, I think I can make a 4 layer board with JLC, if I don’t want to route all the I/Os. The reason for JLC is their assembly, I want 0402s and I want them to place them, otherwise PCBWAY is my board house for few years.
What are the DRC rules for the BGA in the attachment? Can you post a screenshot from your board options? I’m just starting with Kicad.

Edit: Is there a way to auto align a via to the four pads around it?
Title: Re: Kicad 5.1 and BGAs
Post by: knapik on July 01, 2020, 12:26:15 pm
@knapik the DRC system has been totally reworked in nightly. So please do not confuse users with the new unstable stuff that is currently rabidly changing.

---

For reference KiCad version 5 can only define clearances on the netclass, footprint or pad level. All of that is found under file->board setup in KiCad 5.1.6 (the same is true for all 5.1.x releases including future ones, as minor releases are not allowed to change KiCads interface or behaviour)

Sorry, I thought some help would be better than no help.

Edit: Is there a way to auto align a via to the four pads around it?

I'm not sure how it is done in Eagle, but my assumption is no.
Given that its 0.8mm pitch, you can align the BGA on a 1mm grid and then use a 0.2mm grid for via alignment. By pressing Ctrl-T you can create arrays of vias as well (but they won't be assigned a net automatically this way).
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 01, 2020, 03:38:40 pm
I'm not sure how it is done in Eagle, but my assumption is no.
Given that its 0.8mm pitch, you can align the BGA on a 1mm grid and then use a 0.2mm grid for via alignment. By pressing Ctrl-T you can create arrays of vias as well (but they won't be assigned a net automatically this way).

Yes, that's how I do it in Eagle as well. I can align components but not components to the pads of other components. I learned to play with the grid to my advantage.
Title: Re: Kicad 5.1 and BGAs
Post by: Doctorandus_P on July 01, 2020, 04:12:20 pm
A simple way is to change the grid origin: (Pcbnew / View / Grid Settings).

Because of it's open-source-ness, a lot of side projects have sprung up around KiCad. Pcbnew also has an internal scripting interface, and you can find some scripts around the 'net, most are on github, but some are on external sites only.

An overview of (some of) these scripts is on:
https://github.com/xesscorp/kicad-3rd-party-tools

A script that may be useful to you is:
https://github.com/Laksen/kicad-bga-tools
This script seems to be quite old though, and therefore probably written for an older version of KiCad, so probably it will not run without modifications.

Just Curious:
Why do you use SnapEda libraries?
These sometimes have some compatibility problems with KiCad, while there are already a lot of BGA footprints in KiCad. There are also Footprint wizards in KiCad and you can make new footprints very easily in KiCad (if they fit the wizard format).

Currently there are 13 Footprint wizards in KiCad, and rectangular BGA's is one of them.

Scripts and Footprints Wizards are both written in Python, so if you want similar, but not quite, the behaviour of them, they are relatively easy to adjust.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 01, 2020, 08:01:09 pm
Just Curious:
Why do you use SnapEda libraries?
These sometimes have some compatibility problems with KiCad, while there are already a lot of BGA footprints in KiCad. There are also Footprint wizards in KiCad and you can make new footprints very easily in KiCad (if they fit the wizard format).

I don't know, bad (or good) habit from Eagle. I actually like the symbol and footprint in one library but I'm still learning the Kicad way.
One issue I see with the symbol is overlapping pins, see attached. Multiple pins in the same net have their names overlapping. It doesn't happen in Eagle.
Title: Re: Kicad 5.1 and BGAs
Post by: knapik on July 01, 2020, 10:51:17 pm
That shouldn't happen. It can be handy to group some pins on the same location, but there's an option in the symbol editor to make certain pins non visible to prevent text overlap. I've never encountered this with the KiCAD component libaries, could just be an error with the snapeda libraries.
Title: Re: Kicad 5.1 and BGAs
Post by: bson on July 03, 2020, 07:19:06 pm
Edit: Is there a way to auto align a via to the four pads around it?
For a 0.8mm pitch device, set the grid to 0.4mm and set the grid origin to pad A1 (or do this before placing the BGA footprint)?  Then when you place vias they will be centered between the pads.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 06, 2020, 03:52:29 pm
Are there any good Altera/Intel libraries for Kicad? I would like a symbol that has separate blocks rather than one big blob with all the I/Os.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 08, 2020, 08:37:11 pm
Today, I downloaded a library from Ultralibrarian. It looks Ok, the symbol is separated in units, but when I checked the pinout, it is all messed up. The part numbers available for download are 5CEFA7U19 and 5CEFA7U19C7N, no matter what I select, the pinout is wrong. For example, nCONFIG pin is A4, in UL symbol it is K5. Am I doing something wrong?
Title: Re: Kicad 5.1 and BGAs
Post by: Bassman59 on July 09, 2020, 08:38:38 pm
Today, I downloaded a library from Ultralibrarian. It looks Ok, the symbol is separated in units, but when I checked the pinout, it is all messed up. The part numbers available for download are 5CEFA7U19 and 5CEFA7U19C7N, no matter what I select, the pinout is wrong. For example, nCONFIG pin is A4, in UL symbol it is K5. Am I doing something wrong?

Ask Ultralibrarian.
Title: Re: Kicad 5.1 and BGAs
Post by: Doctorandus_P on July 10, 2020, 06:24:23 am
On 2020-07-01 I mentioned some scripts and side projects around KiCad.

One of these side projects is to aid in copying pin table text from a datasheet into a spreadsheet, do some post processing, and then generate a KiCad schematic symbol from the spreadsheet.

I have not used this myself because the components I use are all low pin count.
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 14, 2020, 05:07:00 pm
Ask Ultralibrarian.

I asked and they corrected it. Thanks!
Title: Re: Kicad 5.1 and BGAs
Post by: Miti on July 14, 2020, 05:08:55 pm
On 2020-07-01 I mentioned some scripts and side projects around KiCad.

One of these side projects is to aid in copying pin table text from a datasheet into a spreadsheet, do some post processing, and then generate a KiCad schematic symbol from the spreadsheet.

I have not used this myself because the components I use are all low pin count.

Thanks! I’ve seen them but I’m new to Kicad. I’m starting to walk now. Once I start running, I’ll give them a try.
Title: Re: Kicad 5.1 and BGAs
Post by: Bassman59 on July 14, 2020, 06:58:33 pm
Ask Ultralibrarian.

I asked and they corrected it. Thanks!

Excellent!