composite footprint? - Page 1
Forum section: electronics / general

author: phil from seattle
author_rank: Super Contributor
timestamp: February 06, 2021, 07:30:42 am
content: I have a device that the footprint is really made up of 3 sockets - 2 1x8 and 1 1x2. It is for a Stepper Driver - Pololu Style StepStick. I want to keep the symbol as a single unit. It makes a lot more sense that way on the schematic.Getting a PCB manufactured is no problem but for assembly, there is no actual part - it is made up of the 3 sockets. I'm stumped how to do this so I get a BOM that lists the 3 sockets. Is there such thing as a composite footprint that "decomposes" into 3 sub footprints, each having a specific part number? Any ideas how to do that?

author: voltsandjolts
author_rank: Unknown
timestamp: February 06, 2021, 10:23:13 am
content: I think the real solution is to take the simple circuit from the 'StepStick' prototyping board and put that on your custom PCB.If you leave it as-is, that part will likely be a manual assembly job anyway, so it doesn't matter.

author: phil from seattle
author_rank: Super Contributor
timestamp: February 06, 2021, 05:04:09 pm
content: Not exactly following your suggestion. Where is this simple circuit you are talking about (google just gets me aliexpress and ebay links)? I have a footprint already but it is just one part in the BOM. If I am assembling it myself it doesn't matter but suppose I am having 100 built in china. I would rather have the BOM and PCB agree on part numbers and locations. I could manually jigger the BOM but think having Kicad automatically generate it correctly is far superior and less error prone. Assemblers get the idea of BOM part number and PCB location easily - extra instructions are subject to misinterpretation.I could decompose the symbol and use 3 pin-sockets in the schematic and will do that if there isn't a better solution. I probably would make a pin-less footprint that is the outline of the complete module for reference. I don't like that as this requires careful placement on the PCB. It is doable but also requires care to ensure that things don't get moved. Kicad 6 grouping will help with that so I may move to it early.It seems like this is a common problem and shouldn't need hack solutions.

author: bson
author_rank: Unknown
timestamp: February 07, 2021, 09:16:12 pm
content: It's not unlike mechanicals like holes. Add the three sockets to some corner of the schematic, and place them on top of the footprint on the PCB where they need to go. Flag your custom footprint as virtual.https://kicad.org/libraries/klc/F8.1/#:~:text=Virtual%20components%20are%20those%20which,Solder%20bridgesThe underlying problem of course is you're not placing your carrier board on your PCB, but connectors for it to plug into, and the schematic symbol is only for documentation so doesn't represent anything tangible.

author: PlainName
author_rank: Super Contributor
timestamp: February 08, 2021, 03:44:48 am
content: I don't use Kicad (at the moment) but came up with a scheme which I thought might work. In needing to check something about it, I found this:Creating symbols for plug-in modules with multiple BOM partsWhich seems like it might work for you. There is reference to a different scheme which also seems reasonable:Making multiple BOM items for one schematic component

author: phil from seattle
author_rank: Super Contributor
timestamp: February 08, 2021, 03:54:49 am
content: Thanks! That is very similar to my plan B approach. The trick is to have registration marks in the virtual footprint and make sure that the sub part registration and the grid in pcbnew are compatible.

author: retiredfeline
author_rank: Frequent Contributor
timestamp: February 08, 2021, 05:17:53 am
content: Many people have wanted a composite component feature. Some call it design blocks. There are various hacks to get something workable but there won't be anything for v6, maybe in v7. Here's one ticket:https://gitlab.com/kicad/code/kicad/-/issues/1998and there are related tickets listed that could be dealt with in a comprehensive solution.

author: phil from seattle
author_rank: Super Contributor
timestamp: February 08, 2021, 07:01:49 am
content: Quote from: retiredfeline on February 08, 2021, 05:17:53 amDesign blocks - that is the term I should have used in my searches. Thanks.

author: MitjaN
author_rank: Contributor
timestamp: February 08, 2021, 07:23:03 am
content: The design block functionality can be implemented using save/restore action pluginhttps://github.com/MitjaNemec/Kicad_action_plugins#saverestore-layout. But the design block has to be contained within a hierarchical sheets (it can have nested sheets)

author: Ian.M
author_rank: Super Contributor
timestamp: February 08, 2021, 08:33:59 am
content: Quote from: voltsandjolts on February 06, 2021, 10:23:13 am+1SilentStepStick documentation is here:https://github.com/watterott/SilentStepStickIts a TrinamicTMC2130IC + about a dozen passives and a preset to set the max motor current in analog scaling mode. If you aren't using all the SilentStepStick features odds are you can simplify it e.g. by omitting the preset.By incorporating the IC in your own board, you also have the opportunity to improve its thermal management by increasing the ground plane area the thermal vias under its thermal pad connect to, and if you are pushing it hard, possibly adding a heatsink on the underside of the board.

author: phil from seattle
author_rank: Super Contributor
timestamp: February 08, 2021, 08:50:53 pm
content: Thanks, but that wasn't my question and the utility of a composite footprint goes well beyond this one instance.Certainly adding the chips to the board is a reasonable idea in many cases. However, in the environments this board will go into, it is not uncommon to see a blown driver which renders the board as useless. With the silent stepstick format, the user can replace the faulty one and be up and running quickly. In fact, they are cheap enough to keep spares on hand and be up and running again within minutes. With an integrated driver board, the customer is unlikely to keep a spare of that.