1Introduction
Compare ASSY to BOM checks a printed-circuit-board assembly drawing against its Bill of Materials (BOM) and reports anything that does not line up between the two. Its job is to answer a deceptively simple question that is tedious and error-prone to check by hand: does every part that the BOM says should be on the board actually appear on the assembly drawing, exactly the number of times it should — and does anything appear on the drawing that the BOM does not account for?
You give the tool two things: a BOM file (a text export listing every reference designator or item that belongs on the assembly) and the assembly drawing as a PDF. The tool opens the PDF, reads the callouts printed on the drawing sheets, builds its own parts list from what it finds, and compares that against the BOM. It then shows you, item by item, where the two disagree so you can zoom straight to the problem on the drawing and decide what to do about it.
The window is divided into two tabs. The PCB tab handles the electronic components (resistors, capacitors, connectors, integrated circuits, and so on). The Mech tab handles the mechanical hardware — screws, standoffs, brackets, labels, and other non-electronic parts installed on the same assembly. Both tabs work on the same principle, but they read slightly different things from the BOM and the drawing, so they are covered separately below.
2What You Need Before You Start
- The full Adobe Acrobat application (Standard or Pro) installed on the same computer. The tool does not read the PDF on its own — it opens your drawing inside Acrobat and drives Acrobat behind the scenes to pull the text off each sheet. The free Adobe Reader will not work for this.
- A text-searchable assembly drawing PDF. The callouts on the drawing must be real, selectable text. If the PDF is a scanned image, or the text has been flattened to line-work or outlines, the tool cannot read the callouts and will find nothing.
- A BOM file in the supported text format (see Section 3.1).
- A small setup file named
setup.txtin the same folder as the program. It supplies the drawing's expected CAGE code, which the tool uses to orient each sheet. This normally ships with the tool and needs no attention. - A word-exclusion file named
excluded_words.txtin the same folder as the program. It lists words that appear in the drawing's standard notes and export-control statements so the tool does not mistake them for part callouts. This also ships with the tool.
setup.txt is missing from the program folder, the tool will tell you and close. Both setup.txt and excluded_words.txt must be present for the tool to work correctly.3The Two Inputs
You load files by dragging them from a Windows folder and dropping them into the box in the upper-left corner of the window. You can drop the drawing and the BOM together, or one at a time. The tool figures out what each dropped file is from its contents and its name.
3.1 The BOM File
The BOM must be a plain-text export of the assembly's Bill of Materials, laid out in columns separated by the vertical-bar character ( | ). The tool confirms a file is a valid BOM by looking for the phrases “BOM Export” and “Installation Pt” in it — if neither is present, the file is rejected as not a valid BOM. A valid file looks like this:
| Column | Meaning & How It Is Used |
|---|---|
| Installation Pt | The reference designator or item number of the part (for example C001, R47, E001, or a plain balloon number). This is the key value the tool compares against the drawing. Leading zeros are ignored, so C001 is treated as C1. |
| Component | The part-number record. Two special values carry meaning (see below): 431 marks a part that is not installed, and 432 marks an E-point. |
| Quantity | The quantity called out by the BOM. Used for the quantity comparison, and for item (balloon) numbers that represent more than one placement. |
| Plant / Item / Old Part Number | Additional record fields. Not used for the comparison. |
| Material Description | The human-readable description (for example CAP,.22UF,6.3V,20%,0201,X5R,SMD). Shown for reference; not compared. |
Two component records are treated specially, because they identify parts that should behave differently on the drawing:
| Special Record | What It Means |
|---|---|
| Component 431“** COMPONENT NOT INSTALLED **” | A footprint that exists on the board but is deliberately left unpopulated. These become the CNI (Component-Not-Installed) list. They should not appear as installed callouts on the drawing. |
| Component 432“**E'POINT**” | An E-point (a defined electrical point on the board). These are added to the ASSY list and are expected to appear on the drawing. |
How many BOM files to load
- PCB tab: up to two BOM files may be loaded together — the assembly (ASSY) BOM and the surface-mount (SMT) BOM. The tool decides which is which by inspecting their contents. If it cannot tell which file is the ASSY BOM, it will ask you to click that file in the drop box to identify it. Loading more than two files is rejected.
- Mech tab: exactly one BOM file. Loading more than one is rejected.
3.2 The Assembly Drawing PDF
The drawing is the reference the BOM is checked against. When you drop a PDF, the tool opens it in Acrobat and scans every sheet, collecting the callouts it considers valid (see Section 4). From those callouts it builds a “PDF BOM” — its own tally of what appears on the drawing and how many times each thing appears.
4What the Tool Reads From the Drawing
This is the heart of the tool, and the part most worth understanding. The scan is not a blind text dump — the tool applies a set of rules so that it collects the item and reference-designator callouts while ignoring dimensions, notes, title-block text, and boilerplate. Knowing these rules tells you what a “clean” drawing looks like to the tool, and explains why the occasional stray piece of text turns up in the results.
4.1 Where it looks — and where it doesn't
The tool only considers text that sits inside the drawing field — the working area bounded by the drawing border. It deliberately skips the parts of the sheet that contain metadata rather than part callouts:
- The title block (the block of drawing information, normally in a corner) is excluded on every sheet.
- The revision block is excluded on the first sheet.
- Anything outside the drawing border is excluded.
- Any rectangular “box” annotation you add in Acrobat is excluded. If a region of the drawing keeps producing stray text — a parts table, a notes block, an artwork legend — you can draw a square/rectangle comment over it in Acrobat before scanning, and the tool will ignore everything inside that box.
4.2 How sheet orientation is detected
To know where the title block and revision block sit, the tool needs to know how each sheet is rotated. It does this by locating the drawing's CAGE code on the sheet (the value supplied in setup.txt) and reading its position. Because the CAGE code lives in the title block, its location reveals whether the sheet is upright or rotated 90°, 180°, or 270°.
4.3 What counts as a callout — and what is filtered out
Within the allowed area, the tool keeps a piece of text as a genuine part callout only if it contains at least one digit and is free of the patterns that signal it is something else. A callout is discarded when it:
| The text… | Why it is ignored |
|---|---|
| contains no digits | Pure words are notes or labels, not part callouts. |
| contains a period ( . ) | Signals a dimension or decimal value (for example 1.50). |
| contains a slash, comma, or colon | Signals a note, a list, or a fraction rather than a single callout. |
| contains parentheses | Signals a parenthetical reference note. |
| starts with “SH” | A sheet reference such as “SH 2”, not a part. |
| is an alpha-number-alpha-number stringe.g. B2P1, W7P2 | A connector-pin reference, not a stand-alone part callout. |
| is on the excluded-words list | Boilerplate from the drawing's notes and export-control statement (see below). |
4.4 Excluded words and export-control statements
Drawings carry a standard block of proprietary and export-control (EAR) language. Left alone, words and numbers in that block would be misread as parts. Two mechanisms prevent this:
- The
excluded_words.txtfile lists the ordinary words that appear in these statements (and common English words), so they are dropped on sight. - A few numbers that appear in the export-control citations are checked in context: if one of them sits next to the letters “CFR”, the tool recognizes it as part of the regulation citation and discards it rather than treating it as a part.
4.5 Quantity multipliers
Drawings often call out several identical parts with a single balloon plus a multiplier, such as “4X” next to an item number to mean “four of this item.” The tool understands this: when it sees a multiplier like 2X or 4X, it looks to the left and right for the item number it belongs to and adds that many to the drawing quantity, instead of counting the multiplier as its own part.
Finally, on the PCB tab, callouts that begin with “MTG” (mounting-related notations) are left out of the electrical comparison.
5The Two Tabs
The whole window is one large tabbed panel. The tab you choose determines which kind of check runs and which lists you see. Your last-used tab is remembered between sessions.
| Tab | Purpose |
|---|---|
| PCB | Verifies the electronic components. Offers three explicit presence checks (not-installed, assembly, surface-mount) plus an automatic quantity comparison, and lets you search for a specific component. |
| Mech | Verifies the mechanical hardware installed on the assembly. Runs an automatic quantity comparison of item (balloon) numbers between the BOM and the drawing. |
6The PCB Tab
When you drop the drawing and the BOM(s) onto the PCB tab, the tool scans the drawing, sorts the BOM into its three parts lists, and immediately runs a quantity comparison. From there you can run any of the three presence checks and investigate individual differences.
6.1 The Three Component Lists
Down the left side, the BOM is separated into three lists so each class of part can be checked appropriately:
| List | What it holds |
|---|---|
| SMT Comps | The surface-mount reference designators taken from the SMT BOM. These are expected to be present on the drawing. |
| ASSY Compsshows item & quantity | The assembly parts taken from the ASSY BOM — reference designators, E-points, and item/balloon numbers with their quantities. These are expected to be present on the drawing. |
| CNI CompsComponent-Not-Installed | The reference designators flagged in the BOM as not installed. These are expected to be absent from the drawing as installed parts. |
Clicking any single entry in these lists highlights it and, if that callout exists on the drawing, zooms the Acrobat window to its location. With an entry selected, the up and down arrow keys step through the rest of the list, zooming to each in turn — a fast way to eyeball parts one after another.
6.2 The Automatic Quantity Comparison
As soon as both a drawing and a BOM are loaded, the tool compares its drawing tally against the BOM and fills the SAP/PDF BOM differences list. Each row shows an item together with the quantity the BOM expects and the quantity found on the drawing:
An item appears in this list when:
- It is in the BOM but its drawing count differs from the BOM quantity (including a drawing count of zero, meaning it is missing from the drawing).
- It is on the drawing but does not appear anywhere in the ASSY, SMT, or CNI data (something drawn that the BOM does not account for).
Because most reference designators appear exactly once, a designator showing a drawing quantity of 2 usually means it was drawn twice; a quantity of 0 usually means it is missing or was mistyped on the drawing. See Section 8 for how to work through the list.
6.3 The Three Verifications
The three verification buttons run explicit presence checks and write a plain-language pass/fail summary into the Verification Report box at the lower right. As each check runs, you will see it step through the list and highlight each part on the drawing.
| Verification | What it checks and how to read the result |
|---|---|
| Verify CNI | Searches the drawing for every not-installed part. Because these should not be shown as installed, the logic is inverted: finding none of them is a PASS; finding some is a partial failure; finding all of them is a full failure. The report lists any that were found so you can check them. |
| Verify ASSY | Searches the drawing for every assembly part. Finding them all is a PASS; any not found are listed as missing. Parts whose designator begins with “*” are skipped and reported separately — these are programmed devices that intentionally do not appear on the drawing. |
| Verify SMT | Searches the drawing, sheet by sheet, for every surface-mount reference designator. Finding them all is a PASS; any not found are listed as missing. |
6.4 Finding a Specific Component
To jump straight to one part, type its designator into the search box next to the search button and press Enter, Tab, or the button. If the part is in any of the three lists it is selected there, and if it exists on the drawing the Acrobat window zooms to it.
7The Mech Tab
The Mech tab checks the mechanical hardware installed on the assembly — the screws, standoffs, nuts, brackets, labels and similar items that are called out on the drawing with item (balloon) numbers rather than electronic reference designators. It takes a single BOM file and, as soon as the drawing and BOM are both loaded, compares them automatically. There are no separate verification buttons on this tab; the comparison is the check.
7.1 What it compares
From the BOM, the tool builds a list of item numbers and their expected quantities (shown in the BOM from SAP list). Item numbers may be plain numbers such as 31 or 66, or alphanumeric designators such as A2. A few details of how the BOM is interpreted:
- Leading zeros and any leading “*” are stripped, so
0031and*31both become31. - An item that is itself a reference designator is counted as quantity 1 (one placement), regardless of the BOM number.
- Sub-numbered items written with a dash (for example
31-1,31-2) are grouped under their parent, and the tool checks that the number of sub-items matches the parent's quantity — warning you if they do not.
From the drawing, the tool builds the matching tally of item-number callouts (shown in the PDF BOM list), applying all the reading rules in Section 4. It then lists every mismatch in the SAP/PDF BOM differences list, with the BOM quantity and the drawing quantity side by side — just as on the PCB tab.
8Reviewing and Resolving Differences
Both tabs share the same tools for working through the differences list. The goal is to look at each difference, decide whether it is a real problem with the drawing or a quirk of the scan, and either flag it for correction or clear it away.
8.1 Look at where an item actually is
Click a row in the differences list. The tool gathers every place that item was found on the drawing and lists them individually in the View / Select Differences box. Clicking any one of those instances selects and zooms to that exact spot in the Acrobat window, so you can see with your own eyes whether the callout is genuine, duplicated, or a false read.
8.2 Delete a false read
If one of those instances is not really a part callout — a stray number the scan picked up — select it and use Delete Selected. The item is removed, that spot is added to an ignore list so it will not come back, and the quantities and comparison update immediately. Undo Delete reverses the most recent deletions if you remove something by mistake.
8.3 Flag what needs fixing
When a difference is a genuine drawing issue, mark it so it is captured in the report. Three color-coded controls do this:
| Marking | Meaning |
|---|---|
| Mark as Needs Correctionred | A real problem that must be fixed on the drawing. Added to the report under “needing attention.” |
| Mark as Minor Issueorange | A difference worth noting but not necessarily requiring a change. Added to the report under items that “do not necessarily require attention.” |
| Unmarkblue | Removes any marking from the selected difference and takes it back out of the report. |
Every time you mark or unmark an item, the Verification Report box is rewritten and a report file is saved automatically (see Section 9).
9Saving and Resuming Your Work
A drawing review is rarely finished in one sitting. The tool writes two supporting files, into the same folder you loaded the drawing and BOM from, so you can pick up where you left off. To resume, simply drop these files back in along with the drawing and BOM.
| File | What it stores and how to reuse it |
|---|---|
| Ignore-list filenamed after the drawing, ending in _ignore_list.TXT | Every stray read you deleted. Drop it back in with the drawing so those false hits stay suppressed and the scan does not raise them again. |
| Comparison-report filethe saved verification report | Your red (needs-correction) and orange (minor-issue) markings. Drop it back in to restore all your flags on the differences list exactly as you left them. |
To abandon everything and begin a completely new comparison, use the clear/reset control at the top right. It empties every list and disconnects from the drawing.
10Typical Workflow
A normal PCB-assembly review runs like this:
- Choose the PCB tab (or Mech tab for hardware).
- Drag the assembly-drawing PDF and the BOM file(s) into the drop box at the top left. Wait while the drawing is scanned — you will see the status line count through the words on each sheet.
- If asked, identify the ASSY BOM (PCB) or supply the CAGE code, then let the scan finish.
- Read the SAP/PDF BOM differences list that appears. Click through each difference; use the View / Select Differences box to zoom to each spot on the drawing.
- Delete any false reads (updating the ignore list), and use the drawing to confirm the real problems.
- On the PCB tab, run Verify CNI, Verify ASSY, and Verify SMT and read the pass/fail summaries in the report box.
- Flag genuine issues as Needs Correction (red) or Minor Issue (orange). The report is saved automatically.
- When you need to stop, close the tool. To resume later, reload the drawing, the BOM, the ignore-list file, and the comparison-report file together.
11Tips & Troubleshooting
- Nothing is found on the drawing: the PDF is probably not text-searchable (a scan or flattened artwork), or the full Adobe Acrobat is not installed. Confirm you can select the callout text in Acrobat itself.
- The tool asks for a CAGE code: the CAGE code in
setup.txtwas not found on the sheet. Type the CAGE code exactly as printed on the drawing to continue. - A whole notes area shows up as differences: draw a rectangle annotation over that area in Acrobat and re-scan, so the tool ignores everything inside it.
- A dropped file is rejected as “not a valid BOM”: the file is missing the expected “BOM Export” / “Installation Pt” markers, or is not the pipe-delimited text export. Re-export it in the supported format.
- “You have loaded more than two / one BOM files”: the PCB tab accepts at most two BOMs (ASSY + SMT) and the Mech tab exactly one. Clear and load the correct file(s).
- A multiplier prompt appears: a quantity multiplier such as “2X” had a number on both sides. Type in exactly which item number it belongs to.
- Old markings don't come back after reloading: make sure you drop the comparison-report file in along with the drawing and BOM; and remember that a CAD-regenerated drawing invalidates the old ignore list.
- Verify passes but quantities are still off: the presence checks and the quantity comparison are separate. A green “PASS” means the parts exist on the drawing; still work the differences list to clear quantity mismatches.