Updating Footprints from Libraries in Altium Designer
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.
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.
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.
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 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.
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.
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.
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.
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.
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.