PcbNew, auto-swap layer on via

For a 2-layer PCB, F9 mode automatically swaps layers when placing a via; this is a feature I like.

F12 mode does not (F11 mode does not work on my PC). In F12 mode, once I place a via I have to manually swap layer.

Can F12 mode be set up to act like F9 mode when placing vias?

Need more details. First what version of KiCad do you use and what system? Both of these can be answered by using the “Copy Version Info” button in the about window and pasting the results here. For example, this is my version information:

Application: Pcbnew
Version: (5.1.4)-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

(Note, there is a known Windows bug that doesn’t properly report the system info to applications which is why KiCad is reporting Win8 on my Win10 computer.)

Second, how are you placing vias? I ask because I just tried to duplicate your issue on my install and could not replicate your experience.

What I did was while routing a track I pressed the V key (with or without shift works for me) and as soon as I left-clicked to place the via my routing layer changed to the opposite side (2 layer board). I also used the “Place Through Via” contextual menu item with the same results.

Hi

I use the ‘V’ key, like you do.

Application: Pcbnew
Version: (5.1.4)-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 7 (build 7601, Service Pack 1), 32 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 7.3.0 with C++ ABI 1011

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Legacy F9: place via with V
Modern F11 and F12: place via with V and rigth click with the mouse. After clicking you are on the other layer.

With the modern toolsets, V calls the via tool and then with click one places the via, not necessarily in the very same coordinates where V was pressed.

This seems to be a downgrade. For a 2-layer board it would be better as it is in F9 mode (auto-swap). As for "…not necessarily in the very same coordinates where V was pressed, well :upside_down_face: not ideal.

press V and move the mouse. The interactive router continues to run -> this ensures that the via can be placed without DRC violation and you still have control over its placement.
If V would immediately place the via then the via might be placed where you did not expect it to be placed if the current position is blocked by some other feature.


Remember the interactive router is not meant to be used like the old segment by segment (highlight collision) router. It is a semi automatic router. This requires some workflows to change.

Are you sure it is right click? by default it is the left mouse button that places vias. Have you possibly setup your system for a left handed mouse?

1 Like

Yes, you are right. It is a two step action.

  1. Press V (or right click and select Place via from the menu)
  2. Left click to place the via and change layer.

In legacy mode if a via is tried to be placed violating the DRC, pcbnew refuses to place it until you find a free area.

Edit: @Rene_Poschl you were right. I mixed up left and right, sorry.

Thank you for your explanations.

I tried both left and right click:

  • Left click places the via and changes layers.
  • Right click produces the usual context menu.

I think “place via and swap layers when V pressed” should be an option for the user; it might be preferable/faster not to have to click the mouse after pressing V.

2 Likes