DATASHEET variable not recognised

In a text box (in any sheet), entering ${refdes:VALUE} works, entering ${refdes:DATASHEET} does not. Is the expected evaluation? I expected the sheet name of the component referenced in ${refdes}.

This link seems to imply it works as expected - but it doesn’t for me. Wazzup?

Thoughts and insights please.


Application: KiCad Schematic Editor x64 on x64
Version: 8.0.3, release build
Libraries:
wxWidgets 3.2.4
FreeType 2.12.1
HarfBuzz 8.3.0
FontConfig 2.14.2
libcurl/8.5.0-DEV Schannel zlib/1.3
Platform: Windows 11 (build 22631), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) Iris(R) Xe Graphics, 4.6.0 - Build 31.0.101.5186
Build Info:
Date: Jun 3 2024 19:04:47
wxWidgets: 3.2.4 (wchar_t,wx containers)
Boost: 1.83.0
OCC: 7.8.1
Curl: 8.5.0-DEV
ngspice: 42
Compiler: Visual C++ 1939 without C++ ABI

That post is about a 8.99 nightly build. You have 8.0.3. So you have to wait until v9.

Ah, OK, fair enough. I’ll wait for v9 then. I take that in my example therefore this is not currently the expected evaluation? - ie. the getting the sheet name of ${refdes} is not supported.

refdes is a common, but not an offical “KiCad” name.

And for the rest, watch your syntax. For me, in KiCad V8.0.3 using: ${REFERENCE} or ${DATASHEET} seems to work

Yes. Thx Paul. ${REFERENCE} or ${DATASHEET} work for me too - but the prefix of ${refdes:…} does not (for DATASHEET). Is that odd or do I not understand the syntax correctly?

I was a bit confused by your syntax, so I looked it up in the manual:

<refdes>:<fieldname> Contents of field <fieldname> in symbol <refdes>.

Both built-in and user-defined fields are available. Built-in fields use all uppercase letters: for example, to access the value of U1, use ${U1:VALUE}.


Built-in symbol fields are DATASHEET, DESCRIPTION, DNP, EXCLUDE_FROM_BOARD, EXCLUDE_FROM_BOM, EXCLUDE_FROM_SIM, FOOTPRINT, FOOTPRINT_LIBRARY, FOOTPRINT_NAME, NET_CLASS(<pin_number>), NET_NAME(<pin_number>), OP, PIN_NAME(<pin_number>), REFERENCE, SHORT_NET_NAME(<pin_number>), SYMBOL_DESCRIPTION, SYMBOL_KEYWORDS, SYMBOL_LIBRARY, SYMBOL_NAME, UNIT, VALUE.


So apparently something close to the syntax you used is supported, but you don’t have to use the literal text refdes, but you have to put in the actual reference of the part you want to use.

Hmm. Yes, I use CAPS. Perhaps an example would help.

${R210:DKREF} (${R210:REFERENCE} ) results in the text output of:

*R3 (R210)

which is correct.
[Note ‘*R3’ is my text in the symbol field ‘DKREF’]

${R210:DKREF} (${R210:REFERENCE} in ${R210:DATASHEET}) results in the text output of:

*R3 (R210 in )

which is obviously not correct.

When the sheet gets re-annotated all the references to R210 get correctly updated - which was very satisfying to see that KiCad had this in the bag long ago.