Skip to content

[feature request] DNP support on sheet level

Description

Right now KiCad supports do not populate (DNP) on a component level as property which is saved in the sheetfile where the component is located. This makes it only partially useful, as in cases where the same sheetfile is used multiple times the DNP part will be present either for each of them or for none. So for example a design with multiple identical transceiver circuits which will be (or not) populated depending on the board revision would need two copies of the same sheetfile for the transceiver circuit, one with all components set to DNP and one normal. The user then would have to switch between the two variants depending on what setup the board is intended to fulfill.

There is already a workaround right now which works with custom bill of material scripts: creating a DNP field in the hierarchical sheets properties will add this as a property to each of the sheets components and to no other sheet which uses the sheetfile for the xml file which is used for most of the BOM generators.

Proposed Changes

I would propose to changes to the DNP handling:

  1. storing the DNP attribute similar to the reference designator so that changes to one sheet do not automatically affect all other sheets as well.
  2. add an new do not populate attribute/checkbox to the sheet properties dialog which sets the attribute for all components inside this sheet

KiCad Version

Application: KiCad x86_64 on x86_64

Version: 7.0.1-3b83917a11~172~ubuntu20.04.1, release build

Libraries:
	wxWidgets 3.2.1
	FreeType 2.10.1
	HarfBuzz 6.0.0
	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: Ubuntu 20.04.6 LTS, 64 bit, Little endian, wxGTK, ubuntu, x11

Build Info:
	Date: Mar 15 2023 03:29:26
	wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.71.0
	OCC: 7.5.2
	Curl: 7.87.0
	ngspice: 38
	Compiler: GCC 9.4.0 with C++ ABI 1013

Build settings:
	KICAD_SPICE=ON