Setting up a board

Most of the work is loading two files. The rest of this page is about the handful of details that decide whether components land in the right place — get one of these wrong and the chart still renders, which is exactly why the app is noisy about them.

Origin and units

Placement exports are not required to start at (0,0). KiCad negates Y, so every coordinate in a .pos file is negative. Altium can export relative to a sheet origin hundreds of millimetres from the board. If the tool assumed an origin of zero, every component would land off the image while the totals still added up correctly — so the origin is read from your file and shown as an editable Origin X / Y field.

Units are detected when the file states them, whether that is in the values (93.0000mm) or in the column heading (Center-X(mil)). A unit found in the file overrides the selector, and the app tells you when that happens. Reading a mil file as millimetres would misplace everything by a factor of 25.4.

Check one part. After generating, pick a component you can identify on the real board and confirm the arrow points at it. That single check catches every units and origin problem at once.

Board size

The board outline dimensions in millimetres. The app pre-fills a suggestion from the extent of the placement data, but components sit inboard of the outline, so the suggestion is a starting point — enter the real dimensions if you know them.

Board image and calibration

Two mapping modes:

  • Image = board outline — the edges of the image are the edges of the board. Correct for renders and cropped photos.
  • Calibrated — for a photo with margins or background. Click the board's origin corner, then the opposite corner, and the coordinate system is lined up with the picture. The calibration is remembered for that board.

SVG renders are measured from their viewBox, which is what most CAD and Gerber exporters emit. Uploaded SVGs are rendered as images, never inlined into the page.

Board side

Bottom-side components are plotted at their board coordinates on the top view, and the app tells you how many there are. Whether a given toolchain mirrors bottom-side X varies, so we do not guess: check one bottom-side part against the real board before relying on those positions. If your export mirrors, tell us which tool produced it and we will handle it explicitly.

Designators

The placement file and the test system are usually maintained by different people in different tools, so the same part often appears as U7 in one and U007, U 7 or REF U7 in the other. When that happens the board comes out empty and the report offers to match them, naming the change it proposes.

Matching is by canonical form only — prefix, number without leading zeros, suffix — and never by similarity. U7 and U9 differ by one character and are different parts, so the tool will not guess between them. If two board designators canonicalize the same way, no mapping is offered at all.

Criticality and transparent-to-test

An optional CSV with a designator column plus criticality (critical / standard / indicator) and transparent_to_test (yes/no). Transparent-to-test parts are excluded from the map by default and always disclosed with their own count, so a part the tester cannot measure never quietly disappears from the totals.

Open the app