An ODB++ file is a PCB manufacturing data package that combines layer artwork, drill data, board geometry, net information, component details, and other production data in one structured dataset. PCB designers export it from their design software and send it to a fabricator or assembler for CAM preparation.
Its main difference from a Gerber package is context. Gerber files normally describe individual layers, while ODB++ can also preserve how layers, holes, nets, and components relate to one another. This guide explains what is inside the package, how to export and view it, when to choose it over Gerber, and what to check before sending it for PCB manufacturing.

What Is an ODB++ File in PCB Manufacturing?
ODB++ is a PCB manufacturing data package that places the information for one board in a connected, machine-readable structure. The package can include copper and mask layers, board outlines, holes, routes, nets, parts, pins, and attributes. A CAM system can therefore read both the features and much of the meaning behind them.
ODB++Design is the branch of the ODB++ family used to pass PCB design data into manufacturing. Siemens maintains the format and provides specifications, sample jobs, and viewer resources through the official ODB++Design resource hub. When a PCB manufacturer imports the job, the software can identify layer types, drill relationships, connectivity, and component information without reconstructing all of that context from separate files.
The package only contains what the PCB design tool exports. If a layer, netlist, component field, or manufacturing note is missing at the source or disabled in the export settings, the ODB++ job will not add it automatically. Inspect the exported layers and compare the job with the source PCB so a missing selection does not reach CAM review.
Is an ODB++ File a Single File or a Folder Structure?
An ODB++ job is a folder structure, even when it arrives as one compressed file. Design tools commonly package the job as a .tgz, .tar, or .zip archive for easier transfer. After extraction, the archive contains a directory tree rather than one universal .odb file.
The tree separates different kinds of PCB data so that CAM software can find and connect them. Common sections include:
- Matrix: acts like a map of the job. It identifies the layers, their order and type, and the relationship between drill spans and board layers. CAM software uses it to understand which files represent copper, solder mask, legend, drill data, and other functions.
- Steps: contains the actual board, panel, coupon, or repeated layout. Each step can hold its profile, graphical features, holes, routes, nets, and component data.
- Symbols: stores reusable shapes referenced by pads and other features. Reusing a symbol keeps the job organized instead of describing the same geometry repeatedly.
- Fonts: provides character definitions used for text in the job.
- Input and miscellaneous data: may contain source references, attributes, logs, user data, or other job-level information created by the exporter.

