Is it just me? Footprint preview remains on second symbol placement but footprint is not selected

Before I go make the bug report, I wanted to ask if it’s just me, or is this the expected behavior?

Situation:

Let’s say I want two resistors when wiring up some pull-ups/pull-downs. I click add component, type “r” into the search. Select the SMD footprint I want (1608 metric hand soldered in this case) and click ok and place it. Then click again to add the second resistor. The “r” is still in the search box, resistor is still selected, I still see the footprint preview in the preview window, which makes me think the footprint is still selected, too. I click ok, and can go do this for quite some time before realizing that no… those symbols added after the first footprint being manually selected never had any footprints assigned to them because even though the preview showed the footprint I wanted and all my other input was preserved, that footprint selection was NOT preserved. Now I have to go back and assign footprints for everything I thought had a footprint but didn’t.

Does this happen to anyone else? Is this the expected behavior? Cause I really wish it would just leave the footprint selected like the search box and the symbol which are both still input/selected.

Here’s a screenshot of adding a third resistor. This is immediately after clicking add component after having just added a resistor and having selected the footprint. Notice it says “No default footprint” indicating no footprint is selected, but it also shows the previously placed symbol’s selected footprint preview. Why?

This happens to me after any symbol is added with a selected footprint, and I attempt to add another of the same component.

Ooo… I just noticed that “Place repeated copies” check box… I’ll use that in the future, but this behavior is still confusing. If the footprint field is cleared, the footprint preview should be cleared as well.

Update: Just realized that this previously selected footprint preview comes back even after placing other components. I placed a few SPDT switches and went back to put another resistor. typed “r” in the search bar, and there’s that footprint preview again even though no footprint is currently selected.

Update 2: Just realized it’s connected to the “-- Recently Used --” list. If I select the “R” in the “-- Already Placed --” list, the preview disappears and says “No footprint specified” … this makes me think this is a bug. Furthermore, it does not happen for the screw terminal, but it does happen for the resistor… strange.

The screw terminal is similar to the resistor. If you click the drop-down, there’s a long list of options, but there is not a default. However, unlike the resistor, the screw terminal in the recently placed list does not have the previously selected footprint preview appear. It is blank and says no default footprint. A SPDT switch has no footprints in the drop-down, so I do not expect it to have any preview ever, and indeed nothing shows. As far as I’ve seen, this only happens with resistors, which means there is no pattern being followed that I can tell.

I’d like to reiterate that the issue is that there is a preview of the previously selected footprint while no footprint is selected. In other situations, even with resistors not in the recent list at the top of the component list, if no footprint is selected, the preview is blank, not displaying something that was used in the past.

In which library is the screw terminal?

I misread your comments.
It appears you do have a bug. I cannot duplicate your bug

Please post your Kicad version.
Find it by opening Kicad, go to Help > About Kicad. Top RH corner click “copy version info” and paste into a forum post.
My version that will not duplicate your bug is:

Application: KiCad Schematic Editor x86_64 on x86_64

Version: 9.0.2-9.0.2-0~ubuntu22.04.1, release build

Libraries:
wxWidgets 3.2.1
FreeType 2.11.1
HarfBuzz 2.7.4
FontConfig 2.13.1
libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.19

Platform: Linux Mint 21.3, 64 bit, Little endian, wxGTK, X11, cinnamon, x11
OpenGL: Mesa, NV106, 4.3 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.3

Build Info:
Date: May 7 2025 21:51:58
wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.74.0
OCC: 7.5.1
Curl: 7.81.0
ngspice: 43
Compiler: GCC 11.4.0 with C++ ABI 1016
KICAD_IPC_API=ON

Locale:
Lang: en_AU
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

Thanks for checking. I always paste my version info in bug reports, but if you mean that you’re curious as to which version I’m using, I’l happily share that with you. I’ll report the bug as soon as I’m done here.

Application: KiCad Schematic Editor x64 on x64

Version: 9.0.2, release build

Libraries:
wxWidgets 3.2.6
FreeType 2.13.3
HarfBuzz 10.2.0
FontConfig 2.15.0
libcurl/8.11.1-DEV Schannel zlib/1.3.1

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) HD Graphics 5500, 4.4.0 - Build 20.19.15.5058

Build Info:
Date: May 7 2025 02:29:49
wxWidgets: 3.2.6 (wchar_t,wx containers)
Boost: 1.86.0
OCC: 7.8.1
Curl: 8.11.1-DEV
ngspice: 44
Compiler: Visual C++ 1942 without C++ ABI
KICAD_IPC_API=ON

Locale:
Lang: en_GB
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

I removed an earlier post of mine, for thread clarity, which had nothing to do with your bug.

As soon as I use the A hotkey, the previously added symbol with either the default footprint or a selected footprint shows in the window.
When I select a new or same symbol, if that symbol has a default footprint, the new footprint shows. If the same or new symbol has no default footprint, the footprint box is empty.

In the case of “Recently used”: If the symbol has no default footprint, no footprint shows in the footprint box, even after I have assigned a footprint to that symbol.

I am using Linux mint. Your bug does not occur.

Maybe users of other Operating Systems can test to see if the fault occurs for them.

Thanks for your help and testing. I just posted the bug report:

