Cannot move previously locked footprint with block selection?


I’m on Ubuntu 14.04, using kicad Version: (2017-11-13 revision d98fc85)-master, release build. Here is what I’m doing:

(EDIT: Removed rant about first time user)

  • Start kicad
  • File/New/Project from Template…
  • In the “New Project Folder” dialog, enter location, say /tmp/xx
  • Next, you get Project Template Selector dialog:

    Here, choose the “Raspberry Pi HAT” one ( that one is )
  • Once the project is created in KiCad, click the “PCB layout editor” button, so PCBnew is opened (I’m using View/Legacy Canvas for the entirety of this post)
  • In PCBnew, make sure you’re using the selection tool, then make a rectangular/block selection around the PCB; when you release the left mouse button, accept all of the default Block Operations settings by pressing Enter (or clicking OK):
  • Move the selection somewhere else, then left-click again to confirm the move
  • Notice that all of the PCB moved - except for the pin header, which did not move:
  • At this point, click in the area of the unmoved pin header, until you can see the selection info on the bottom of the window say “Footprint J3”; then, without moving the mouse (so it hovers at the same location), press m to move - kicad will say alert with “Footprint J3 found, but it is locked”

So far, so good - at least things make sense - the footrpint J3 did not move, because it is locked. Do Ctrl-Z first to undo the move, then let’s try unlock it:

  • Left-click on the J3 footprint area until you can see the selection info on the bottom of the window say “Footprint J3”; then right-click, and from the context menu, choose Footprint J3…, and then Edit Parameters:
  • On the Footprint Properties dialog, change the Move and Place setting from “Lock footprint” to “Free”, and click OK:
  • Now, try again making a block selection of the entire PCB as previously, and try moving the block - the pin header, again, does not move:
  • But, now if you left-click on footprint J3 until J3 becomes selected, and then if you press m to move the component, it actually does move?!

So, apparenty now J3 is not locked anymore, since I can move it around with m while not getting a message about it being locked - but still, I cannot move it with a block selection - why does this happen? And how can I have the J3 footprint move with everything else in a block selection?

Getting a list of all footprints used in a PCB?

Ok, I think I figured it out - the problem was that the component J3, that didn’t move with the rest, is defined as “Board side” “Back”, whereas all other components seem to be “Board side” “Front”.

I had also noticed that, when I change the J3 component from “Move and Place”: “Lock footprint” to “Move and Place”:“Free”, then save the PCB, then close PCBnew, then reopen the PCB design, then check the J3 Footprint properties again, it has “Move and Place” set on “Lock pads”, not on “Free” as I previously saved it with; not sure why this happens, since there is no keyword like ‘locked’ or ‘placed’ in the .kicad_pcb (which, I believe, controls those properies) - but apparently, that was not the cause of the block selection move problem.

So, this is how I can finally perform the move - here is the imgur post with all images :

  • Open the PCB, open the Footprint Properties of J3, make sure “move and place” is not set to “Lock footprint” (“Free” or “Lock pads” is fine); and change “Board Side” from “Back” to “Front”:
  • As soon as you’ve made that change, note that the J3 pads become slightly offset
  • Zoom out, make a block selection, press Enter to accept default settings, start moving - notice now the pads are drawn as moving with the rest
  • When you release the mouse, notice that might get some white ratsnest lines, though they are, apparently, “fakes” (though they don’t disappear with plain zoom in/zoom out - only if you do a block selection over them)
  • The PCB layout has been moved, but the pads of J3 are still wrongly offset - no problem, just show the Footprint Properties of J3, and change “Board Side” from “Front” to “Back”:
  • Yup, the PCB layout is now moved, and J3 is in its correct Board Side state (Back), and its pads are correctly offset - the block select move procedure can be declared done!

So, I guess this is it - although, it is good to ask: is this all there is to it to doing a PCB layout block selection move?

Also: is there an easier way to perform such a block select move, without the need to manually change footprint properties?