Altium’s CAM import and export documentation describes an ODB++ job as a directory tree of readable ASCII files. Send the original archive or the complete extracted tree. If only a few internal folders are copied, the receiving software may lose the matrix, step, or symbol references it needs to open the board correctly.
What Information Does an ODB++ File Contain?
An ODB++ file can contain most of the design data a manufacturer needs to interpret a PCB. Each data group supports a different CAM, fabrication, assembly, or inspection task:
- Board profile and layer stack: defines the board boundary and identifies copper, solder mask, paste, legend, mechanical, and other layers. CAM uses this information to place every production layer in the correct sequence.
- Copper and mask features: includes pads, tracks, planes, clearances, openings, and other plotted geometry. These features become the basis for imaging, solder mask, and paste preparation.
- Drill and route data: describes hole sizes, plated or non-plated status, slots, and routed outlines. The fabricator uses it to prepare drilling and mechanical routing operations.
- Electrical connectivity: connects features to named nets. This helps CAM engineers compare the manufactured geometry with the intended circuit and prepare electrical test data.
- Components and packages: can include reference designators, locations, rotations, board sides, pins, and package relationships. Assembly teams can use this context when preparing placement and inspection data.
- Attributes: adds meaning to layers, pads, holes, components, or other features. An attribute may identify a test point, via type, component pin, or special feature more clearly than geometry alone.
- Board and panel steps: can represent a single PCB, production panel, coupon, or repeated placement. This allows the recipient to see how the job is organized rather than guessing from separate images.
The exact content varies by design tool and export settings. For example, Altium lets the user select plotted layers, archive type, ODB++ version, and netlist inclusion. A job exported without net data can still open normally, but the manufacturer cannot use it for the same connectivity comparisons as a job that includes the netlist.
How Is an ODB++ File Different from Gerber Files?
ODB++ combines PCB geometry and relationship data in one structured job, while a Gerber release is usually a set of artwork and supporting files. Both formats can support successful PCB fabrication. The better choice depends on the data your design tool can export and the format your manufacturer can process reliably.
| Decision point | ODB++ file | Gerber package |
|---|---|---|
| Package model | One directory tree or archive with linked job data | Multiple artwork and supporting files |
| Layer meaning | Layer type and order can be explicit in the matrix | Depends on file functions, attributes, names, and supporting notes |
| Connectivity | Can include nets and feature relationships | Usually needs an IPC-D-356 or other independent netlist |
| Component context | Can carry components, pins, packages, and placements | Usually supplied through separate placement and assembly files |
| Review risk | Wrong export options can omit expected job intelligence | Missing, duplicated, or mismatched files can obscure relationships |
| Best choice | Use when both the source CAD tool and recipient support ODB++ | Use when the recipient requests Gerber or already has a tested Gerber workflow |
Choose ODB++ when the manufacturer supports it and you want to send layer, net, component, drill, and attribute data together. It is especially useful for complex multilayer boards, dense layouts, and jobs that benefit from richer CAM checks.
Choose Gerber when the supplier requests it, the project uses a well-established Gerber workflow, or the handoff is limited to straightforward fabrication artwork and its supporting files. Gerber X2 can also carry useful attributes, so the comparison is not simply “smart” data versus “basic” data.
If you provide both formats, generate them from the same PCB revision and make one format the agreed manufacturing source. Two packages from different revisions create conflicting instructions rather than useful redundancy.
How Do You Create an ODB++ File from PCB Design Software?
Create an ODB++ file with the fabrication-output or manufacturing-export command in your PCB design software. Export directly from the native PCB design when possible because the source project contains the layer, net, component, and attribute relationships that a conversion from artwork may not recover.
- Open the finished PCB layout. Confirm that the outline, layer stack, holes, and design rules reflect the version you intend to send.
- Start the ODB++ export. Choose the fabrication-output or manufacturing-output command provided by the design tool.
- Review the settings. Select the correct board or panel, required layers, units, netlist option, archive type, and ODB++ version accepted by the recipient.
- Export to a new folder. Keeping the output separate from older jobs makes it easier to identify the current package.
- Open the result in a viewer. Check that the visible board, layers, holes, and nets match the source design.
In Altium Designer, current documentation places the command under File → Fabrication Outputs → ODB++ Files, and an Output Job can also generate it. In KiCad PCB Editor, use File → Fabrication Outputs → ODB++ Output File. In Fusion Electronics, use Export ODB++ from the Manufacturing toolbar.
Menus and available options can change between software versions. Check the current instructions for Altium ODB++ output, KiCad PCB Editor output, or Fusion Electronics export. Pay particular attention to the netlist, selected layers, units, panel or board step, archive format, and ODB++ version.
How Do You Open and View an ODB++ File?
Use an ODB++ viewer when you only need to inspect the package; use compatible CAM software when you need manufacturing analysis or process preparation. Open the complete archive or the root job folder. A suitable tool should display the board step, profile, layers, copper features, drills, nets, and any component data that the package contains.
- Local viewing: Siemens offers an ODB++ Viewer for inspecting ODB++ models on a local system.
- Browser viewing: the Altium 365 Viewer lists ODB++ among its supported formats and can be useful for a quick visual review.
- CAM review: a fabricator or CAM engineer can import the job into manufacturing software to analyze layers, tools, nets, clearances, and production features.
For confidential designs, a local viewer avoids uploading the package to a third-party service. If you use an online viewer, review its current privacy, retention, access, and deletion terms first.
What Should You Check Before Sending an ODB++ File?
Before sending the package, open it in a separate viewer and compare six areas with the source PCB. The goal is to catch missing or incorrectly mapped data while the design files are still available.
- Board outline: confirm the outer profile, cutouts, slots, dimensions, and units. A missing or duplicated outline can change the routed board shape.
- Layers: compare the copper, solder mask, legend, paste, and mechanical layers with the PCB stack. Check both layer count and order.
- Drills and slots: review hole sizes, plated and non-plated holes, blind or buried drill pairs, backdrills, and routed slots where applicable.
- Nets: make sure net names and connectivity are visible if a netlist was included. Review critical planes, net ties, and intentional shorts rather than assuming they transferred correctly.
- Component data: when the job supports assembly, compare reference designators, board side, rotation, pin positions, and omitted or variant parts.
- Revision consistency: give the archive a clear part number and revision, and make sure its drawing, stackup, BOM, and placement files describe the same design version.

