Core Features

Wiring & Routing

ProtoFlow provides powerful wire drawing tools with orthogonal routing, A*-based smart routing, automatic connection detection, and intelligent wire segment editing.

# Drawing Wires

Wires connect component pins together to form electrical nets. ProtoFlow enforces orthogonal (horizontal and vertical) wire segments for clean, professional schematics.

How to Draw a Wire

  1. Press W to activate the wire tool
  2. Click on a component pin or empty space to start the wire
  3. Move the cursor — the wire follows in orthogonal segments (horizontal then vertical, or vice versa)
  4. Click to place a waypoint (bend in the wire)
  5. Double-click or click on another pin to finish the wire
  6. Press Escape to cancel the current wire

Wire Drawing Modes

Orthogonal Mode (Default)

Wires are constrained to horizontal and vertical segments only, creating clean 90-degree bends. This is the standard mode for professional schematics.

Pin-to-Pin Connection

When you start a wire on a pin and end it on another pin, ProtoFlow automatically creates an optimized orthogonal route between them.

[ Screenshot ]

Wire being drawn from one component pin to another with orthogonal routing

# Smart Routing (A* Pathfinding)

ProtoFlow includes an A*-based smart routing engine that automatically finds the best path between two points while avoiding obstacles.

How Smart Routing Works

The routing engine uses the A* pathfinding algorithm with the following optimizations:

  • Obstacle inflation — Components and existing wires have an inflated boundary to prevent overlaps
  • Bend penalty — The algorithm minimizes unnecessary bends for cleaner routes
  • Grid-based pathfinding — Routes are computed on the grid for consistent alignment
  • Existing wire avoidance — New routes avoid crossing or overlapping existing wire segments
  • Orthogonal constraint — All routed segments maintain 90-degree angles

Auto-Routing Status

The status bar shows the current auto-routing status. When smart routing is active, you'll see an indicator confirming the routing engine is processing.

[ Screenshot ]

Smart routing automatically finding a path around components and other wires

# Automatic Connection Detection

ProtoFlow automatically detects and manages connections between wires and component pins, ensuring accurate netlists without manual effort.

Connection Features

  • Pin snapping — Wire endpoints automatically snap to the nearest pin when drawn close enough
  • Wire-to-wire junctions — When a wire endpoint touches another wire, a junction is created automatically
  • Intersection detection — ProtoFlow distinguishes between wire crossings (no connection) and wire junctions (connection)
  • Component attachment — When you move a component, wires attached to its pins move with it
  • Net extraction — Connected pins and wires are grouped into nets using BFS (Breadth-First Search) connectivity analysis

No-Connect Markers

Press N to place a no-connect marker on an unused pin. This tells the DRC that the pin is intentionally left unconnected, suppressing floating pin warnings.

[ Screenshot ]

Automatic junction detection where two wires meet, and a no-connect marker on an unused pin

# Wire Editing

Modify existing wires by editing their segments and waypoints without deleting and redrawing.

Editing Operations

  • Segment dragging — Click and drag a wire segment to move it while maintaining orthogonal constraints
  • Waypoint manipulation — Adjust bend points to change the route of a wire
  • Wire deletion — Select a wire and press Delete to remove it
  • Wire cleanup — The auto-cleanup feature removes redundant wire segments and optimizes routes
  • Dead-end removal — Orphaned wire segments that don't connect to anything are detected and can be removed automatically
[ Screenshot ]

Wire segment being dragged to adjust the route

Next Steps