Component Status

component-status and do-not-populate are optional statements to modify the on-board and BOM statuses of components.

Syntax

pcb-module my-module:
  inst fuse       : components/manu/broken-fuse
  inst jumper-a   : components/manu/normal-jumper
  inst jumper-b   : components/manu/normal-jumper
  inst jumper-c   : components/manu/normal-jumper
  inst dnp-me     : components/manu/normal-jumper

  component-status(fuse) :
    bom-status = NotInBOM
  component-status(jumper-a) :
    board-status = NotOnBoard
  component-status(jumper-b) :
    bom-status = MarkedDNP
    board-status = OnBoard
  do-not-populate(dnp-me)

Description

component-status(instance-name) : Tells which component inst is affected by the sub-statement(s) below.

Possible sub-statements:

  • bom-status = InBOM|NotInBOM|MarkedDNP|InBOMVariant. InBOM is the default when bom-status is missing.
  • board-status = OnBoard|NotOnBoard|InBoardVariant. OnBoardBOM is the default when board-status is missing.

do-not-populate(instance-name) Mark a component instance as a DNP component. This is equivalent to bom-status = MarkedDNP using component-status(instance-name). do-not-populate always supersedes component-status no matter where they are in the code.

In this example, fuse is [NotInBOM, OnBoard] jumper-a is [InBOM NotOnBoard], jumper-b is [MarkedDNP OnBoard], and jumper-c is [InBOM OnBoard]. dnp-me is [MarkedDNP OnBoard]

There are 2 commands to query the component status of a component instance. do-not-populate?(instance-name) and component-status?(instance-name)

do-not-populate?(instance-name) will return True|False. component-status?(instance-name) will return a Tuple of ComponentBOMStatus and ComponentBoardStatus. for example, [InBOM NotOnBoard]