SCH File Documentation


Summary

A .sch file is an electronic schematic: a circuit diagram showing components and the nets that wire them together, the design counterpart to a PCB layout (.brd). The extension is shared by several EDA tools with incompatible internal formats — EAGLE, KiCad, OrCAD and various SPICE tools — so the right program depends on which one created it. The most common .sch online is an EAGLE schematic (XML text since EAGLE 6); the free path to open it today is KiCad, which imports EAGLE projects directly.

Technical details

FeatureValue
Full nameCAD Schematic File (circuit diagram)
File extension.sch
MIME typeapplication/xml (EAGLE 6+); varies by tool
Format typeElectronic schematic; format depends on the creating EDA tool
AmbiguityUsed by EAGLE, KiCad (legacy), OrCAD, TINA, Qucs and others
EAGLE formatXML text since EAGLE 6.0 (2011); binary in EAGLE 5 and earlier
KiCad formatS-expression text (legacy); KiCad 6+ uses .kicad_sch
OrCAD formatCadence OrCAD Capture, proprietary (often binary)
EAGLE developerCadSoft → Autodesk (EOL June 2026, now Fusion Electronics)
EAGLE introducedEAGLE since 1988; XML .sch since 2011
Open standardNo — each tool’s format is vendor-defined
EAGLE XML header<?xml ...>, DOCTYPE eagle.dtd, <eagle version="...">
HoldsLibraries, parts, sheets, nets/wires, symbols and pins
Paired filePCB layout .brd (same design, board side)
Free openerKiCad (imports EAGLE 6+ projects)
Exports to.pdf, .kicad_sch, .dxf
Related extensions.brd, .lbr, .kicad_sch, .dsn
Referencekicad.org, autodesk.com (EAGLE EOL)
How to tell which tool made a .sch

The .sch extension has no single signature because different EDA tools use it for incompatible formats. Open the file in a text editor to identify it: a header of <?xml ...> with an <eagle version="..."> root and a DOCTYPE referencing eagle.dtd means EAGLE 6+ (XML text). A file of nested parentheses starting with (kicad_sch ...) or EESchema is KiCad. Unreadable binary bytes usually mean EAGLE 5 or earlier, OrCAD Capture, or another tool’s proprietary format — those must be opened in the program that wrote them.

What is a SCH file?

A .sch file is an electronic schematic: the circuit diagram of a design, showing components (resistors, ICs, connectors) as symbols and the nets that electrically connect their pins. It is the design-time counterpart to the PCB layout, which most tools store as a .brd file. The schematic captures what connects to what; the board captures where each part physically sits and how the copper is routed. The two are kept in sync.

The essential fact about .sch is that it is not one format. Many EDA (electronic design automation) programs reuse the extension for their own, mutually incompatible file layouts — EAGLE, KiCad, OrCAD Capture, TINA and Qucs among them — so the practical first question is always “which program created this file?” The rest of this article treats the dominant case (EAGLE) in technical detail, then explains how to identify and handle the others honestly, because opening the wrong tool against a .sch simply fails.

The EAGLE schematic and its XML structure

The .sch most people encounter, especially in the Arduino, SparkFun and Adafruit ecosystems, is an EAGLE schematic. EAGLE (Easily Applicable Graphical Layout Editor) was written by the German company CadSoft in 1988 and acquired by Autodesk in 2016. Since EAGLE 6.0 (2011) the .sch file is XML text, which is what makes it readable and importable by other tools. EAGLE 5 and earlier used a proprietary binary .sch that must first be opened in EAGLE and re-saved to get the XML form.

A modern EAGLE .sch opens with an XML declaration, a DOCTYPE pointing at eagle.dtd, and an <eagle> root element:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.6.2">
  <drawing>
    <schematic>
      <libraries> ... device/symbol/package definitions ... </libraries>
      <parts>    ... instantiated components + values ...    </parts>
      <sheets>
        <sheet>
          <instances> ... symbol placements ... </instances>
          <nets>      ... electrical connections ... </nets>
        </sheet>
      </sheets>
    </schematic>
  </drawing>
</eagle>

The structure separates definitions from usage. <libraries> holds the symbol and device definitions the sheet draws from; <parts> lists the actual components placed in the design with their values and attributes; and each <sheet> (a schematic can span several pages) contains the graphical <instances> of those parts plus the <nets> that define which pins are wired together. Because this is text conforming to a published DTD, other EDA tools can parse it, which is the basis for importing EAGLE designs elsewhere.

EAGLE’s end of life and the move to KiCad

A timely, load-bearing fact: Autodesk has discontinued standalone EAGLE. It has been folded into the Electronics workspace of Autodesk Fusion, and the standalone product reached end of life in June 2026, so new EAGLE licences are no longer sold and existing users are being pushed to migrate. This reshapes the advice for opening a .sch.

The practical free path now is KiCad, the actively developed open-source EDA suite. KiCad imports EAGLE projects directly through File › Import › Non-KiCad Project › EAGLE Project, converting the schematic into its own native .kicad_sch. This works on EAGLE 6+ XML files; an old binary EAGLE .sch must be opened in EAGLE once and re-saved as XML before KiCad can read it. Autodesk’s Fusion Electronics workspace also still opens EAGLE designs for those who stay in that ecosystem.

The other .sch formats: KiCad, OrCAD, SPICE tools

Because the extension is contested, a .sch from one tool will not open in another. The reliable way to tell them apart is to look at the raw file in a text editor:

What you seeTool
<eagle version="..."> XML with eagle.dtdEAGLE 6+ (Autodesk)
Nested parentheses, (kicad_sch ...) or an EESchema headerKiCad (legacy .sch; current is .kicad_sch)
Binary / unreadable bytesEAGLE ≤5, OrCAD Capture, TINA, or another proprietary tool

Older KiCad used a text .sch (an S-expression / legacy format); KiCad 6 and later switched the extension to .kicad_sch. OrCAD Capture (Cadence) and PSpice use .sch/.dsn for their own, unrelated schematics, opened only in their tools. Circuit-simulation packages such as TINA and Qucs likewise save .sch in formats specific to them. There is no universal schematic viewer that decodes all of these, because they encode different data models; identify the source first, then use its tool or its documented import path.

The schematic and the board it pairs with

A schematic rarely travels alone. In EAGLE, Fusion and KiCad the .sch is paired with a .brd PCB layout, and the two are kept consistent by forward and back annotation: parts and nets added to the schematic are propagated to the board (and vice versa) so the copper layout always reflects the drawn circuit. This is why the two files are exchanged together as a project. “Converting” a .sch to a .brd is not a file conversion but this generation-and-sync workflow inside the EDA tool.

The most common genuine export is to PDF, for sharing or printing the diagram: EAGLE and Fusion use File › Print/Export to PDF, and in KiCad the schematic editor (Eeschema) plots to PDF via File › Plot. A text editor can display the raw XML of a modern EAGLE .sch, but it shows the markup, not a rendered circuit; seeing the actual diagram requires an EDA tool or a PDF the author exported.

A note on bundled scripts

A modern EAGLE .sch is XML text describing a circuit and contains no executable code, so opening and inspecting it is safe. The one practical caution is unrelated to the schematic file itself: EAGLE and KiCad both support user scripts (EAGLE’s User Language Programs, KiCad’s Python plugins), and a project downloaded from the internet may bundle such script files alongside the .sch. Those scripts, not the schematic, are what you should decline to run from an untrusted source. The .sch is inert data.

References