Updating Footprints from Libraries

The Update From Libraries and the Update Selected From Libraries commands explained here are used solely to update placed components on schematic sheets. Although models can be included as part of that update, it is the model linking that is being considered and not the actual graphical attributes of the linked model. To pass on changes to the graphical attributes of a PCB footprint from the source PCB Footprint library requires the use of another tool from Altium Designer's update arsenal – Update From PCB Libraries. This update tool checks the component footprints on a board against the corresponding footprints in source PCB Footprint libraries by performing a physical comparison of each footprint's primitives, and performs updates to chosen components, as required. This ensures that all footprints in the design adhere to the authorized footprint libraries.

This command covers PCB components sourced from file-based and database libraries – PCB Footprint Libraries (*.PcbLib), Integrated Libraries (*.IntLib), and Database Libraries (*.DbLib*.SVNDbLib). In the case of the latter, the libraries used in the update are those referenced in the corresponding records of the linked external database. The references to the underlying libraries - from where the footprints are sourced - are retrieved from the applicable schematic, if available, or from the PCB footprints themselves. All source libraries must be part of the Available Libraries set.

Note that if the PCB footprint used in your PCB design is sourced from your Workspace library and was updated in that library (and the related component(s) were updated to use the new revision of the footprint), the Update From PCB Libraries command is not applicable. A new revision of the PCB footprint is created when saving it to the Workspace, while the footprint in the PCB design still references the previous (earlier, not the latest now) revision. To update the footprint on your PCB in this case, first update the related component in the schematic (learn more) and then update your PCB using the Design » Update PCB Document command from the Schematic editor and the following ECO process – the footprint in the PCB design will be updated to its latest revision.

Note that if a placed footprint sourced from a Workspace library component has some "local" changes in the PCB design (for example, pad properties were changed or footprint primitives were unlocked and changed), the Update From PCB Libraries command can be used to detect the differences between the placed footprint and the footprint in the library and update the placed footprint (essentially, to remove the "local" changes).

To illustrate the use of this tool, consider the component footprints shown below. These are existing footprints on a PCB document. To the right are the modified footprints that exist in the source PCB Footprint library (*.PcbLib). The changes, although subtle - the top footprint has the ''sign moved"; the bottom has increased width for the ''sign and arc" - are sufficient for the purposes of our illustration.

The existing footprints on a PCB document (the left image) and the modified footprints in the source PCB Footprint library (the right image)
The existing footprints on a PCB document (the left image) and the modified footprints in the source PCB Footprint library (the right image)

Defining Update Options

Updates are performed from the PCB document using the Update From PCB Libraries command available from the main Tools menu. Launching this command opens the Update From PCB Libraries - Options dialog. Use this dialog to choose which layers of the PCB and library footprint you wish to compare using the Include checkboxes in the Layers To Include region or the commands of the Include All button drop-down. This is important, as in some designs, certain layers of the footprint may not be used, and extra comparisons will take extra time to process.

To check the component footprint under the cursor (or the currently selected components) on the active PCB document, right-click over a placed component (not selected) or right-click over a selected component (or a component that is part of a group of selected components) and choose the Component Actions » Update Current Components From PCB Libraries command from the context menu.

The Update From PCB Libraries - Options dialog
The Update From PCB Libraries - Options dialog

At this point, and if you want to update all footprints to match those in the source libraries, you can simply click the Update All Footprints (Create ECO) button, and implement the changes to the design through a subsequent Engineering Change Order. However, should you wish to inspect differences that are detected in detail, and determine which footprints to include in an update, prior to generating an ECO, click OK to access the Update From PCB Libraries dialog - see below.

Viewing Comparison Results

After defining the options in the Update From PCB Libraries - Options dialog as required, click OK. The comparison will proceed and the results will appear in the subsequent Update From PCB Libraries dialog.

The Update From PCB Libraries dialog
The Update From PCB Libraries dialog

The source PCB library is identified from the PCB model link associated with the corresponding component in the source schematic. The source libraries must be part of the Available File-based Libraries. If the source cannot be found for a footprint, it will be marked as unmatched.

The dialog is divided into two main sections. The upper Part List region presents the comparison results. The footprint of each component on the PCB is compared against the corresponding footprint in the indicated source library. The top header line is a summary of the matched items. If the comparison of each primitive in the footprint is within the tolerance specified, the footprints will be deemed to match, with a green tick icon () appearing in the Match column. No update is required in the case of a match.

