I inherited a project from an engineer who just left our company. In his (Altium) PCB Layout, there's a footprint on the board for a 2 pin connector, but it's not in the library. I need to edit the footprint, and I can't figure out how to add it to the library so that I can edit it… Let alone to have in the pcb library… Tried the "Design -> Make PCB Library" option, it grabbed every part but this one…. Where am I going wrong?
Electrical – Add footprint to PCB Library in Altium
altiumlibrarypcbpcb-design
Related Solutions
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:
- Remove the component designator on the existing component(s) (eg 'U5' -> 'U?')
- If the component has already been imported in the pcb, delete it
- Place the snippet
- Modify project links so that the snippet is linked to the proper component(s)
- Pray that whoever made the snippet used component designators that won't conflict with something you already have.
- 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.
Making the footprint is generally one of the fastest of all the things you need to do. There are Wizards in Altium that help you make IPC-compliant footprints quickly, and you can set the text height, silk screen line widths and so on to conform to your specific requirements and so your boards have a consistent appearance and set of manufacturing requirements.
Populating the data base with all the things that should be there (vendors, part numbers, alternates, prices, and so on) takes longer. Making a 3D body, if you need to, can take a lot longer depending on your proficiency with 3D parametric modelling software and whether you want to do a good job, a spectacularly good job, or something more slapdash. Here's a rendering of an LED body I did some time ago- the actual die dimensions and position is shown but I didn't bother with the bond wire. The typical library parts often have a crude 3D block or nothing at all.
You only make the part once and you can re-use it thereafter. It's a big hassle to add parts to inventory for the rest of the company, so maybe it will make you think twice about reuse.
Anyway, if you're at the beginner stage (we've all been there) and you just want to get going, use an 0805 resistor and it will be sub-optimal but usable (ignoring the 3D features and such like). You can edit it to show the polarity and save it in a library of your own. You can also download someone else's library that's been done more-or-less properly and (hopefully) learn from that and create your own as you gain experience. IIRC, the 0805 and other Imperial standard footprints may use the metric equivalent numbers (2012 for 0805) as part of their names.
Related Topic
- Electronic – Conventional way to manage and use the libraries in Altium
- Electronic – How to locate components individually in PCB layout in Altium Designer
- Electronic – Library management in altium
- Electrical – Can’t update the schematic to PCB layout in Altium
- Electronic – Altium 365 – changing the default comment
Best Answer
The workaround that I always use is to select the component in the PCB, press CTRL+C, Define the selection Origin, open the target library with a new blank component, and the press CTRL+V, and drop it where you want and save.
Remember to make sure that the origin is where you want it.