# How to know if all airwaves have been routed

**URL:** <https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449>\
**Category:** PCB Design\
**Created:** [February 10, 2016, 11:50pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449 "2016-02-10T23:50:51Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 10, 2016, 11:50pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/1 "2016-02-10T23:50:51Z")

</div>

On two Eagle boards now I’ve missed routing a few airwires and didn’t see it until after the PCB came back from the manufacturer and I was in making some modifications. Is there a way in Eagle to highlight/list any unrouted airwires?

Also, in both cases the airwires were for GND pins which should have been automatically been rats-nested as I have top & bottom ground planes. Perhaps some routes had accidentally isolated the pin from the ground plane, but it seems odd. In cases like that, how can I tell which pin on the airwire isn’t grounded? Naturally, the pin has an airwire to the nearest other GND-level pin, but there’s no way to tell which pin on either end of the airwire is the one that isn’t connected to the GND plane.

---

<div class="post-metadata">

**Author:** ![Ross\_Robotics](https://avatars.discourse-cdn.com/v4/letter/r/cc9497/32.png) [@Ross\_Robotics](https://community.sparkfun.com/u/Ross_Robotics)\
**Post date:** [February 11, 2016, 2:25am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/2 "2016-02-11T02:25:24Z")

</div>

I use the layer tool. Just deselect all the layers besides the unrouted layer.

This usually happens when the ground plane doesn’t have clearance between pins or devices to reach the intended connection. Use vias and move components around to make sure the planes make the desired connections.

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 11, 2016, 2:48am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/3 "2016-02-11T02:48:33Z")

</div>

> Ross Robotics:  
> I use the layer tool. Just deselect all the layers besides the unrouted layer.
> 
> This usually happens when the ground plane doesn’t have clearance between pins or devices to reach the intended connection. Use vias and move components around to make sure the planes make the desired connections.

One of the parts is through hole but one is an SMD - are you saying that if I deselect the top layer (where the SMD is on the bottom) I could tell that it was that part which wasn’t grounded?

What’s odd is that when I run the ratsnest command and look at the GND areas it looks like the pin is connected to the ground plane …

---

<div class="post-metadata">

**Author:** ![darrellg](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/darrellg/32/3334_2.png) [@darrellg](https://community.sparkfun.com/u/darrellg)\
**Post date:** [February 11, 2016, 5:36pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/4 "2016-02-11T17:36:03Z")

</div>

Doesn’t DRC catch unrouted wires?

---

<div class="post-metadata">

**Author:** ![Ross\_Robotics](https://avatars.discourse-cdn.com/v4/letter/r/cc9497/32.png) [@Ross\_Robotics](https://community.sparkfun.com/u/Ross_Robotics)\
**Post date:** [February 11, 2016, 6:52pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/5 "2016-02-11T18:52:49Z")

</div>

Can you attach your eagle files? Younwill have to zip them then attach the zip file.

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 12, 2016, 12:43am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/6 "2016-02-12T00:43:10Z")

</div>



---

<div class="post-metadata">

**Author:** ![ezflyr](https://avatars.discourse-cdn.com/v4/letter/e/2bfe46/32.png) [@ezflyr](https://community.sparkfun.com/u/ezflyr)\
**Post date:** [February 12, 2016, 2:43pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/7 "2016-02-12T14:43:03Z")

</div>

> darrellg:  
> Doesn’t DRC catch unrouted wires?

Hi,

Hmmm, no apparently not! I just took a completed board, unrouted a single connection, and ran DRC. DRC did not have any problem with the unroute 😢

This seems like a real ‘gotcha’, and something to be very wary about!

Tested with Eagle v6.6.0

John

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 12, 2016, 3:22pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/8 "2016-02-12T15:22:50Z")

</div>

I’m using v7.5.0 and same thing - DRC check shows nothing (and I run DRC after all changes on a nearly completed board). I vaguely remember that way earlier versions did warn about unrouted traces, but I can’t remember how far back that would be.

---

<div class="post-metadata">

**Author:** ![darrellg](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/darrellg/32/3334_2.png) [@darrellg](https://community.sparkfun.com/u/darrellg)\
**Post date:** [February 12, 2016, 6:05pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/9 "2016-02-12T18:05:52Z")

</div>

There is a forum thread at [https://www.element14.com/community/thr … hread=true](https://www.element14.com/community/thread/4712/l/board-drc-supposed-to-generate-errorswarnings-on-unrouted-nets?displayFullThread=true) where this was discussed and regarding the DRC finding unrouted wires, someone from Cadsoft responded that “Clearly this is not desirable.”

OK.

I disagree.

---

<div class="post-metadata">

**Author:** ![skimask](https://avatars.discourse-cdn.com/v4/letter/s/f6c823/32.png) [@skimask](https://community.sparkfun.com/u/skimask)\
**Post date:** [February 12, 2016, 8:08pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/10 "2016-02-12T20:08:17Z")

</div>

Tools / Ratsnest

If all the routes are routed, it’ll say “Nothing to do”. Otherwise, it’ll say something like “2 unrouted”.

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 12, 2016, 8:54pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/11 "2016-02-12T20:54:46Z")

</div>

> skimask:  
> Tools / Ratsnest
> 
> If all the routes are routed, it’ll say “Nothing to do”. Otherwise, it’ll say something like “2 unrouted”.

Where does it say that?

EDIT: Never mind, just saw the message in the bottom left.

---

<div class="post-metadata">

**Author:** ![skimask](https://avatars.discourse-cdn.com/v4/letter/s/f6c823/32.png) [@skimask](https://community.sparkfun.com/u/skimask)\
**Post date:** [February 13, 2016, 1:17am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/12 "2016-02-13T01:17:00Z")

</div>

Guess I should’ve mentioned that…

Shows up in the lower/left of the screen in the status bar thing.

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 13, 2016, 1:33am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/13 "2016-02-13T01:33:17Z")

</div>

> skimask:  
> Guess I should’ve mentioned that…
> 
> Shows up in the lower/left of the screen in the status bar thing.

That certainly helps now that I know to look for it, thanks skimask. There's a ULP to zoom in on the first unrouted airwire but I can't figure out how to assign that to a custom button in the board layout editor.

---

<div class="post-metadata">

**Author:** ![skimask](https://avatars.discourse-cdn.com/v4/letter/s/f6c823/32.png) [@skimask](https://community.sparkfun.com/u/skimask)\
**Post date:** [February 13, 2016, 5:16am UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/14 "2016-02-13T05:16:37Z")

</div>

I’ve been using it for years. One of those key combo’s that’s almost become a single keystroke.

Alt-T, R …one smooth motion…-ish…

---

<div class="post-metadata">

**Author:** ![RossWaddell](https://avatars.discourse-cdn.com/v4/letter/r/bc79bd/32.png) [@RossWaddell](https://community.sparkfun.com/u/RossWaddell)\
**Post date:** [February 14, 2016, 5:50pm UTC](https://community.sparkfun.com/t/how-to-know-if-all-airwaves-have-been-routed/32449/15 "2016-02-14T17:50:13Z")

</div>

I grabbed the .ulp for zooming in on the first unrouted airwire but Eagle doesn’t like the space in the path on my Mac when assigning a key combo:

/Users/Ross/Dropbox/eagle/Custom Files/ulp\_RW/zoom-unrouted.ulp

I don’t know Unix/Linux so how do I assign this to a key combo?

EDIT:

This command at least doesn’t throw an ‘unrecognized command’ error, but it just opens up the ULP folder and doesn’t run the specified file:

run ulp /Users/Ross/Dropbox/eagle/Custom\ Files/ulp\_RW/zoom-unrouted.ulp

I’d rather do this with a button, but I haven’t found any examples which use ULP instead of a script.
