Table of contents
  1. What a ratsnest is
  2. Before you start
  3. The import steps
  4. Reading the connection hints panel
  5. Fixing the recognition result
  6. Wiring along the dotted lines
  7. Entering connection information directly as JSON
  8. Place as jumpers and rewire
  9. Notices and fixes
  10. Importing accurately from a netlist
  11. Summary

When you copy a schematic from a book or the Internet onto a perfboard, the hardest part is following by eye "which pin has to connect to which pin", one at a time. Patterndo's schematic import reads the connection information from a schematic photo and draws connection hints (a ratsnest) as dotted lines between pins on the board. A person just wires along the dotted lines, which greatly reduces the mistake of missing a pin while reading the drawing. This article covers the steps to use it, how to fix the recognition result, how to enter connection information directly as JSON, and the causes when it does not work. For how to read schematics, check Reading Schematic Symbols first.

What a ratsnest is

A ratsnest is a technique, widely used in circuit board design tools, that shows pins not yet wired but which must be connected, with thin lines. In Patterndo, pins that belong to the same net are joined with dotted lines of the same color. Even if a net has many pins, it does not draw lines between every pin and draws only the minimum dotted lines that connect most shortly, so even the power net of a 16-pin IC does not look complicated.

Before you start

  1. Place the parts on the board first. Put on the board a part for each part in the schematic (ICs, resistors, LEDs, and so on) and set the pins to fit the holes (Getting Started with Patterndo).
  2. Matching part numbers is handy. If you put numbers like the schematic's U1 and R1 in the number field of the properties panel, they pair up automatically.
  3. Prepare the image. Use a schematic photo or screenshot (PNG, JPG), and use the table below to get it into a readable state.
Easy-to-read imageHard-to-read image
A drawing in crisp black lines on a white backgroundA blurry, tilted, shadowed photo
A digital schematic with ICs drawn as rectangular boxes with pin numbersAn analog drawing with curves and diagonals
Lines run only horizontally and vertically, with dots (●) at junctionsLines run diagonally or cross without dots
Part numbers written near the boxesText that overlaps or is very small

Recognition reads only horizontal and vertical lines, so diagonal wires are not recognized. The image is shrunk so that one side is 1600 pixels or less. Title and explanatory text lines at the top of the drawing are cut off automatically, and areas painted with a highlighter are erased before reading.

The import steps

  1. From the More (⋯) menu on the top bar, choose Import schematic or netlist, or search for "schematic" in Ctrl+K command search.
  2. Click the dotted box in the window to pick a file, or drag a file onto the box. It accepts schematic images (PNG, JPG) and netlists (KiCad, the Protel format from EasyEDA and Altium, PADS, SPICE, JSON). With the window open, you can paste a schematic screenshot straight in with Ctrl+V.
  3. Wait until the "Reading the schematic…" indicator disappears. It usually takes a few seconds, and it stops with a timeout if it goes over 16 seconds.
  4. The Connection hints panel opens at the bottom of the board and dotted lines appear over the board.

Automatic photo recognition is a draft that reads IC boxes, IEC resistor symbols (small rectangles), the two plates of a capacitor, and junction dots. Crossings without a dot are not connected, and zigzag resistor symbols are not read yet. Always check the result by eye, and when accuracy matters, use one of the methods in "Importing accurately from a netlist" below.

Reading the connection hints panel

ElementWhat it does
Select, Connect, EraseSwitch tools. Explained in detail below
Undo, RedoUndo and reapply hint edits one step at a time
Hide VCC/GNDHides the dotted lines of power nets named VCC, VDD, GND, VSS, 0V, 5V, 9V so you see only signal lines
ImageShows or hides the imported schematic image inside the panel
Collapse, Other fileFolds the panel away to see more of the board, or loads another schematic or netlist
Place missing partsPlaces parts that are in the schematic but not on the board into free spots and pairs them in one go
JSONDownloads the current connection information as the file schematic-netlist.json
Place as jumpers and rewireSee "Place as jumpers and rewire" below
CloseEnds the connection hints and clears them all

The top line of the panel shows nets done, ratsnest lines left, and parts matched, with a progress bar. The list shows each net with a color box, its name, and the connected pins (as part number.pin, like R1.2 and LED1.A), and the mark on the right tells you its state. ✓ means the net is fully connected on the board, a number is how many ratsnest lines are left, something like "3/4" means some pins have no board part yet, and a red ⚠ is a possible short where the net is joined to another net on the board. Click a net to highlight its dotted lines and pins and dim the rest.

Fixing the recognition result

Pairing parts

Under the list, Board matching has a select box for each schematic part, with the paired board part on the right. Automatic matching compares part number, model name, value, and type, and picks the most similar part. If the pairing is wrong or says "(none)", pick the right board part yourself in the box. Multiple units inside one IC, like U3A and U3B of a 74LS00, are paired to the same board IC.

Fixing connections