For more detail on how manufacturers use connectivity data, the PCB bare board testing guide explains how a board’s net data supports continuity and isolation testing.
What Information May Still Need a Separate Drawing or Note?
ODB++ contains extensive PCB manufacturing data, but it does not necessarily replace fabrication drawings, stackup requirements, BOMs, assembly drawings, or special process notes. These documents explain requirements that may not be included by the exporter or may need a clear written tolerance.
- Fabrication details: material family, finished thickness, copper weight, surface finish, filled or capped vias, edge plating, and other special processes.
- Stackup and impedance: dielectric construction, target impedance, tolerance, reference layers, coupon needs, and reporting requirements.
- Mechanical requirements: critical dimensions and tolerances, bevels, countersinks, scoring, routing quality, and keep-out areas.
- Panelization: array size, rails, fiducials, tooling holes, breakaway method, coupons, and any restrictions on how the manufacturer may panelize the board.
- Assembly information: BOM, approved parts, placement data, assembly drawing, variants, polarity notes, programming, inspection, and functional test instructions.
This limitation often depends on the exporter rather than the format alone. Ansys, for example, documents cases in which an imported ODB++ directory lacks material or layer characteristics required for analysis and needs a separate control file. Ask the PCB manufacturer which supporting documents it expects instead of assuming the archive replaces every drawing and note.
Why Can an ODB++ File Fail to Import or Pass CAM Review?
Import failures usually come from incorrect packaging, missing export content, layer mapping errors, or a compatibility difference between tools. Start with the visible symptom, then check the corresponding source setting.
| Problem | Likely cause | What to check |
|---|---|---|
| The viewer cannot find a job | The archive has an extra wrapper folder or an incomplete directory tree | Open the archive and confirm that the matrix and steps folders belong to the same job root |
| The board opens without layers or an outline | Required layers or the board profile were not selected during export | Review the layer-selection and outline settings, then export again from the native PCB |
| Drills or slots appear in the wrong place | Units, drill pairs, plating types, or layer mapping do not match | Compare tool sizes, units, plated status, and start and stop layers with the source design |
| Nets are missing | The netlist option was disabled or the wrong board step was exported | Enable net data, select the correct step, regenerate the package, and confirm that nets appear in the viewer |
| Stackup or materials are incomplete | The exporter did not include the required attributes | Check the exported data and provide a separate stackup or material note when needed |
| One tool opens the job but another rejects it | The importer does not support the archive type, format version, or an exported feature | Record both software versions and the first error; try the complete uncompressed job if archive support is uncertain |
Regenerate the package after correcting the source or export settings. Manually deleting folders or editing coordinates may hide the original problem and create a package that no longer matches the PCB design.
How Should You Control Revisions and Protect ODB++ Data?
Use a clear file name that includes the PCB part number and revision. Keep the ODB++ package, fabrication drawing, stackup, BOM, placement data, and assembly drawing on the same revision. Before sending them, compare the part number and revision on every file. A mismatch can cause the manufacturer to build geometry from one version and assembly data from another.
After a design change, create a new export from the updated source project. Do not place the new drawing beside an old ODB++ package or reuse an old archive with a renamed file. If the manufacturer finds a CAM issue, update the source design where appropriate before generating the next package.
An ODB++ job can reveal copper geometry, connectivity, component positions, and other design details. Send confidential jobs through a transfer method that provides suitable access control, and avoid uploading them to an online viewer unless its data terms fit the project.
FAQs About ODB++ Files
Q1: What is the ODB++ file extension?
A1: The package has no single mandatory extension. It may be an uncompressed job directory or a .tgz, .tar, or .zip archive. Identify it by its job structure and a compatible viewer, not by a generic .odb suffix.
Q2: Is ODB++ free to view?
A2: A free official viewer is available. Siemens describes its ODB++ Viewer as a free solution. Access conditions, platform support, and resource registration can change, so check the current official download page before relying on a particular deployment.
Q3: Can you convert Gerber files to an ODB++ file?
A3: Conversion cannot recreate missing design intelligence. A CAM tool may import Gerber and drill data and export an ODB++ job, but it can only organize the information it received or inferred. It cannot reliably recover original nets, component relationships, stackup intent, or attributes that were never supplied.
Q4: Does an ODB++ file include a BOM and pick-and-place data?
A4: Do not assume it does. ODB++ can carry component and placement-related information, but exporters and assembly workflows differ. Send a matching BOM, placement file, assembly drawing, and variant instructions unless the assembler confirms that the job contains every required field.
Q5: Can a PCB manufacturer build from only an ODB++ file?
A5: Only when the package contains all required manufacturing information. Many jobs still need a fabrication drawing, stackup, material and finish notes, impedance requirements, tolerances, panel instructions, and order quantity.
Q6: Where can you find an ODB++ file example?
A6: Use the official sample. The ODB++Design resource hub provides a current sample package alongside specification resources, which is safer than treating an unknown archive as a format reference.
Q7: How do you open an ODB++ file?
A7: Open the complete archive or root job folder in a compatible viewer. Use a local ODB++ viewer for confidential data, a browser viewer for convenient visual review, or CAM software when manufacturing analysis is required.
Q8: Can Altium Designer, KiCad, and Fusion Electronics export ODB++?
A8: Current versions of all three tools provide ODB++ export options. The menu path and available settings vary by version, so confirm the selected layers, units, netlist, archive type, and ODB++ version before generating the package.
Q9: Why will an ODB++ file not open?
A9: Packaging and compatibility problems are common causes. Check for an extra wrapper folder, an incomplete job tree, an unsupported archive type, or a format version that the receiving viewer cannot import.
Q10: Should you send ODB++ and Gerber files together?
A10: Send both only when the manufacturer requests them. Generate both packages from the same PCB revision and identify which format controls manufacturing so the recipient does not have to resolve conflicting data.
How Do You Prepare a Reliable ODB++ Handoff?
ODB++ is most useful when you want to give a PCB manufacturer one structured package with geometry, layer, drill, net, and component context. Export it from the native PCB design, review the result in a separate viewer, and make sure the package opens with the correct outline, layers, holes, and connectivity.
Use the format when your manufacturer supports it and the additional data helps with CAM preparation or assembly. Keep separate drawings and notes for material, stackup, impedance, finish, tolerances, panelization, and assembly requirements that the package does not clearly contain. Above all, make sure every file belongs to the same PCB revision.
Before production, compare the ODB++ package with the source design and use a practical PCB design for manufacturability checklist to confirm the remaining build details. For a project-specific CAM and manufacturing review, send the ODB++ file and its matching documents to EBest Circuit at sales@bestpcbs.com.
Tags: DFM Review, ODB++, PCB CAM, PCB data exchange, PCB manufacturing files

