6
\$\begingroup\$

I am using a component that requires two headers to connect to it. I currently have a single footprint for this component that simply includes two copies of the connecting header. The problem I'm running into now is that our company is moving to streamline our process for creating files for our pick and place machine. Currently, I use the "Generate pick and place files" option from Altium to create the files, and then manually edit it to expand the single component into the two headers, but my bosses want to remove any manual steps from the process. Is there a way to get this single component to expand into two placements in Altium?

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Just use two instances of the same component. Bundling them inside a new component complicates practical matters like bom and assembly. Placement consistency across boards can be achieved using a snippet. If you want to see it as a single component in your schematic with special numbering, you could place them in a subsheet, but honestly I wouldn't bother. \$\endgroup\$ – apalopohapa Feb 11 '14 at 20:33
7
\$\begingroup\$

I ended up keeping the system in place as I have it, and created a script to parse and correct the generated Pick and Place files. Here's my reasoning:

Consistent pin <-> pad mapping

There are 480 pins on the referenced part. Mapping those pins to the corresponding connector pads was a lot of work and messing up a single one of those might ruin an entire PCB run. Keeping it all in a single library part guarantees that the mapping is correct for whoever uses it.

apalopohapa mentioned that I could place the two connector parts in a subsheet with the correct mapping to expose the pins. Expanding this idea to support consistency company-wide, we could instead create a device sheet out of the part. This method would also keep the correct mapping, but introduces some annoyances that I would rather not deal with:

  • Every user would have to explicitly add the device sheet directory to their Altium preferences in order to use the component.

  • Designers would just have to know to look for the component as a device sheet instead of looking in the usual libraries.

  • My experience using Device sheets has been somewhat of a pain. For example, if a component in a device sheet is pulled from a specific library, Altium requires the designer to look for and add the library to the project before anything can be exported to the PCB.

Consistent component spacing

Getting the spacing right between the connectors is critical. Martin mentioned that I could use a spare mechanical layer to call out the distance between the parts. This would work fine if it only had to happen once. But, this component is already being used in two separate products, and will likely be used again. Keeping the part as a single footprint guarantees that we only have to get it right one time.

apalopohapa also mentioned that a snippet could be used to guarantee spacing. This would also guarantee that we only have to get it right one time, but again introduces a few problems:

  • For company-wide deployment, every designer would have to explicitly add the snippet directory to their Altium preferences in order to use it.

  • Using a pcb snippet also appears to add several extra steps:

    1. Remove the component designator on the existing component(s) (eg 'U5' -> 'U?')
    2. If the component has already been imported in the pcb, delete it
    3. Place the snippet
    4. Modify project links so that the snippet is linked to the proper component(s)
    5. Pray that whoever made the snippet used component designators that won't conflict with something you already have.
    6. Push the 'changes' from the pcb to the schematic to update the designators in the schematic.

Ability to logically divide part across the schematic

Each connector is 240 pins, so representing the component in the schematic as two connectors would take up an entire page of the schematics and would rely on external NetLabels to make connections to parts on other pages.

I've seen this done before (sometimes it is necessary), but this practice has always annoyed me. To figure out what is connected where, I have to continually flip back and forth between pages. It makes the schematic much less readable and maintainable.

With the device entered in Altium as a single component, I can use Altium's part feature to logically group the pins together. For example, all of the power and ground pins can be grouped together, and the sub part placed on the schematic sheet that contains all of my regulators, etc.

| improve this answer | |
\$\endgroup\$
3
\$\begingroup\$

The easiest way to accomplish this is to define the components correctly in the libraries. Each connector is a single component, hence in your schematic there should be two seperate connector components. The rule is, one component, one footprint. One component cannot use multiple footprints simultaneously.

It would be best to define the connector in the library and associate the footprint of one of the connectors only, then place two connectors on the schematic and thus two seperate connectors on the PCB. This will produce pick and place files with both the connectors. The mechanical spacing of the headers may be aligned on a masked mechanical layer from which Gerber files are not produced. This will ensure that the connector placement remains the same in the transision from a single footprint to one of two seperate components.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ One of the primary reasons I put both connectors into a single footprint was to ensure proper spacing. You mentioned that "mechanical spacing of the headers may be aligned on a masked mechanical layer..." This is new to me; how is it done? \$\endgroup\$ – sbell Feb 11 '14 at 20:39
  • \$\begingroup\$ Altium provides 32 mechanical layers onto which you can place design/assembly datum. Your original post indicates Altium as one of the tags so this is directly applicable to that package. Set up a mechanical layer and name it whatever you like, for instance "Connector origins". Draw a cross on the center reference or pin 1 reference of that footprint on the new mechanical layer. Then update the PCB with the 2 new seperate connectors and re-align their centers/references on the crosshairs on your mechanical layer. \$\endgroup\$ – Martin Feb 12 '14 at 19:48
3
\$\begingroup\$

While trying to make a fuse holder clip (Keystone 3518P), I'm having a similar problem because one fuse clip is made of two of these Keystone parts (and then you need a fuse!). I want to define the spacing, silkscreen, and 3D body once as a footprint library part as you've done.

ACTUSL SIZE

3D mockup

What I ended up doing was creating three parts:

  1. Fuse holder

    • Has a schematic symbol (with 2 functioning pins)
    • Has a footprint
    • Does not have a BOM line item
    • Type: Standard (No BOM)
  2. Fuse endcap x 2

    • Has a schematic symbol (no pins)
    • Does not have a footprint
    • Has a BOM line item
    • Type: Mechanical
  3. Fuse (the actual fuse cartridge)

    • Has a schematic symbol (no pins)
    • Does not have a footprint (although you could make a silk-only FP for the rating!)
    • Has a BOM line item
    • Type: Mechanical

This way all the components are represented in the BOM output, and you get a decent representation in the schematic for what's going on.

The only dangling issue for you is the pick-and-place origins, but you might be able to kludge this by creating a footprint for your two connectors that is just a crosshair that you have to put in the right place after you place your module component. This is not quite as dire because the assembly house will be looking at and tweaking those anyway.

| improve this answer | |
\$\endgroup\$
2
\$\begingroup\$

I've just come across this thread.

I work in Altium's R&D department and am the Product Manager for a feature we're calling a Composite Component, which is designed to deal with use cases such as these.

This is the current thread on the subject:

https://forum.live.altium.com/#posts/236081

I've been working on a series of mockups and posting them in the thread. The most current version is in progress at the moment and hasn't yet been posted.

Anyone is also welcome to get in touch with me directly at jack.henriques@altium.com to discuss any aspects of the feature. I'm always very happy to hear from customers, and find out more about their requirements.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Regarding Daniels comment on the fuse holder I have exactly the same situation. I didn't want to cause an issue with the pick and place files so I did it the following way.

Fuse holder x 2 Schematic symbol Footprint Type: Standard

Fuse itself Schematic symbol Footprint (For silkscreen and 3D body) Type: Standard N.B Listed in design variants setup as DNF so it is not listed in PicknPlace file

In both the schematic and PCB I group these three parts together as a union so they move around together.

Cheers :)

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.