Ratsnests: less mess

Can you spot any difference between the two images below?  The one on the left is from Fritzing version 0.4.2; the one on the right is from version 0.4.3.

ratsnest comparing

The difference is that in 0.4.2 a ratsnest displays every possible connection in a net.  In 0.4.3 we show only one possible path–one set of connections–through the net.1  What is a ratsnest?  If you already know, then feel free to skip ahead a couple of paragraphs.

A ratsnest displays a set of connected connectors (a “net”), and it can suggest potential paths for routing between those connectors. In the simplest case, if you connect two parts (well, really two connectors) in breadboard view, a ratsnest in PCB view will show that those connectors are connected by drawing a line between them, and thereby suggest where you might draw a trace.This image displays a single net:


In a more complex case, we have multiple connectors connected, but not directly. Here, an individual ratsnest line can act as a “virtual wire”, drawing a line between two connectors that are electrically connected, but not directly wired to each other; for example, the connection between the resistor and the LM358. There are four nets in this image, as you can see from the four different ratsnest colors:

ratsnest colors

Starting with release 0.4.2 and continuing with 0.4.3, we have reimplemented ratsnests in Fritzing. The overall goal was to make them more useful–more like an interface widget than a wire–by adding functionality and improving their diagrammatic quality.   In 0.4.2, we worked on the functionality, and added a couple of features:

  • double-click a ratsnest to create a trace between its connectors
  • delete a ratsnest to electrically isolate its connectors 2

With 0.4.3, we have concentrated on the diagramming–you can see the results in the initial pair of images above.  Clearly PCB and schematic view are more readable, and better suggest where you might want to draw your traces.  Another change is that in 0.4.2, as you drew traces between connectors, ratsnest lines would dim to let you know that that connection had been routed (directly or indirectly).  In 0.4.3, routed ratsnest lines simply disappear (reappearing as necessary as traces are removed).

This leads us to another difference between 0.4.3 and prior versions: “jumper wires” are now obsolete.  Their purpose was to show unrouted connections, which is what ratsnest lines are now doing.  (Note that jumper items are not obsolete, just jumper wires–the former are basically a pair of connectors with nothing in-between, the latter was essentially a Fritzing UI construct).

There are two pleasant side-effects with the new approach.  First, we no longer save ratsnests in sketch files, which means that Fritzing file sizes typically shrink anywhere from twenty to eighty percent.  But do not tremble, your old Fritzing sketches are completely compatible with 0.4.3 (though the old ratsnest lines and jumper wires will be replaced by new ratsnest lines), and if you save the file back out, only its ratsnest and jumper wire elements will change.  The second side-effect is that since the program is no longer keeping track of so many objects, there’s been a noticeable improvement in Fritzing performance.  If any of you were driven to use the “speed hack” in Fritzing 0.4.2, Fritzing 0.4.3 is that fast, or faster.


  • j

PS.  Thanks to Jim Bollensée and Olmo Claessens for permission to use their sketch to illustrate the changes.