Component Library

Search Embedr's library of verified hardware components, see what a record contains, install a part's symbol, footprint, 3D model and .zen package into your project, and check footprints against your board maker.

The component library is Embedr's catalog of published hardware parts. Each record ties a real part (manufacturer, part number, package) to the files a board needs: a .zen package, KiCad symbol and footprint, 3D model and datasheet. The agent searches it before choosing parts and installs parts into your pcb/ workspace, so schematics use real pins and footprints instead of guessed ones.

You use the library through the agent. There is no separate browsing screen; each step appears as a row in the chat timeline.

Row What happens
Search components Searches published parts.
Component record Reads one part's full record.
Component asset Fetches one asset, such as a footprint or datasheet.
Install component Installs the part's package into your project.
Component asset files Saves a single asset file into the project.
Search component knowledge / Read component knowledge / Ask component knowledge Searches or asks the part's indexed datasheets and notes.

Ask in plain words, by part number, or both:

Find a 3.3 V LDO regulator in SOT-23-5 that can supply 300 mA.
Search the component library for BME280. I need a PCB-ready part with a datasheet.

The agent can search by description, component id, alias, package or manufacturer part number, and can narrow results:

  • Category, such as Connector.
  • Mounting: surface mount or through-hole.
  • Must have: PCB-ready assets, a breadboard view, a datasheet, or sourcing information.

The result card lists up to eight matches. Each shows the part name, then id • manufacturer • part number • package • mounting, then a short description.

Explicit requirements are respected: a part number, contact count or mounting style must match. A part that is only mentioned in another part's datasheet is not a match. When nothing qualifies, the card says "No published components matched the request." rather than offering unrelated substitutes, and the agent moves on to datasheet and web research.

In Plan Mode the agent does not search the library or compare parts; it records the parts you want in the spec and researches them when you implement it.

What a record contains

Component record shows the part's Component, Manufacturer (name • part number), Category, Package (package • mounting) and Readiness, then Assets, Description and the full Structured Record.

A record can include:

  • Identity: id, name, version, manufacturer, part number, category, package, mounting style and description.
  • Pins: number, name, signal, direction, type, voltage and protocols, with a note on pins that need care (boot straps, pins to avoid).
  • Design constraints: datasheet requirements such as decoupling or layout rules, each with its severity, affected pins and source.
  • Readiness: a score, whether the part is PCB-ready, and what is missing if it is not.
  • Package contents: the .zen module name and its public pins, plus the files it installs, each with a checksum.
  • Extra sections on request: datasheet, sourcing, variants, firmware notes, .zen documentation and PCB validation.

Assets

Asset File
KiCad symbol .kicad_sym
KiCad footprint .kicad_mod
3D model .step, .stp or .wrl
.zen package, snippet or generated source .zen
.zen documentation or summary .md
Datasheet .pdf, plus an indexed Markdown version
Breadboard view .svg
Photos and images image files
Validation report .json

Datasheet knowledge

Many parts have indexed datasheets and versioned implementation notes. Ask questions such as "What decoupling does the BME280 datasheet require?" and the agent answers from the indexed pages. Ask component knowledge needs you to be signed in. If a part has no indexed datasheet, the agent says so and falls back to other sources.

Each linked document records what it describes: the bare chip, a display panel, a module, a carrier board, a connector or a whole system. A chip's package drawing does not give the dimensions of a breakout module built around it; for module or board outlines, the agent looks for the module maker's own drawing or CAD. See Datasheets for your own datasheets.

Install a component

Ask the agent to install a part ("Install the BME280 from the library into this project"). You need a PCB workspace first; without one the row says "An initialized PCB workspace is required before installing a component."

  1. The agent finds the part and reads its record.
  2. Install component downloads the package files and checks each against its published checksum.
  3. Before anything is kept, Embedr syncs dependencies, builds the package and test-imports it into your board on a scratch copy. The row reports "Dependency sync, module build and exact board import passed …". If the check fails, your previous files are restored.
  4. The row reports "Installed … as a local PCB component package" with the exact line to add to your board source.
  5. The agent adds that line and an instance of the part to your .zen file, syncs dependencies (Sync PCB dependencies) and builds the board.

The package lands in pcb/components/<component-id>/:

pcb/
  main.zen
  components/
    bosch-bme280/
      BME280.zen
      ...symbol, footprint and 3D model files
.embedr/
  component-assets.json

The board source then uses it, for example:

BME280 = Module("./components/bosch-bme280/BME280.zen")

BME280(name="U2", VDD=VCC_3V3, GND=GND, SDA=I2C_SDA, SCL=I2C_SCL)

The pin names come from the part's package; the agent reads them from the record.

Installing does not edit your board file or embedr.yaml by itself. When a project has several boards, the agent installs for the board selected in pcb/pcb.toml unless it names another.

Reinstalling and your edits

.embedr/component-assets.json records every installed file with its source and checksum. On a reinstall:

  • files that already match are left alone,
  • files Embedr installed and you have not changed are replaced,
  • files you have edited are never overwritten: the install stops with "Refusing to overwrite a modified component file: …".

Keep component-assets.json in the project. It is included when you share a project.

Fabrication fit

Each installed footprint is checked pad by pad against your board maker's limits:

Check Compared with
Copper narrower than the minimum feature width Minimum track width
Slot narrower than the minimum slot width Minimum slot width
Hole smaller than the minimum hole Minimum via drill
Annular ring below the minimum Minimum annular ring (plated through-holes)

The limits come from the process recorded for your board (see Placement and routing), or PCBWay's standard 2-layer process when none is recorded. A footprint that does not fit adds a line such as:

This footprint will fail the board's pcbway-standard-2layer-1oz process: SOT-23-5 pad 2:
copper narrower than the minimum feature width (0.1 mm, needs 0.127 mm). Choose another
package or footprint, or confirm the fabricator can build it, before placing it.

The part is still installed; the finding is advice. Up to five problems are spelled out.

Components in embedr.yaml

The project manifest has components: and connections: lists. They are separate from the library install above and are used by the embedr CLI's local parts catalog:

components:
  - id: led-5mm
    version: latest
    instance: led1

connections:
  - from: {component: led1, pin: Anode}
    to: {component: resistor-through-hole, pin: "1"}
    wire_color: red
  • components: id (required), version (default latest), instance (optional name).
  • connections: from and to, each a component and pin, plus an optional wire_color.

embedr search, embedr add <id>, embedr remove <id> and embedr list work with these entries. Use them for wiring tables and early planning; use .zen source for the real schematic. See Project manifest and CLI reference.

Working with the agent

Good requests name the part's role and any hard requirements:

Use the component library for every part on this board. I need an ESP32-S3 module,
a USB-C receptacle (16-pin, SMD), a 3.3 V regulator and a status LED. Install them
and wire them in pcb/main.zen.
Check the pins of the installed BME280 against src/sensors.cpp before wiring it.
The footprint for J1 failed the fabrication check. Find an alternative connector
with the same pinout that fits our PCBWay process.

When the library has no suitable part, the agent says so and researches the part from datasheets and the web instead. Parts that do not come from the library have not been through its checks, so review their pins and footprints closely.