circuitRF Reference Guide

Importing a schematic

A schematic drawn in another editor, read as a new cell with its own schematic, or dropped straight into one you have open — its resistors, capacitors and inductors as circuitRF's own parts, everything else as the source's own symbol, and its connectivity checked every time.

What can be imported

Format Files What is read
.kicad_sch .kicad_sch the sheet and every sheet it places; the file carries its own symbols, so nothing else is looked up
EDIF 2.0.0 .edf, .edn, .edif the pages, the symbols, and the nets the file declares
binary .DSN design .dsn versions 2.0 and 3.2 of the compound-file design format, hierarchy included in 3.2, and the nets the file declares

A file is recognised by what is in it, not by its name. A .dsn that is a kit symbol or a board-routing file is not mistaken for a design.

Three ways in

File ▸ Import ▸ Schematic… makes a new cell. The dialog reads the file as soon as you pick it and shows:

Field
Source the file, its format and version, and its pages or sheets
Into folder where the cell goes; the workspace, or the folder you started from
Cell name the file's name, until you change it
Code page EDIF and binary .DSN only: how text that is not UTF-8 is decoded (1252 unless you say otherwise)
Parts every part — Ref, Symbol, Value, what it Becomes — and a Symbol cell box to keep one as the source's symbol
Ports each connector and global port the design draws, with a box to make it a circuitRF Port

Below them is the schematic the import will write, and its connectivity verdict. Nothing is written until you press Import.

Drop the file onto an open schematic and the circuit is built there, its top-left corner at the drop point, as one undo step, with no dialog: every part goes where the table below sends it, and no Port is made. Instance names, net labels and variables the schematic already uses are renamed. Any symbol cells are written beside that schematic's cell. Save the schematic first: an unsaved one has nowhere to put them.

Drop it onto a folder or the workspace in the project tree and the dialog opens, importing into that folder.

A picture dropped on a schematic is placed as a picture. Only a schematic file becomes circuitry.

What each part becomes

A part becomes one of circuitRF's own components only where the source makes it certain:

Becomes When
R, C, L a two-pin part whose symbol is named as one (R, RES, RESISTOR, C, CAP, CAPACITOR, CP, CP1, L, IND, INDUCTOR, alone or followed by _ or a space and more) and whose reference starts with exactly that letter
Bead a two-pin part whose reference starts with FB and whose symbol is named FB, BEAD, FERRITE, or Ferrite_Bead and more. Its value, such as 220R/1A, is the impedance the bead is sold by and becomes Rp. L and Cp are not in the source, so until you set them the bead is just its Rdc
Vdc a supply connector: a two-pin part with one pin named for ground and the other for a voltage (5V, +12V, 3V3). It becomes a DC source of that voltage, its + on the voltage pin
R, C or L with its footprint a symbol named after its land pattern, such as R-0603 or C-1210; or an R, C or L whose footprint property names a chip land pattern, such as RESC1005X038L or R_0603_1608Metric
ground a ground symbol, and any net named GND, GROUND, EARTH or 0

Everything else comes in as the source's own symbol: a symbol cell. A reference such as RB1 is not R, so that part stays a symbol cell even though its symbol is a resistor. To keep any R, L or C as its symbol, tick its Symbol cell box.

Values are read as written — 10k, 4k7, 2R2, 100nF, 1.5 nH — and a rating after a slash is ignored: 100nF/10V is 100 nF. A value that does not read as the part's quantity, a word or a bare number with no unit or multiplier, becomes a global variable named <Ref>_<parameter> (R1_R), with the source's text in the import's report. Its default is 1 kΩ, 1 nF or 1 nH; for a part marked not fitted it is an open — 1 GΩ, 0.01 pF or 1 H. Set the variable to the value you meant.

A footprint property's size is metric when it is an IPC-7351 name. RESC1005X038L is a 1.0 × 0.5 mm resistor, the 0402 case, and its last letter is the density level: the part's Footprint becomes smt:0402@L. Any text before or after the name, such as a library prefix, is ignored.

A supply rail is a net, never a source. +5V stays a net named +5V; circuitRF adds no supply for it. Only a connector whose own pins name the voltage and ground becomes a source.

Symbol cells, and why they do not simulate yet

Each distinct symbol becomes one cell, holding the source's drawing as its symbol, in a folder beside the new cell named after the file: amp.kicad_sch puts them in amp_parts/. A part with several units, such as a dual op-amp, becomes one cell per unit. Import the same file again, or a second design that uses the same symbol, and an identical cell is reused; a different cell of the same name is refused, naming both.

A symbol cell has no model. It is the source's picture of a transistor or an IC with nothing behind its pins, so check reports it and a simulation refuses to run until you give it one: a schematic of its own, an S-parameter file, or a model. circuitRF does not invent electrical behaviour the source did not state.

To give one a schematic, add a schematic to its cell. A new schematic in a cell that has a symbol starts with one Pin for each of the symbol's pins, its Num the pin's number and its Name the pin's name, so each symbol pin already connects to its own Pin. Wire your model to those Pins, including the ground pin: an amplifier drawn with in, GND and out needs all three. A cell whose Pins do not match its symbol's pins also refuses to run, and the message says which Pins it needs.

Test points are left out of a run. A part whose reference starts with TP, and any other symbol cell with a single pin, is drawn as usual with its Disable set to Open, so it neither needs a model nor takes part in a simulation. The report lists them. Set Disable back to None on any you want to include.

Ports

Nothing becomes a circuitRF Port unless you say so, because which connector is an RF port is your decision. The Ports list offers only connectors that can be one: a signal pin, and at most one other net off ground for its reference. A header carrying several signals is not offered. Tick one in the list and:

Ports are numbered in the order the list shows them. With at least one, the import adds an S-parameter analysis, SP1, from 100 MHz to 6 GHz, which you can change like any other. See Pin, Port and Term.

Pages, sheets and the drawing

The connectivity check

Every import compares the circuit it built with the source: which pins are joined to which. When the format declares its nets (EDIF and the binary .DSN) it is compared with those as well as with the drawing.

Matched means every pin is joined to exactly the pins the source joins it to. Otherwise the report names the pins — joined in the source, split in the import, or the other way round — and the cell is still written, so you can see where. When a file's declared nets disagree with its own drawing, the report says that instead: the file contradicts itself, and no import can settle which is right.

The report goes to Messages — the parts mapped, the cells written or reused, anything left out and why, and the verdict. A drop reports in one line, with Details… for the rest.

When a file is refused

A refused import writes nothing. The reasons you may see:

From the command line

$ circuitrf import schematic <file> --into <workspace-or-dir> [--cell N] [--port <ref-or-net>]...
                                  [--symbol-cell <ref>]... [--codepage N] [--list]

The same import the dialog runs, with the dialog's defaults: the cell is named after the file and no Port is made. --port names each one, a connector's reference or a net's name, in port order; --symbol-cell keeps a part as its symbol; --list prints the pages, the parts and the port candidates and writes nothing.

$ circuitrf import schematic matching.kicad_sch --into ~/designs/Amp --port J1 --port J2
/home/you/designs/Amp/matching
/home/you/designs/Amp/matching/schematic/matching.csch

The paths written are printed on stdout; the report goes to stderr. It exits 1 when the connectivity check is not matched, with the cell written, so a script does not mistake a mismatch for success. See the CLI. An agent connected over MCP imports with the import tool, what=schematic.