If, however, one or more primitives in a footprint are outside of the tolerance in terms of their locations within the footprint, the footprints are flagged as not matching. A red cross icon () will be inserted into the Match column. An update is required to bring the placed component's footprint and source library footprint back into sync.

If a footprint in a source library can't be found, the Path field for the library component to compare against will reflect this, with the entry <Footprint not found>. In this case, comparsion can not be made for that particular component.

There will be an associated Update option for each component with a non-matching footprint. By default, each component that fails to match is automatically included in the update. Control, as is the norm in Altium Designer, is always yours, and you may choose to exclude any non-matching components from the update process by unchecking the box or using the commands of the Include All button drop-down.

The lower Difference Details region of the dialog lists the differences found between primitives for the currently selected (and non-matching) component entry in the region above. For a non-matching footprint, the component primitives causing differences are listed per enabled layer for comparison. You can examine the differences for all layers or by specific layer using the tabs at the top of the region. The Component Primitives causing Differences for region lists the component primitive(s) that caused the difference(s) on the left and displays the listed data on the right. Information includes:

  • Object Type - the type of object.
  • Identifier - lists any special designator information.
  • Detail - displays details of the component primitive.

A graphical comparison is presented, with the footprint divided up into cells. Use the Highlight Cell Density slider bar to increase (to the right) or decrease (to the left) the size of the cells in the display area. Cells where differences exist are shown in full color, with the differences highlighted. Primitive objects in the current PCB are shown in full color, with the updated component primitives from the library shown as a "ghost" image over the top of them.

  • If there are differences in footprint parameters between the selected PCB component footprint and the library footprint, the Difference Details region of the dialog will include the Parameters tab listing parameter differences.

  • If there are differences in pad designators or 3D bodies between the selected PCB component footprint and the library footprint (which might appear when the footprint was mirrored in the PCB), the Difference Details region of the dialog will include the Properties tab listing parameter differences. This feature is available when the PCB.Component.MirroredFootprint option is enabled in the Advanced Settings dialog.

  • If there are no differences between the selected PCB component footprint and the library footprint, the region will be titled No Difference For [Designator name (Footprint Name)] and display the selected component relevant to the chosen layer tab.

  • If the Path column in the Part List displays as <Footprint not found>, the header of the Difference Details region will state that the footprint was not found.

Generating a Comparison Report

If you want to create a Footprint Comparison Report (Footprint Comparison - PCBDocumentName.html), click the Create Report button at the bottom left of the Update From PCB Libraries dialog. The report provides:

  • A list of unmatched components
  • A list of matched components
  • Primitive difference details for each component in the unmatched components list.

The Footprint Comparison Report
The Footprint Comparison Report

Generating a comparison report will close the Update From PCB Libraries dialog. You will need to launch the command again.

A Footprint Comparison Report can also be added as part of a set of validation outputs in an Output Job Configuration file.

Proceeding With the Update

When you are satisfied with the update solution, click the Accept Changes (Create ECO) button. Use the Engineering Change Order dialog that opens to validate then execute the updates accordingly. Disable any changes that you do not want to occur. The changes will be made and the components that are included in the update will have their footprints updated to those in the source libraries.

The Engineering Change Order dialog ready for validating and executing the updates of footprints
The Engineering Change Order dialog ready for validating and executing the updates of footprints

Fixes to inadvertent mirroring of footprints effected through an ECO remove mirroring for the placed footprint instance so that it is the same as defined in the source library. Note that only mirroring-related elements (pins, overlays, and 3D bodies) are considered when applying the fix. Other changes to the placed component footprint, such as rotation, remain untouched.

Applying Changes Directly From the PCB Library Editor

Direct update of placed PCB footprints can be performed from within a source PCB library. This method of updating is particularly suited to the update of components that have been placed from isolated PCB footprint libraries (*.PcbLib) and where those libraries are made part of the available filed-based libraries for the project.

Changes made to one or more component footprints in a source PCB library can be passed directly to placed instances of those footprints on the PCB. The main Tools menu in the PCB Library Editor offers commands for updating just the current footprint (Update PCB With Current Footprint), or all footprints (Update PCB With All Footprints). These commands can also be accessed from the PCB Library panel's right-click menu.

From a source PCB library, changes can be applied using the right-click menu of the PCB Library panel
From a source PCB library, changes can be applied using the right-click menu of the PCB Library panel

All instances of the placed component footprint(s) in all open PCB documents will be updated regardless of the parent project. Essentially, if a placed component footprint has the same name as that of the library component, it will be updated.

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Note

The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform.

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Content