Simplify placing multiple labels

Placing labels could be easier, esp. when they’re rotated and/or there are many in a row.

When you create a label, you need to: click, type name, hit Enter, mirror or rotate label as required, click again to finally place it.
When you create the next label, you need to do exactly the same sequence of steps.

If you want to place 40 labels in a row, e.g. on a large connector, this is tedious and error-prone.

Possible improvements:

  1. kicad could remember the previous label’s orientation as it is placed, and auto-apply it to the next label(s).
    I know that it remembers the dialog settings, but frankly I have a hard time remembering whether “top” means that the contact is on top of the text, or the text is on top of the contact …
  2. When the first click lands on an open contact, kicad should remember and not require the second click.
  3. When I do that sequence twice and there’s a third open contact in line with the first two (and on the same [type of] symbol), kicad should immediately open another dialog for that third open end. And so on, until the label dialog is cancelled.

The net effect of all this is that annotating a 40-wire connector requires two mouse clicks – instead of 80.

Learn to use KiCad and it’s shortcuts effectively.

Try this:

  1. Place a label on the topmost pin of your connector.
  2. Press (and hold down) the [Ins] key.

This generates a column of labels, and if the label name ends in a number, then the number is auto-incremented. It is possible to change the direction (in X and Y step sizes in which this auto repeat works in **Eeschema / Preferences / Preferences / Eeschema / Horizontal (& vertical) pitch of repeated items:" I never change that option though. 100mils vertical is the default and most logical to me. If I (seldom) want a row of horizontally placed labels, I first make a column of them in an empty area (for example even outside the “drawing paper”), and then drag a rectangle around them and use block move , rotate , mirror to get the whole row where I want it.

For a row of labels that occur often, (For example a databus with D0 through D7) I leave those labels in a “scratchpad” area and make a (block) copy and put them on each IC.

For single labels that already exist, I simply hover over an existing label and press c for copy. I use copy a lot in Eeschema. I usually get the first decoupling capacitor (resistor) from the library, then assign a footprint and value, and for all other resistors, capacitors Power & GND symbols I just hover over the nearest symbol and press c for copy.

I also use these block move operations for modifying schematic symbols. Assume for a moment you want to use a microcontroller in your project, and that uC is in KiCad’s libraries, but the ports are located in inconvenient locations. Simply drag a box around a whole I/O port and then move / rotate / mirror it and place it where you want it.

Euhm, it already does this.

Indeed. so why ask?

This is a long existing (small) annoyance of me too. I find it illogical, and therefore unintuitive. There are several dialogs in KiCad where it mixes up “left” & “right” and “Top” and “Bottom”. More about this in:

I agree with this. When a label is placed on a wire or a pin attachment point, then it could readily accept that location immediately after the label info is entered. However, for normal net labels, I use the L shortcut which directly pops up the label dialog, and no location is known, so you have to put it in a location anyway.

You can also make mouse movements with the arrow keys on the keyboard. This is handy when placing some labels (or other items) that are close together. For labels for example, just hit the [Down Key] twice to place the next label two grid points below the previous label you placed.

Such an auto repeat can also go quite wrong. Where does it stop? If it places too many labels, you could remove them later, but this is a backwards operation and very prone to mistakes. It is just too easy to forget to remove the extra labels, and this leads to faults in the schematic. When you have a lot of identical labels, It usually is better to connect all the pins with a wire and place one label on the net. This is visually a lot easier to check than to check if all the label names are exactly the same.

Because it’s nonintuitive and a better solution is possible: remember the final orienation of the previous label, not the settings of the dialog when it was last open.

At the point where you cancel the dialog. Obviously I was not clear enough. My idea is to auto-open a new label dialog, the user enters the label text for this label and presses Enter, kicad notices that auto-placing is intended and opens the dialog for the (singular!) next label.

The process stops when you decide not to place a label, i.e. cancel the dialog / press Escape.

Placing a lot of labels in a column and naming them all differently is not a very common action, and therefore not worth much effort to automate.

I can see some merit in KiCad remembering the final orientation of the last placed label, but it would make KiCad less powerful, and also more confusing to use. This will undoubtedly lead to questions on the forum of “why do the settings I entered in that dialog change?”
The current way IS intuitive and straight forward. Kicad places the label in the orientation you set in the dialog. Simple as that. If you want a certain orientation for a lot of labels, then set the properties of that dialog.

I think you mean that every time you’ve placed a label then a dialog for placing a new label pops up.
I can see how this would make it a bit quicker, but it also confusing to people because you loose the visual feedback that the previous label is actually placed.

Another quick workaround is to place one label, and give it the name “asdf” (This is a key string which I use for anything temporary) and then insert a lot of them by holding the [Ins] key.


  1. Go back to the first bogus label.
  2. Press e to edit it.
  3. Type a sensible name, hit [Enter].
  4. press the down arrow twice to go to the label below it (or set your grid to 100 mils) and one arrow down)
  5. Press e to edit it.
  6. Repeat for the others.

This method is quick & easy and does not require any change in KiCad. Starting off with a bogus label name helps in preventing silly mistakes form happening. If there are left overs, they’re easily recognized and removed later.

Overall, I think you’re focusing here on breadcrumbs far to insignificant to spend more effort in.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.