After choosing a tool, click a pin on the board or a pin in the image.

  • Link: click one pin and then another and the two pins become the same net. If a pin already belongs to another net, the two nets merge into one. The first pin blinks with a yellow ring, and Esc cancels it.
  • Erase: click a pin or a dotted line and that pin leaves the net. If only one pin is left in a net, the net disappears.
  • Select: the tool you start with. You can edit the board as usual, and clicking a dotted line highlights its net.

If you clicked wrong, press Undo. If a pin number was misread, just reconnect based on the board's pin.

Wiring along the dotted lines

  1. Check that every pin of every part has a dotted line connected.
  2. Start with the signal lines and draw along the dotted lines with the W wire tool. If you hid power, show it at the end and check.
  3. Once a connection is really wired, its dotted line disappears and a ✓ appears next to the net. The dotted lines that remain are exactly the missing connections.
  4. Handle places that must cross with jumpers (Wiring Methods Compared).

After wiring, turn on simulation to check that it does the same thing (Using Patterndo Simulation).

Entering connection information directly as JSON

If the image is hard to read, you can write the connection information as a JSON file yourself and load it in the same window. You only have to write up a few lines of the schematic, so for small circuits this method is more accurate.

{
  "version": 1,
  "parts": [
    { "ref": "U1", "model": "74LS00" },
    { "ref": "R1", "value": "330", "type": "Resistor" },
    { "ref": "LED1", "type": "LED" }
  ],
  "nets": [
    { "name": "N1", "nodes": [ { "ref": "U1", "pin": "3" }, { "ref": "R1", "pin": "1" } ] },
    { "name": "N2", "nodes": [ { "ref": "R1", "pin": "2" }, { "ref": "LED1", "pin": "A" } ] }
  ]
}
ItemRule
versionMust be 1
partsThe parts list. ref (the part number) is required; value, model (IC model), and type are optional
netsThe nets list. name is the net name and nodes is the list of pins to connect
nodesref is a part number that exists in parts (case-insensitive) and pin is the pin name

Pin names must match those used in the editor. For ICs use pin numbers (1, 2, 3…), for resistors 1 and 2, and for LEDs and diodes A and K. For transistors, use the pin roles (E, B, C) set in the properties. A net in which two or more parts and pins cannot be found is skipped, and if the version is different or parts and nets are missing, you get notices like "This is not a schematic JSON" and "Unsupported schematic JSON version". The file downloaded with the panel's JSON button has the same format, so you can edit it and load it again.

Place as jumpers and rewire

The Place as jumpers and rewire button places a jumper on the board for each hint dotted line and then opens the auto-rewire window. It is meant to have auto-rewire redraw those connections as copper wiring (Using Auto-Rewire). If there is a net that would tie power and ground into one line, it says "This would tie VCC and GND into one line" and does not place it.

Notices and fixes

MessageCauseFix
Could not find the IC box as line segments. Connect directly in the imageThe IC was not recognized as a rectangleCheck the box is a closed line, and click the pins in the image to connect directly
There are too many IC boxes. Check the connection hints onceMore than 12 IC boxes were picked upSplit the drawing and import only part of it at a time
Could barely read the part numbers from the photoText recognition failedThe part numbers are already matched with the board, so check Board matching
Could barely find any junction dots. Check the crossing connections onceThe junction dots (●) are small or missingCheck by hand whether the crossings are connected and fix them
Schematic extraction timed outThe image is too complex or largeCrop or shrink the image and try again
Could not read the imageA damaged or unsupported fileSave it again as PNG or JPG
There are no jumpers to place. Check the board part matching and netsNo board parts are pairedAssign parts in the Board matching boxes

Importing accurately from a netlist

A more accurate route than photo recognition is a netlist exported by a schematic program. A netlist spells out the parts and pin connections as text, so nothing can be misread.

  • KiCad: in the schematic editor, use File → Export → Netlist to make a .net file. It includes pin function names (A and K, E, B, and C), so polarized parts pair up correctly too.
  • EasyEDA, Altium, DipTrace: choose the Protel (Tango) format when exporting the netlist. The PADS format is accepted as well.
  • SPICE tools such as LTspice: save the netlist to a file, or copy and paste it. Node 0 becomes GND.
  • Convert a photo with AI: press [Copy AI instructions] in the window, send them to a chat AI together with the schematic photo, and paste the JSON answer into the paste box.

If you write one by hand, put one net per line like this and paste it in.

VCC: U1.8 U1.4 R1.1
GND: U1.1 C1.- D1.K
OUT: U1.3 R3.1

Parts that are in the netlist but not on the board can be placed into free spots in one go with Place missing parts. The IC pin count comes from the largest pin number in the nets, and if the model name matches a built-in IC, it is placed as that model.

Summary

Schematic and netlist import is a helper that shows the connections read from a photo or a netlist as dotted lines (a ratsnest), and erases each line once it is wired so only the remaining connections show. Photo recognition is a draft; a netlist is the most accurate. Check and fix the board matching and connections by eye, and then wire along the dotted lines by hand. The overall order for moving a drawing onto a board is explained in Moving a Schematic onto Perfboard in 7 Steps.

This article is general guidance for learning purposes. Specifications and pinouts differ between parts, so check the datasheet of the part you use before real work. For safety-related work, read the cautions for each item first.