Breadboard from Blank Parts
Create custom blank parts from scratch and wire an LED circuit on a breadboard.
Goal
Build a simple LED + resistor circuit using blank (custom) parts you create yourself. By the end, you'll understand how to define parts from scratch, add domains and interfaces, place them on the canvas, wire them with a harness, and validate the result with DRC.
Why blank parts?
The Protoboard parts library has hundreds of real-world components, but sometimes you need a part that isn't in the library yet. Blank parts let you model anything (a custom PCB, a passive component, or a prototype module) and still get the full benefit of Protoboard's validation engine.
In this tutorial you'll create two blank parts: an LED and a 220-ohm resistor. These are common passive components that aren't individually cataloged in the library, making them a perfect use case for custom part creation.
Steps
Create a new board
Open Protoboard and click the Project menu in the top-left corner of the top bar. Select New Board. Name it something like "LED Breadboard Circuit".
You'll land on an empty canvas, the infinite 2D workspace where you'll assemble your design.

Create a blank part for the LED
Open the Parts Bin by clicking the cuboid icon in the left sidebar. Instead of searching the library, select the option to create a Blank Part. A new empty part appears on your canvas.

Select the part and open the Inspector panel on the right. Configure the following:
Name: Set it to
LED (Red)Description:
Standard 5mm red LED, forward voltage ~2V, max 20mADomain: Add the Electrical domain
Interface: Add a power input interface with the role set to return (the LED consumes power). This interface should include two functions:
Anode: signal class: power, direction: sinkCathode: signal class: ground, direction: sink
Create a blank part for the 220-ohm resistor
Create another Blank Part from the Parts Bin. Select it and configure in the Inspector:
Name: Set it to
220-ohm ResistorDescription:
220-ohm through-hole resistor for current limitingDomain: Add the Electrical domain
Interface: Add a pass-through interface with two functions:
Terminal A: signal class: power, direction: bidirectionalTerminal B: signal class: power, direction: bidirectional
The resistor acts as a pass-through element: current flows in one terminal and out the other. This is different from the LED, which has a defined polarity (anode/cathode).
Create a harness between the resistor and the LED

Hover near the edge of the 220-ohm Resistor part until a connection handle appears on the edge. Click and drag from that handle toward the LED to create a harness.
What you'll see next depends on whether you configured interfaces in Steps 2 and 3:
Protoboard auto-detects the compatible pair and the harness appears with a PARTIALLY_CONFIGURED or CONFIGURED label. Open the Inspector on the harness to review the proposed interface link pairing the resistor's pass-through interface with the LED's power input interface.
The harness still appears, but it's flagged INCOMPATIBLE in red (see the GIF above). There's nothing for Protoboard to match because the parts have no interfaces yet. Go back to Steps 2 and 3 to configure the interfaces on each part, then re-draw the harness.
If the interfaces are configured but don't auto-match (can happen with very generic definitions), create the interface link manually. Select the harness, open the Inspector, and use the link editor to pair the resistor's Terminal B with the LED's Anode.
Link the interfaces and assign functions
With the harness selected, open the Inspector and look at the interface link detail view. You need to create function links that map individual signals between the two parts:
Map the resistor's Terminal B to the LED's Anode
Map a shared ground reference to the LED's Cathode
This tells Protoboard exactly how current flows: through the resistor, into the LED anode, and out through the cathode to ground.
Run the Design Rule Check (DRC)
Click the Board Review icon (shield icon) in the left sidebar to open the validation panel and run DRC.
If everything is set up correctly, you should see:
CONFIGURED (green) on the harness between the resistor and the LED
If you see issues, here's what they mean:
PARTIALLY_CONFIGURED (amber)
Some function links are missing
Open the harness in Inspector and assign the unmapped functions
NOT_CONFIGURED (red)
The interface link exists but no functions are mapped
You need to create function links (Step 6)
INCOMPATIBLE (red)
The interfaces can't connect
Check that roles are complementary (output/pass-through to input)
What you just learned
Blank part
A custom component you define from scratch when the library doesn't have what you need
Domain
The system category a part belongs to (Electrical, Mechanical, Pneumatic, etc.)
Interface
A connection point on a part that other parts can link to
Function
An individual signal or pin within an interface (like Anode, Cathode, SCL, SDA)
Pass-through
An interface role for components that pass signals through (like resistors, connectors)
Common failures
Next steps
MCU + Sensor + Regulator: Build a real system using library parts (Arduino Uno Rev3 + BME280 + MCP16251T)
Parts: Add / Edit / Custom: Deep dive into part creation and template management
Connections & Compatibility: Understand how Protoboard decides which parts can connect
Last updated