I added a video and I’ve since tried with other components. Capacitors and inductors at least show the same behavior. It must be Windows and that “-- Recently Used --” list.

If you’re curious, you can see how the preview clears and comes back as I click off of the Recently Used and back to it. This has caused me some missing footprints more than once, but I finally took the time to try and figure out why.

@JustTryingToWork

Your video does not seem to work, please check Sorry, my error.

The text of your issue seems to deal with “Recently used”, but your “steps to reproduce” deal with placing a new symbol/footprint. This may cause confusion for the readers.

I also edited my above post to include “recently used” observations.

Yes, it does not occur until after a first symbol has been placed so that the recently used list appears, but I’ll try to clarify that point.

In either case, I believe the video will make everything crystal clear.

Update: Ok, I edited it a bit more to make sure the procedure is intended to make the previously used symbol appear in the Recently Used list and that is the footprint preview we see right away.

Thanks for the suggestion. I’m going to leave it at this for now and see if any of the devs have trouble understanding what is happening. My guess is it’ll be a quick fix. If I knew the code base, I’d just go fix it myself and issue the pull request, but I just don’t know it. It’s a huge project, and I’m impressed anyone can manage it. I’m just a solo embedded firmware programmer myself. I’ve played around with PC programming in the past, but it’s a big messy monster.

1 Like

I see the same behavior in KiCad V8.0.9 and it looks like a bug to me.

What I did was:

  1. a to add a new symbol from the symbol chooser.
  2. Select a resistor, it does not have a default footprint.
  3. Select a footprint for the resistor.
  4. [OK] and place the resistor.
  5. Click to get to the “Choose symbol again”.
  6. The resistor is pre selected as the last added symbol.
  7. The “No default footprint” shows in the drop down box.
  8. The footprint preview still has the preview from the previous resistor.

Steps 7. and 8.are inconsistent with each other and this does look like a bug to me. KiCad should either clear the footprint preview too, or also remember which footprint was selected last in the drop down box.

The reason I’ve never seen this before is because I never use the symbol chooser in this way. If I want more resistors, (or GND symbols or whatever) I just hover over an existing symbol in the schematic editor and press [Ctrl + d] to duplicate it. This also duplicates all filled in fields such as footprint and value. (All except RefDes that is).

Application: KiCad Schematic Editor x86_64 on x86_64

Version: 8.0.9-8.0.9-0~ubuntu20.04.1, release build

Libraries:
	wxWidgets 3.2.2
	FreeType 2.10.1
	HarfBuzz 2.6.4
	FontConfig 2.13.1
	libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3

Platform: Linux Mint 20.3, 64 bit, Little endian, wxGTK, X11, xfce, x11
OpenGL: AMD, AMD RENOIR (DRM 3.42.0, 5.15.0-139-generic, LLVM 12.0.0), 4.6 (Compatibility Profile) Mesa 21.2.6

Build Info:
	Date: Feb 19 2025 14:25:13
	wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.71.0
	OCC: 7.6.3
	Curl: 7.68.0
	ngspice: 43
	Compiler: GCC 9.4.0 with C++ ABI 1013

Build settings:

Yet I cannot reproduce the fault. All I ever get is a black square with the words “No footprint specified”.
I don’t think remembering a footprint for a symbol with no specified footprint is a good idea; too easy to assign the wrong footprint. I think it is much better to go the duplicate route.

Interesting. I see you’re on Linux Mint, too. I was thinking it was part of the system api for windows code, but I guess it’s probably just in the recently used list code for KiCAD.

Thanks for checking and replicating the bug. Oh, and for the ctrl-d tip. I’ll try it out. I got burned by copy and paste enough times that I don’t tend to bother with it any more.

What sort of problems did you have with Copy & Paste?

It tends to copy the internal reference IDs as well, and then netlists get all mixed up and the only way to fix it is a mix of reannotating and a couple of updates to PCB via the schematic with different checkboxes selected in each update. It’s just not worth the headaches. Maybe this was due to copy and pasting in the pcb editor. I just avoid copy and paste in all cases involving KiCAD at this point.

The multi-channel function was a little buggy the last time I tried it, but it looks promising. I’ll give it another go after another update or two.

Duplicate seems to be working very well on my current PCB. The netlists all look good.

Oh… my last edit turns out to be wrong. I found the problem. Resistors got attached to the 3.3v line by accident due to spacing problems. Duplicate is still viable.

On MacOS I’m getting the same issue, noting that ‘Place repeated copies’ must be unselected in Step 5 , otherwise I get new copies to place which is as it should be. If ‘Place repeated copies’ is selected, it works until I click escape, to stop and then click again I’ll get the same issue as you described.

@ JustTryingToWork glad you figured this out as it has annoyed me for some time but I also just delt with it rather than figuring out if it was just me.

1 Like

I did a little research and found some possible bug locations, but I’m not set up to compile KiCAD at the moment. If anyone where can compile the code, I posted a possible fix on the bug report through the assistance of ChatGPT.

I think there could be a better way to prevent the bug if the lib_id were properly cleared when it needs to be, but this check in the code should suppress the bug if ChatGPT is correct. Try it out if you want. If I find the time, I’ll compile and report back, but that’s a big if.