Is it possible to have the Eagle autorouter swap gates or pins on parts allowing such exchanges to untangle traces ?

  • \$\begingroup\$ Yes, as is clearly described in the documentation. \$\endgroup\$ – Olin Lathrop Mar 24 '15 at 13:14
  • \$\begingroup\$ I do not find that, maybe you misunderstood the question like Tom Carpenter? \$\endgroup\$ – dronus Mar 26 '15 at 18:57
  • \$\begingroup\$ Once again, the answer to your question is "Yes". And, I just checked, and it is both clearly documented and works as documented. Do HELP PINSWAP. \$\endgroup\$ – Olin Lathrop Mar 26 '15 at 19:16
  • \$\begingroup\$ Care to say where you found the information? The only information I can find that has pinswap and the autorouter together is a forum post from 2006 which says that the autorouter can't swap the pins automatically. Now a lot will have changed in 9 years, it would useful for everyone to know where you found the info. \$\endgroup\$ – Tom Carpenter Mar 26 '15 at 19:26
  • \$\begingroup\$ "The PINSWAP command is used to swap pins within the same symbol which have been allocated the same swaplevel (> 0). Swaplevel, see PIN command. If a board is tied to a schematic via Back Annotation two pads can only be swapped if the related pins are swappable. On a board without a schematic this command permits two pads in the same package to be swapped. The Swaplevel is not checked in this case. Wires attached to the swapped pins are moved with the pins so that short circuits may appear. Please perform the DRC and correct possible errors. " Where does it mention the autorouter? \$\endgroup\$ – Tom Carpenter Mar 26 '15 at 19:38

Indeed this is possible.

If you have groups of pins (e.g. on I/O pins on a uC, or the inputs of a logic gate) that are able to be swapped, then what you do is edit your library component to tell the schematic symbol which pins can be swapped with which.

In the library editor, open your symbol. If you go to the properties of any of the pins in that symbol, you will see a setting called 'Swap Level'. A non-zero value means that any pin with that value can be swapped with another pin with the same non-zero value. E.g. an AND gate with two inputs could have both inputs set to have a swap-level of 1, allowing both to be switched. If you have multiple groups of pins, just set each group to a different swap level.

Once you have set your swap levels, saved, and updated the library in your schematic. You can then swap the pins as you please. You will see a button which shows an AND gate with an arrow pointing to both inputs, which when you hover over it is titled 'Pinswap'. Alternatively you can type pinswap into the command bar to enable the tool. Simply click on the first pin you want to swap, and then the second. If both pins you select have the same swap level, the two connections will be reversed for you in the schematic.

Once you have swapped the pins, you may find you have to tidy up the schematic/layout as the wires/traces directly connected to the pins will be moved so they connect to the new pin.


Somehow I misread your question. I don't think the autorouter has the capability to change your design - TBH it would be quite a dangerous feature if for example you have a symbol with pinswap enabled but you didn't want those pins swapping.

I think the best way to achieve what you want is to try autorouting then look at the results, if you see that the routing would be simpler with pins swapped then rip up the traces around the affected pins, manually swap the pins and then either run the autorouter again to finish things off or route those traces manually.

  • \$\begingroup\$ Ok, so the answer would be 'it is not possible' I guess. Thanks! \$\endgroup\$ – dronus Mar 26 '15 at 18:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.