LPC824 pin swap

Hi all,
I am using Kicad in an open project (everything is open and only open
source tools used). In this case there is a NXP LPC824 microcontroller.
The LPC824 has a switch matrix that can connect any internal function to
almost any pin. In this way should be possible simplify the PCB layout
but of course it has to be possible to swap pins.

Is there any preferred/optimum way to do that in Kicad?


There is only one way, as you move back and forth between EEschema (has the linking of pin function and pin number) and PCBnew (has the layout to pin assignment)… you wind up with a proprietary symbol for the MCU.

You place the MCU symbol in the schematic (with basic function/pin number assignment) and wire it up with all the other devices.
Then you start on the layout and if anything doesn’t work nicely you go back to the schematic and change the symbols function/pin number assignment and then back to pcbnew (with a new netlist).

For a QFN33… you really don’t like vias, don’t you? :wink:

Is there any functionality to swap pins for swappable gates as may be the 4 gates in a 7400?

I work with FPGAs and it seems I spend all my time swapping pins, so here’s what I do:

  1. I name every net that goes to/from the FPGA to other parts of the schematic.
  2. I attach a global label for each net directly to an FPGA pin (no wire between them).
  3. When I have to reassign pins, I move the label from one FPGA pin to a new pin, and take the label that was there and move it to the old pin. Because there’s no wire between the label and the pin, I don’t have to worry about disconnecting the label or re-routing the wire so it’s a lot easier.
  4. Finally, I rebuild the netlist and export it to pcbnew.

I suppose this would work for a microcontroller with peripheral pin assignment capabilities.


Yes, it could work and means that Kicad has no pin swap capability…

If you would like pin swapping in a future version you can add your voice here https://bugs.launchpad.net/kicad/+bug/593944. It is always useful to add use cases so people can understand the requirements.

1 Like