Skip to content

1.0.0-beta.12 Public Beta

Pre-release
Pre-release

Choose a tag to compare

@potatobeanradio potatobeanradio released this 06 Sep 07:01
· 41 commits to main since this release

Twelfth public beta.

New Import Component (Symbol + Footprint) Command

  • File ▸ Import ▸ Component… takes a folder, scans it, and offers a ranked list of what it
    can read. One cell comes out — symbol, footprint and the pin-to-pad map that joins them, so a symbol
    pin and the layout pad at that index are the same terminal. Density variants become layout views;
    named thermal pads survive.
  • Nine formats read: .kicad_sym, .kicad_mod, .lib, .lbr, the .p/.d/.c
    triple, .hkp, .PLX/.DSL, .cxf and .scr.
  • A part instance is numbered from the prefix its library statesU1, not X1.
  • Pin names from an imported symbol are drawn, with a per-instance override on the context menu, and
    a name sits on the edge its pin sits on rather than straddling its own lead.
  • Scanning a large folder shows progress and can be cancelled, and says when it stopped early
    instead of reporting a short list that looks like a small folder.

Improved Command Line + MCP Server Support

  • Every verb answers --json. One JSON document on stdout and nothing else — results, the
    loadpull table, refusals and diagnostics included. A failed run still emits a document, so a caller
    never has to tell "no output" apart from "output I could not parse".
  • Create a correct document headlessly. circuitrf new workspace <dir>, new cell <ws> <name> and
    import part <file> --into <dir>. Each calls the same code the New Workspace / New Cell / Import
    Component dialogs call, and every default is the default those dialogs open on — so what you get
    headlessly is what you would have got by clicking.
  • circuitrf check <path> — is it well formed, does it resolve, is it sound? Runs no analysis and
    writes nothing, so it is safe after every edit, on a read-only tree, and on a workspace you have open
    in the app. Point it at a workspace, a cell folder or one file. Every finding comes from a validator
    the application itself uses, so a design that passes here is not refused when you open it.
  • circuitrf explain <path> — what did circuitRF decide? Which technology, which layout, which
    analysis chain and for which verb, what an expression evaluates to in the design's own scope
    (--expr), and where a relative reference lands (--ref). It reports the walk as well as the
    answer, since resolution here is a series of walk-ups. A sweep is reported in base SI with its unit
    and its scale.
  • circuitrf read <path> hands back a .npy, a Touchstone file or one of circuitRF's own documents
    as JSON.
  • circuitrf reference serves the reference pages plus a catalogue of every netlist primitive with
    its terminals and its parameters — generated from the running build, never transcribed, so it cannot
    drift from what the engine actually accepts.
  • circuitrf serve --root <dir> speaks a protocol over stdin/stdout so an external client can reach
    those verbs directly, confined to one directory. It calls the same verbs a shell does; nothing is
    reachable there that is not reachable from your terminal.
  • Run verbs now refuse an option they do not read. lp x.cnl --maxmix 3 used to answer
    File not found: 3 — the dropped flag's value became the input path — and dc x.cnl --set Vg=1 ran
    silently without the override, answering a different question than the one asked.

Borrowing a cell from another project

  • Referencing a cell brings in just that cell, not the entire workspace. It opens, places and
    drags like any other cell, marked with the network glyph and with its own filter toggle.
  • Removing a reference really removes it, and a reference that breaks can be put back:
    Re-reference Cell… on a broken instance searches the likely places first, and one undo entry
    repairs every instance carrying that reference.
  • A technology disagreement is a dialog with buttons, not prose: use theirs for this layout, for the
    whole workspace, or copy the cell in. A workspace with no technology adopts theirs with no clicks.
    Only the layers the referenced cell actually occupies are compared, so two projects sharing a metal
    stack are no longer refused over documentation layers.
  • Dropping a large referenced cell no longer freezes the window — about a minute on a real library
    cell, now 32 ms — and the Add Cell dialog opens immediately rather than after the scan.
  • A broken instance is findable at board extents. Its placeholder was under a pixel on a 100 mm
    board; thousands of them also went from 382 ms a frame to 15 ms.

Vias, layout and schematic editing

  • Blind and buried vias export as blind and buried vias. Every writer took the pad's copper and the
    opposite outer copper, so a blind via left circuitRF as a hole drilled clean through the board,
    silently. Vias drawn in the editor also exported with no annular ring, or flashed their pad into the
    drill file.
  • A blind via imports as a blind via — and an imported board's vias resolve a span at all, through
    vias included. A via stating no layer pair takes the outermost copper, which is what it means.
  • The Via tool refuses a layer no via entry claims, instead of placing a via that draws perfectly and
    is inert in DRC, in EM and in every export.
  • A port dragged to another face of a pad names the face it landed on — and stays clickable where it
    now is. Rotate was never at fault; the port was never being selected.
  • Right-clicking empty schematic canvas offers Pop Out; there was no context menu there at all.
  • Design ▸ Place Cell Instance… (Ctrl/Cmd+Shift+I) places a cell in a schematic or a layout, and the
    picker lists referenced cells too. View now sits beside Window on the menu bar.
  • A symbol drawn after the cell editor was open can be made primary without restarting.

Workspaces, files and updates

  • A workspace opens with its panels already in place, instead of snapping into position at the very
    end of a long open.
  • The empty document area shows the Welcome icon rather than No documents open.
  • Save Workspace As copies the workspace folder — cells, technologies and documents — and switches
    this window to the copy. It was an ordinary file picker writing a single file nothing looks for.
  • A model file placed in an unsaved schematic stays found. Thirty seconds in, the first autosave
    silently re-based every relative reference on the recovery folder, so a SPICE model, a Touchstone file
    or a cell reference resolved into a directory nothing had been pointed at and that is deleted on exit.
  • After an automatic update on macOS, workspaces under ~/Documents open. They were refused with the
    protected-folder message until you quit and launched again; the update handed over in a way that left
    the system's permission grant naming the bundle it had just replaced.
  • Closing an undocked document's last tab closes its window.
  • Release notes cover the versions you skipped. Updates only ever offer the newest release, so a
    machine left off while two went out never saw the middle one's notes.

Documentation

  • Every component's terminal order is documented, with a note wherever the order matters — the dot
    convention on coupled inductors, a taper's two widths, the direction an I() measurement is signed
    against. A third of the library was showing net 1 is terminal 1, which is a placeholder, not a fact.