For the complete documentation index, see llms.txt. This page is also available as Markdown.

Error Code Catalog

Catalog of common DRC issues with causes, severity, and fix patterns for fast troubleshooting.

This page is a quick-reference catalog of the most common Design Rule Check (DRC) issues you will encounter in Protoboard. For each issue you will find its severity, what causes it, and how to fix it.

Protoboard does not use numeric error codes. Issues are identified by their category and description in Board Review. This catalog groups them by the underlying problem pattern so you can look up what you are seeing.


Connection Errors

Protocol Type Mismatch

Severity

Error

State

INCOMPATIBLE

Description

Two interfaces are linked but their protocol.type values do not match.

Common Cause

Manually linking an I2C interface to an SPI interface, or using a custom protocol name that does not match the other part.

Fix

Remove the link and connect interfaces with matching protocol types. If the parts should be compatible, check whether one of them uses a non-standard protocol name (e.g., "serial" instead of "uart") and update the definition.

Role Incompatibility

Severity

Error

State

INCOMPATIBLE

Description

Both sides of the link have the same role (e.g., both master) or roles that are not a recognized compatible pair.

Common Cause

Connecting two microcontrollers via I2C where both are defined as master, or connecting two sensors that are both slave.

Fix

One side must play the complementary role. For I2C, one part must be master and the other slave. For power, one must be output and the other input. Check the role compatibility table for valid pairings.

Voltage Domain Mismatch

Severity

Error

State

INCOMPATIBLE

Description

The interface has requires_matching_voltage_domain: true but the power domains on each side have non-overlapping voltage ranges.

Common Cause

Connecting a 3.3V-only sensor directly to a 12V logic output without level shifting.

Fix

Either add a level shifter between the parts, power the sensor from a compatible voltage rail, or verify that the part definition's power domain ranges are correct.


Allocation Errors

Missing Resource Allocation

Severity

Error

State

PARTIALLY_CONFIGURED or NOT_CONFIGURED

Description

An interface link exists but one or more required functions have no resource allocated to them.

Common Cause

The harness was created and interfaces were linked, but resource allocation was not completed, either automatically (because no resource provides the needed function) or manually.

Fix

Open the harness detail and allocate resources for each unbound function. If no suitable resource exists, the part definition may be missing a resource with that function name.

Resource Over-Allocation

Severity

Error

State

INCOMPATIBLE

Description

The same resource has been claimed by two or more exclusive interfaces simultaneously.

Common Cause

A pin that serves as both I2C SDA and analog input is allocated to an I2C interface and an analog interface at the same time, but shareable_with does not allow this.

Fix

Deallocate one of the conflicting interfaces and choose a different resource for it. If the resource genuinely supports both uses simultaneously, add shareable_with to the resource's function definitions.

Capacity Exceeded

Severity

Error

State

INCOMPATIBLE

Description

An interface instance has more connections than its max_connections constraint allows.

Common Cause

Connecting 12 I2C slaves to a bus that has max_connections: 8, or daisy-chaining too many devices off a single power output.

Fix

Reduce the number of connections to this interface instance. For I2C, split devices across multiple buses. For power, add additional power outputs or use a distribution board.

Max Instances Exceeded

Severity

Error

State

INCOMPATIBLE

Description

More interface instances have been created than the max_instances field allows.

Common Cause

A microcontroller with max_instances: 1 on its I2C master interface, but the design tries to create two I2C bus connections.

Fix

Reduce the number of instances to the limit, or use a different part that supports more instances of the protocol.


Incomplete Configuration Warnings

Unlinked Interface in Harness

Severity

Warning

State

NOT_CONFIGURED

Description

A harness exists between two parts but contains interface pairs that were discovered as compatible yet have not been linked.

Common Cause

Auto-linking was not triggered, or the user explicitly chose not to link certain interfaces.

Fix

Open the harness and review the available interface pairs. Link any that should be connected, or dismiss the warning if the unlinking is intentional.

Incomplete Function Linking

Severity

Warning

State

PARTIALLY_CONFIGURED

Description

An interface link is active but not all of its required functions have been allocated to resources.

Common Cause

An SPI interface requires MOSI, MISO, SCK, and SS, but only three of the four have been allocated, perhaps because the SS pin is already claimed by another interface.

Fix

Complete the allocation by assigning resources to the remaining functions. If the needed resource is already taken, resolve the conflict first.

Unconnected Part

Severity

Warning

State

N/A (part-level)

Description

A part is placed on the canvas but has no harnesses connecting it to any other part.

Common Cause

The part was placed for planning purposes but has not been wired yet, or a harness was accidentally deleted.

Fix

Connect the part to the relevant parts in your design, or remove it if it was placed in error.


Design Rule Violations

Part Design Rule Triggered

Severity

Warning (may escalate to Error for safety-critical rules)

State

N/A (part-level)

Description

A rule from the part's design_rules array is flagged based on the current configuration.

Examples

"Maximum 40mA per I/O pin" when a high-draw device is connected to a GPIO. "VIN must be 7-12V when using external power" when the supply voltage range does not overlap.

Fix

Review the design rule text and adjust your design accordingly. These rules come from the part's datasheet and represent real hardware limitations.

Power Budget Exceeded

Severity

Error

State

N/A (part-level or board-level)

Description

The total current draw from a power domain or power output exceeds its max_current_mA rating.

Common Cause

Too many high-draw devices connected to a single regulated output (e.g., 6 servos on a 500 mA 5V rail).

Fix

Reduce the load, add an external power supply, or use a power distribution board. Check each connected device's current requirements and ensure the sum stays within budget.


Quick Diagnosis Table

Symptom
Likely Issue
Where to Look

Red edge on canvas

INCOMPATIBLE link: protocol, role, or constraint mismatch

Board Review > Errors

Yellow edge on canvas

PARTIALLY_CONFIGURED: incomplete allocation

Harness detail panel

Gray edge on canvas

NOT_CONFIGURED: no allocation performed

Harness detail panel

Part has error badge

Design rule or power budget violation

Board Review > By Part

"No compatible interfaces" message

Protocol or role mismatch between parts

Check both part definitions

Auto-link did not fire

Resources unavailable or already allocated

Check resource utilization


Troubleshooting Checklist

1

Check protocol names

Both interfaces must use the exact same protocol.type string. Common mistakes: "serial" vs "uart", "thread_adapter" vs "pneumatic".

2

Check role compatibility

Roles must form a recognized pair. Use the compatibility table to verify.

3

Check resource availability

Each required function needs an unallocated resource providing that function. If all matching resources are already claimed, the allocation will fail.

4

Check constraints

Look at max_connections, requires_matching_voltage_domain, and any custom constraint fields. A single failed constraint makes the link INCOMPATIBLE.

5

Check power domains

If voltage domain matching is required, verify that the power domains on both sides have overlapping voltage_range_V values.

6

Review Board Review output

Open Board Review for the full error and warning list with specific harness, interface, and resource identification.

Last updated