[Update XML][Fixed] Error when using "Exclude from BoM" (KiCad 6)

- Parity for these components can't be checked. KiCad 7 fixes it.
  Now we just print a warning.
- Also fixes *exclude_from_bom* mismatch on KiCad 7
- Also fixes *Sheetfile* mismatch on KiCad 7 when testing from different
  directory

Fixes #486
This commit is contained in:
Salvador E. Tropea 2023-08-30 09:22:01 -03:00
parent f77c71a49b
commit 572204a5b2
14 changed files with 1037 additions and 10 deletions

View File

@ -41,6 +41,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Blender export:
- Rotations are now applied to the current view, not just the top view
- Board/components not visible for small boards (See #484)
- update_xml with check_pcb_parity enabled:
- Avoid errors for KiCad 6 using "Exclude from BoM" components.
This limitation isn't found on KiCad 7. (#486)
- *exclude_from_bom* mismatch on KiCad 7
- *Sheetfile* mismatch on KiCad 7 when testing from different directory
## [1.6.3] - 2023-06-26

View File

@ -146,7 +146,8 @@ Supported preflights
- **check_pcb_parity** :index:`: <pair: preflight - update_xml; check_pcb_parity>` [boolean=false] Check if the PCB and Schematic are synchronized.
This is equivalent to the *Test for parity between PCB and schematic* of the DRC dialog.
Only available for KiCad 6+.
Not available for KiCad 5. **Important**: when using KiCad 6 and the *Exclude from BoM* attribute
these components won't be included in the generated XML, so we can't check its parity.
- ``as_warnings`` :index:`: <pair: preflight - update_xml; as_warnings>` [boolean=false] Inform the problems as warnings and don't stop.
- ``enabled`` :index:`: <pair: preflight - update_xml; enabled>` [boolean=true] Enable the update. This is the replacement for the boolean value.

View File

@ -281,6 +281,7 @@ W_BADVAL4 = '(W127) '
W_ENVEXIST = '(W128) '
W_FLDCOLLISION = '(W129) '
W_NEWGROUP = '(W130) '
W_NOTINBOM = '(W131) '
# Somehow arbitrary, the colors are real, but can be different
PCB_MAT_COLORS = {'fr1': "937042", 'fr2': "949d70", 'fr3': "adacb4", 'fr4': "332B16", 'fr5': "6cc290"}
PCB_FINISH_COLORS = {'hal': "8b898c", 'hasl': "8b898c", 'imag': "8b898c", 'enig': "cfb96e", 'enepig': "cfb96e",

View File

@ -18,7 +18,7 @@ from .macros import macros, document, pre_class # noqa: F401
from .error import KiPlotConfigurationError
from .gs import GS
from .kiplot import load_board
from .misc import BOM_ERROR, NETLIST_DIFF, W_PARITY, MISSING_TOOL, KICAD_VERSION_7_0_1
from .misc import BOM_ERROR, NETLIST_DIFF, W_PARITY, MISSING_TOOL, KICAD_VERSION_7_0_1, W_NOTINBOM
from .log import get_logger
from .optionable import Optionable
import pcbnew
@ -37,7 +37,8 @@ class Update_XMLOptions(Optionable):
self.check_pcb_parity = False
""" *Check if the PCB and Schematic are synchronized.
This is equivalent to the *Test for parity between PCB and schematic* of the DRC dialog.
Only available for KiCad 6+ """
Not available for KiCad 5. **Important**: when using KiCad 6 and the *Exclude from BoM* attribute
these components won't be included in the generated XML, so we can't check its parity """
self.as_warnings = False
""" Inform the problems as warnings and don't stop """
@ -75,11 +76,18 @@ class Update_XML(BasePreFlight): # noqa: F821
def check_components(self, comps, errors):
found_comps = set()
excluded = set()
for m in GS.get_modules():
ref = m.GetReference()
pcb_props = m.GetProperties()
found_comps.add(ref)
if ref not in comps:
errors.append('{} found in PCB, but not in schematic'.format(ref))
if GS.ki6_only and pcb_props.get('exclude_from_bom') is not None:
# KiCad 6 doesn't include the excluded components in the netlist
logger.warning(W_NOTINBOM+f"{ref} excluded from BoM we can't check its parity, upgrade to KiCad 7")
excluded.add(ref)
else:
errors.append('{} found in PCB, but not in schematic'.format(ref))
continue
sch_data = comps[ref]
pcb_fp = m.GetFPIDAsString()
@ -89,7 +97,6 @@ class Update_XML(BasePreFlight): # noqa: F821
if sch_data.val != pcb_val:
errors.append('{} value mismatch (PCB: `{}` vs schematic: `{}`)'.format(ref, pcb_val, sch_data.val))
# Properties
pcb_props = m.GetProperties()
found_props = set()
for p, v in sch_data.props.items():
v_pcb = pcb_props.get(p)
@ -98,14 +105,25 @@ class Update_XML(BasePreFlight): # noqa: F821
continue
found_props.add(p)
if v_pcb != v:
errors.append('{} property mismatch (PCB: `{}` vs schematic: `{}`)'.format(ref, v_pcb, v))
if v is None:
# Things like "exclude_from_bom" has no "value", so we get None, but they have '' in the PCB
v = ''
elif p == 'Sheetfile':
# Sheetfile is really inside the .kicad_pcb, but is just generated by Eeschema
# This implies that Eeschema can add a path relative to cwd
# We just check the filename here
v_pcb = os.path.basename(v_pcb)
v = os.path.basename(v)
if v_pcb != v:
errors.append(f'{ref} property `{p}` mismatch (PCB: `{v_pcb}` vs schematic: `{v}`)')
# Missing properties
for p in set(pcb_props.keys()).difference(found_props):
errors.append('{} PCB property `{}` not in schematic'.format(ref, p))
for ref in set(comps.keys()).difference(found_comps):
errors.append('{} found in schematic, but not in PCB'.format(ref))
return excluded
def check_nets(self, net_nodes, errors):
def check_nets(self, net_nodes, errors, excluded):
# Total count
con = GS.board.GetConnectivity()
pcb_net_count = con.GetNetCount()-1 # Removing the bogus net 0
@ -127,7 +145,8 @@ class Update_XML(BasePreFlight): # noqa: F821
pcb_net_names.add(net_name)
sch_nodes = net_nodes[net_name]
pcb_nodes = {pad.GetParent().GetReference()+' pin '+pad.GetNumber()
for pad in con.GetNetItems(n, pcbnew.PCB_PAD_T)}
for pad in con.GetNetItems(n, pcbnew.PCB_PAD_T)
if pad.GetParent().GetReference() not in excluded}
dif = pcb_nodes-sch_nodes
if dif:
errors.append('Net `{}` extra PCB connection/s: {}'.format(net_name, ','.join(list(dif))))
@ -180,9 +199,9 @@ class Update_XML(BasePreFlight): # noqa: F821
errors = []
load_board()
# Check components
self.check_components(comps, errors)
excluded = self.check_components(comps, errors)
# Check the nets
self.check_nets(net_nodes, errors)
self.check_nets(net_nodes, errors, excluded)
# Report errors
if errors:
if self.options.as_warnings:

View File

@ -6,3 +6,4 @@ fp-info-cache
*-bak
pcb_parity.xml
batteryPack.kicad_prl
parity_not_in_bom.xml

View File

@ -0,0 +1,179 @@
(kicad_pcb (version 20211014) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(svguseinch false)
(svgprecision 6)
(excludeedgelayer true)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(net 1 "Net-(R1-Pad1)")
(net 2 "Net-(R1-Pad2)")
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tedit 5F68FEEE) (tstamp 71391f61-a293-4f48-90fc-560a7915df90)
(at 141.7 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "parity_not_in_bom.kicad_sch")
(property "Sheetname" "")
(path "/53197f63-58c2-43cf-a8eb-f753d7ef24dd")
(attr smd)
(fp_text reference "R1" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 7b2615b6-a345-4b0f-99b6-86e596033ed3)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 5290912d-ff49-4c4c-b4e3-50b9698dd21f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp eb04c778-b915-4ef5-a2a4-7105bd2f4240)
)
(fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer "F.SilkS") (width 0.12) (tstamp 041c7c60-ec2d-4320-905a-23b4d81b9953))
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer "F.SilkS") (width 0.12) (tstamp b0208b82-bc34-4e1f-8c1d-10c6625fa24e))
(fp_line (start 1.68 -0.95) (end 1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp 0d6b5b31-ccaf-4919-81ac-e61b309d843c))
(fp_line (start 1.68 0.95) (end -1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp 21aa6277-8a7a-4c94-a5f7-017929a9b2ff))
(fp_line (start -1.68 0.95) (end -1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp a9ea8b5b-4a6e-4d9d-b048-252fc1412ecc))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp cd03aab6-fb56-4749-955c-8702606368c0))
(fp_line (start 1 0.625) (end -1 0.625) (layer "F.Fab") (width 0.1) (tstamp 0e9b16bf-7aaf-45bb-bf13-46ff64c7194e))
(fp_line (start 1 -0.625) (end 1 0.625) (layer "F.Fab") (width 0.1) (tstamp 8d86c185-7ab4-410b-a7e0-f3b951d5d0e1))
(fp_line (start -1 -0.625) (end 1 -0.625) (layer "F.Fab") (width 0.1) (tstamp a2c86f64-3d5d-44f3-bd2b-3d3ba76a1534))
(fp_line (start -1 0.625) (end -1 -0.625) (layer "F.Fab") (width 0.1) (tstamp b293f011-f92a-4975-9065-a7f8b42ad6e4))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp a8ef74a0-4909-496a-89c3-192e03d40865))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp d086af99-eb9a-43cd-a4a8-5fa85bf21c7b))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tedit 5F68FEEE) (tstamp d22575fe-eeae-4e33-8079-95b8a28b872b)
(at 146.11 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "k6_no_bom.kicad_sch")
(property "Sheetname" "")
(property "exclude_from_bom" "")
(path "/fe915a0d-788b-436b-b91c-17b812706857")
(attr smd exclude_from_bom)
(fp_text reference "R2" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6c0d166e-25bb-45a4-b695-c69a4b50cfcb)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp acd644dc-8346-4fcf-baaa-3ae973ac2e7f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp 922f6531-fad7-4af0-bae9-d2a838d28ab5)
)
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer "F.SilkS") (width 0.12) (tstamp 02ad1c2c-2155-44fe-a999-617e3e26b6ed))
(fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer "F.SilkS") (width 0.12) (tstamp 801a1b3e-eb10-4c50-b990-5600113eecca))
(fp_line (start 1.68 -0.95) (end 1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp 3c1f14c4-cf78-46c0-96d2-0c75b8736344))
(fp_line (start 1.68 0.95) (end -1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp dac0fd80-6512-4cad-bc11-8e8b8d585be5))
(fp_line (start -1.68 0.95) (end -1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp e6d471eb-43c2-4c5e-b3d0-0b05ff0d1202))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp f4f9b330-946a-419d-a0ea-0791a45e19a6))
(fp_line (start -1 0.625) (end -1 -0.625) (layer "F.Fab") (width 0.1) (tstamp 2e12ae73-a5ce-4694-8479-11a8d34a75b5))
(fp_line (start 1 0.625) (end -1 0.625) (layer "F.Fab") (width 0.1) (tstamp 44c349af-aaa0-4d2a-96eb-8227ef989713))
(fp_line (start 1 -0.625) (end 1 0.625) (layer "F.Fab") (width 0.1) (tstamp 92dc906b-5680-4858-b5be-457d0c9d9fb0))
(fp_line (start -1 -0.625) (end 1 -0.625) (layer "F.Fab") (width 0.1) (tstamp d7f641d3-d51d-436f-9ed9-c15d3d4ab67a))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp 6fdb1a9d-290c-41b1-95be-28269a8f25bb))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp 55596410-e2e1-4872-ad6a-0f26ec48afb1))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(gr_rect (start 139.07 86.08) (end 148.99 93.73) (layer "Edge.Cuts") (width 0.1) (fill none) (tstamp 76666355-656c-4bbc-b564-0e519858b554))
(segment (start 140.7875 91.7275) (end 141.59 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 1479941e-ba33-4fc7-a01f-38b6929e9fa6))
(segment (start 145.1975 91.8425) (end 145.1975 90.21) (width 0.25) (layer "F.Cu") (net 1) (tstamp 5e124c25-5aed-47d4-b681-87043a35d032))
(segment (start 141.59 92.53) (end 144.51 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 65cace76-e388-42c4-89f5-224130d41350))
(segment (start 144.51 92.53) (end 145.1975 91.8425) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6bdaf2c2-e285-41e3-a359-fdda0fe5f0bb))
(segment (start 140.7875 90.21) (end 140.7875 91.7275) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6e063370-a136-4b04-9db4-51c9137330af))
(segment (start 143.16 88.22) (end 146.26 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp 0a2fa0f2-3faf-4442-9576-2f87f403922d))
(segment (start 142.6125 90.21) (end 142.6125 88.7675) (width 0.25) (layer "F.Cu") (net 2) (tstamp 1ce8ab1b-8bf2-4984-bd7c-b354c87d4735))
(segment (start 147.0225 88.9825) (end 147.0225 90.21) (width 0.25) (layer "F.Cu") (net 2) (tstamp 37605bd2-ca68-40ac-9778-51db8433a277))
(segment (start 146.26 88.22) (end 147.0225 88.9825) (width 0.25) (layer "F.Cu") (net 2) (tstamp 89ed9d43-6d56-42da-9239-3c16facf2f20))
(segment (start 142.6125 88.7675) (end 143.16 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp e5b31ba0-c473-4a4a-8fc4-f8790529e32d))
)

View File

@ -0,0 +1,125 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid 3732eaf7-cce4-43cf-b4b9-c9dc29b0959c)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(wire (pts (xy 114.3 71.12) (xy 127 71.12))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 50547cc0-58b4-41d9-be7a-4dcc3848c41c)
)
(wire (pts (xy 127 83.82) (xy 127 88.9))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 552500c0-f580-4698-b875-06e4f0918a52)
)
(wire (pts (xy 114.3 76.2) (xy 114.3 71.12))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 55e58413-69f9-4248-b7b2-1d7d19738a40)
)
(wire (pts (xy 127 71.12) (xy 127 76.2))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 802a0139-9d26-46a4-9a87-dc3e01d180d3)
)
(wire (pts (xy 114.3 88.9) (xy 127 88.9))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 87a32c0a-4611-4f9e-992d-b6acc65e4801)
)
(wire (pts (xy 114.3 83.82) (xy 114.3 88.9))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid e734b7a7-31ad-4fb1-8ade-ff03908bf4ab)
)
(symbol (lib_id "Device:R") (at 114.3 80.01 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 53197f63-58c2-43cf-a8eb-f753d7ef24dd)
(property "Reference" "R1" (id 0) (at 116.84 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 116.84 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (id 2) (at 112.522 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 114.3 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid dbf8df6f-5fd0-456e-816c-06b2932108d3))
(pin "2" (uuid cbf44ba5-afe1-4251-a560-6315b051b326))
)
(symbol (lib_id "Device:R") (at 127 80.01 0) (unit 1)
(in_bom no) (on_board yes) (fields_autoplaced)
(uuid fe915a0d-788b-436b-b91c-17b812706857)
(property "Reference" "R2" (id 0) (at 129.54 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 129.54 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (id 2) (at 125.222 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 127 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 825b933a-362b-4022-a18e-ba18bef3bf92))
(pin "2" (uuid 6c70b565-558c-4ed1-ac80-3d3de0335385))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/53197f63-58c2-43cf-a8eb-f753d7ef24dd"
(reference "R1") (unit 1) (value "R") (footprint "Resistor_SMD:R_0805_2012Metric")
)
(path "/fe915a0d-788b-436b-b91c-17b812706857"
(reference "R2") (unit 1) (value "R") (footprint "Resistor_SMD:R_0805_2012Metric")
)
)
)

View File

@ -6,3 +6,4 @@ fp-info-cache
*-backups
pcb_parity.xml
batteryPack.kicad_prl
parity_not_in_bom.xml

View File

@ -0,0 +1,208 @@
(kicad_pcb (version 20221018) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(plot_on_all_layers_selection 0x0000000_00000000)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 6)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(property "MYVAR" "tests/data")
(property "PRUEBITA" "Hola!")
(net 0 "")
(net 1 "Net-(R1-Pad1)")
(net 2 "Net-(R1-Pad2)")
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tstamp 71391f61-a293-4f48-90fc-560a7915df90)
(at 141.7 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "parity_not_in_bom.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Resistor")
(property "ki_keywords" "R res resistor")
(path "/53197f63-58c2-43cf-a8eb-f753d7ef24dd")
(attr smd)
(fp_text reference "R1" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 7b2615b6-a345-4b0f-99b6-86e596033ed3)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 5290912d-ff49-4c4c-b4e3-50b9698dd21f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp eb04c778-b915-4ef5-a2a4-7105bd2f4240)
)
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b0208b82-bc34-4e1f-8c1d-10c6625fa24e))
(fp_line (start -0.227064 0.735) (end 0.227064 0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 041c7c60-ec2d-4320-905a-23b4d81b9953))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp cd03aab6-fb56-4749-955c-8702606368c0))
(fp_line (start -1.68 0.95) (end -1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a9ea8b5b-4a6e-4d9d-b048-252fc1412ecc))
(fp_line (start 1.68 -0.95) (end 1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0d6b5b31-ccaf-4919-81ac-e61b309d843c))
(fp_line (start 1.68 0.95) (end -1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 21aa6277-8a7a-4c94-a5f7-017929a9b2ff))
(fp_line (start -1 -0.625) (end 1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a2c86f64-3d5d-44f3-bd2b-3d3ba76a1534))
(fp_line (start -1 0.625) (end -1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b293f011-f92a-4975-9065-a7f8b42ad6e4))
(fp_line (start 1 -0.625) (end 1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8d86c185-7ab4-410b-a7e0-f3b951d5d0e1))
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0e9b16bf-7aaf-45bb-bf13-46ff64c7194e))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp a8ef74a0-4909-496a-89c3-192e03d40865))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp d086af99-eb9a-43cd-a4a8-5fa85bf21c7b))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tstamp d22575fe-eeae-4e33-8079-95b8a28b872b)
(at 146.11 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "parity_not_in_bom.kicad_sch")
(property "Sheetname" "")
(property "exclude_from_bom" "")
(property "ki_description" "Resistor")
(property "ki_keywords" "R res resistor")
(path "/fe915a0d-788b-436b-b91c-17b812706857")
(attr smd exclude_from_bom)
(fp_text reference "R2" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6c0d166e-25bb-45a4-b695-c69a4b50cfcb)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp acd644dc-8346-4fcf-baaa-3ae973ac2e7f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp 922f6531-fad7-4af0-bae9-d2a838d28ab5)
)
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 02ad1c2c-2155-44fe-a999-617e3e26b6ed))
(fp_line (start -0.227064 0.735) (end 0.227064 0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 801a1b3e-eb10-4c50-b990-5600113eecca))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f4f9b330-946a-419d-a0ea-0791a45e19a6))
(fp_line (start -1.68 0.95) (end -1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e6d471eb-43c2-4c5e-b3d0-0b05ff0d1202))
(fp_line (start 1.68 -0.95) (end 1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3c1f14c4-cf78-46c0-96d2-0c75b8736344))
(fp_line (start 1.68 0.95) (end -1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dac0fd80-6512-4cad-bc11-8e8b8d585be5))
(fp_line (start -1 -0.625) (end 1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d7f641d3-d51d-436f-9ed9-c15d3d4ab67a))
(fp_line (start -1 0.625) (end -1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2e12ae73-a5ce-4694-8479-11a8d34a75b5))
(fp_line (start 1 -0.625) (end 1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 92dc906b-5680-4858-b5be-457d0c9d9fb0))
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 44c349af-aaa0-4d2a-96eb-8227ef989713))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp 6fdb1a9d-290c-41b1-95be-28269a8f25bb))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp 55596410-e2e1-4872-ad6a-0f26ec48afb1))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(gr_rect (start 139.07 86.08) (end 148.99 93.73)
(stroke (width 0.1) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp 76666355-656c-4bbc-b564-0e519858b554))
(segment (start 140.7875 91.7275) (end 141.59 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 1479941e-ba33-4fc7-a01f-38b6929e9fa6))
(segment (start 145.1975 91.8425) (end 145.1975 90.21) (width 0.25) (layer "F.Cu") (net 1) (tstamp 5e124c25-5aed-47d4-b681-87043a35d032))
(segment (start 141.59 92.53) (end 144.51 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 65cace76-e388-42c4-89f5-224130d41350))
(segment (start 144.51 92.53) (end 145.1975 91.8425) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6bdaf2c2-e285-41e3-a359-fdda0fe5f0bb))
(segment (start 140.7875 90.21) (end 140.7875 91.7275) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6e063370-a136-4b04-9db4-51c9137330af))
(segment (start 143.16 88.22) (end 146.26 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp 0a2fa0f2-3faf-4442-9576-2f87f403922d))
(segment (start 142.6125 90.21) (end 142.6125 88.7675) (width 0.25) (layer "F.Cu") (net 2) (tstamp 1ce8ab1b-8bf2-4984-bd7c-b354c87d4735))
(segment (start 147.0225 88.9825) (end 147.0225 90.21) (width 0.25) (layer "F.Cu") (net 2) (tstamp 37605bd2-ca68-40ac-9778-51db8433a277))
(segment (start 146.26 88.22) (end 147.0225 88.9825) (width 0.25) (layer "F.Cu") (net 2) (tstamp 89ed9d43-6d56-42da-9239-3c16facf2f20))
(segment (start 142.6125 88.7675) (end 143.16 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp e5b31ba0-c473-4a4a-8fc4-f8790529e32d))
)

View File

@ -0,0 +1,130 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid 3732eaf7-cce4-43cf-b4b9-c9dc29b0959c)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254) (type default))
(fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(wire (pts (xy 114.3 71.12) (xy 127 71.12))
(stroke (width 0) (type default))
(uuid 50547cc0-58b4-41d9-be7a-4dcc3848c41c)
)
(wire (pts (xy 127 83.82) (xy 127 88.9))
(stroke (width 0) (type default))
(uuid 552500c0-f580-4698-b875-06e4f0918a52)
)
(wire (pts (xy 114.3 76.2) (xy 114.3 71.12))
(stroke (width 0) (type default))
(uuid 55e58413-69f9-4248-b7b2-1d7d19738a40)
)
(wire (pts (xy 127 71.12) (xy 127 76.2))
(stroke (width 0) (type default))
(uuid 802a0139-9d26-46a4-9a87-dc3e01d180d3)
)
(wire (pts (xy 114.3 88.9) (xy 127 88.9))
(stroke (width 0) (type default))
(uuid 87a32c0a-4611-4f9e-992d-b6acc65e4801)
)
(wire (pts (xy 114.3 83.82) (xy 114.3 88.9))
(stroke (width 0) (type default))
(uuid e734b7a7-31ad-4fb1-8ade-ff03908bf4ab)
)
(symbol (lib_id "Device:R") (at 114.3 80.01 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 53197f63-58c2-43cf-a8eb-f753d7ef24dd)
(property "Reference" "R1" (at 116.84 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (at 116.84 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (at 112.522 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 114.3 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid dbf8df6f-5fd0-456e-816c-06b2932108d3))
(pin "2" (uuid cbf44ba5-afe1-4251-a560-6315b051b326))
(instances
(project "parity_not_in_bom"
(path "/3732eaf7-cce4-43cf-b4b9-c9dc29b0959c"
(reference "R1") (unit 1)
)
)
)
)
(symbol (lib_id "Device:R") (at 127 80.01 0) (unit 1)
(in_bom no) (on_board yes) (dnp no) (fields_autoplaced)
(uuid fe915a0d-788b-436b-b91c-17b812706857)
(property "Reference" "R2" (at 129.54 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (at 129.54 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (at 125.222 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 127 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 825b933a-362b-4022-a18e-ba18bef3bf92))
(pin "2" (uuid 6c70b565-558c-4ed1-ac80-3d3de0335385))
(instances
(project "parity_not_in_bom"
(path "/3732eaf7-cce4-43cf-b4b9-c9dc29b0959c"
(reference "R2") (unit 1)
)
)
)
)
(sheet_instances
(path "/" (page "1"))
)
)

View File

@ -6,3 +6,4 @@ fp-info-cache
*-backups
pcb_parity.xml
batteryPack.kicad_prl
parity_not_in_bom.xml

View File

@ -0,0 +1,208 @@
(kicad_pcb (version 20221018) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(plot_on_all_layers_selection 0x0000000_00000000)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 6)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(property "MYVAR" "tests/data")
(property "PRUEBITA" "Hola!")
(net 0 "")
(net 1 "Net-(R1-Pad1)")
(net 2 "Net-(R1-Pad2)")
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tstamp 71391f61-a293-4f48-90fc-560a7915df90)
(at 141.7 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "parity_not_in_bom.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Resistor")
(property "ki_keywords" "R res resistor")
(path "/53197f63-58c2-43cf-a8eb-f753d7ef24dd")
(attr smd)
(fp_text reference "R1" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 7b2615b6-a345-4b0f-99b6-86e596033ed3)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 5290912d-ff49-4c4c-b4e3-50b9698dd21f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp eb04c778-b915-4ef5-a2a4-7105bd2f4240)
)
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b0208b82-bc34-4e1f-8c1d-10c6625fa24e))
(fp_line (start -0.227064 0.735) (end 0.227064 0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 041c7c60-ec2d-4320-905a-23b4d81b9953))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp cd03aab6-fb56-4749-955c-8702606368c0))
(fp_line (start -1.68 0.95) (end -1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a9ea8b5b-4a6e-4d9d-b048-252fc1412ecc))
(fp_line (start 1.68 -0.95) (end 1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0d6b5b31-ccaf-4919-81ac-e61b309d843c))
(fp_line (start 1.68 0.95) (end -1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 21aa6277-8a7a-4c94-a5f7-017929a9b2ff))
(fp_line (start -1 -0.625) (end 1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a2c86f64-3d5d-44f3-bd2b-3d3ba76a1534))
(fp_line (start -1 0.625) (end -1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b293f011-f92a-4975-9065-a7f8b42ad6e4))
(fp_line (start 1 -0.625) (end 1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8d86c185-7ab4-410b-a7e0-f3b951d5d0e1))
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0e9b16bf-7aaf-45bb-bf13-46ff64c7194e))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp a8ef74a0-4909-496a-89c3-192e03d40865))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp d086af99-eb9a-43cd-a4a8-5fa85bf21c7b))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu")
(tstamp d22575fe-eeae-4e33-8079-95b8a28b872b)
(at 146.11 90.21)
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
(tags "resistor")
(property "Sheetfile" "parity_not_in_bom.kicad_sch")
(property "Sheetname" "")
(property "exclude_from_bom" "")
(property "ki_description" "Resistor")
(property "ki_keywords" "R res resistor")
(path "/fe915a0d-788b-436b-b91c-17b812706857")
(attr smd exclude_from_bom)
(fp_text reference "R2" (at 0 -1.65) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6c0d166e-25bb-45a4-b695-c69a4b50cfcb)
)
(fp_text value "R" (at 0 1.65) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp acd644dc-8346-4fcf-baaa-3ae973ac2e7f)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)))
(tstamp 922f6531-fad7-4af0-bae9-d2a838d28ab5)
)
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 02ad1c2c-2155-44fe-a999-617e3e26b6ed))
(fp_line (start -0.227064 0.735) (end 0.227064 0.735)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 801a1b3e-eb10-4c50-b990-5600113eecca))
(fp_line (start -1.68 -0.95) (end 1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f4f9b330-946a-419d-a0ea-0791a45e19a6))
(fp_line (start -1.68 0.95) (end -1.68 -0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e6d471eb-43c2-4c5e-b3d0-0b05ff0d1202))
(fp_line (start 1.68 -0.95) (end 1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3c1f14c4-cf78-46c0-96d2-0c75b8736344))
(fp_line (start 1.68 0.95) (end -1.68 0.95)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dac0fd80-6512-4cad-bc11-8e8b8d585be5))
(fp_line (start -1 -0.625) (end 1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d7f641d3-d51d-436f-9ed9-c15d3d4ab67a))
(fp_line (start -1 0.625) (end -1 -0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2e12ae73-a5ce-4694-8479-11a8d34a75b5))
(fp_line (start 1 -0.625) (end 1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 92dc906b-5680-4858-b5be-457d0c9d9fb0))
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 44c349af-aaa0-4d2a-96eb-8227ef989713))
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 1 "Net-(R1-Pad1)") (pintype "passive") (tstamp 6fdb1a9d-290c-41b1-95be-28269a8f25bb))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902)
(net 2 "Net-(R1-Pad2)") (pintype "passive") (tstamp 55596410-e2e1-4872-ad6a-0f26ec48afb1))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(gr_rect (start 139.07 86.08) (end 148.99 93.73)
(stroke (width 0.1) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp 76666355-656c-4bbc-b564-0e519858b554))
(segment (start 140.7875 91.7275) (end 141.59 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 1479941e-ba33-4fc7-a01f-38b6929e9fa6))
(segment (start 145.1975 91.8425) (end 145.1975 90.21) (width 0.25) (layer "F.Cu") (net 1) (tstamp 5e124c25-5aed-47d4-b681-87043a35d032))
(segment (start 141.59 92.53) (end 144.51 92.53) (width 0.25) (layer "F.Cu") (net 1) (tstamp 65cace76-e388-42c4-89f5-224130d41350))
(segment (start 144.51 92.53) (end 145.1975 91.8425) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6bdaf2c2-e285-41e3-a359-fdda0fe5f0bb))
(segment (start 140.7875 90.21) (end 140.7875 91.7275) (width 0.25) (layer "F.Cu") (net 1) (tstamp 6e063370-a136-4b04-9db4-51c9137330af))
(segment (start 143.16 88.22) (end 146.26 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp 0a2fa0f2-3faf-4442-9576-2f87f403922d))
(segment (start 142.6125 90.21) (end 142.6125 88.7675) (width 0.25) (layer "F.Cu") (net 2) (tstamp 1ce8ab1b-8bf2-4984-bd7c-b354c87d4735))
(segment (start 147.0225 88.9825) (end 147.0225 90.21) (width 0.25) (layer "F.Cu") (net 2) (tstamp 37605bd2-ca68-40ac-9778-51db8433a277))
(segment (start 146.26 88.22) (end 147.0225 88.9825) (width 0.25) (layer "F.Cu") (net 2) (tstamp 89ed9d43-6d56-42da-9239-3c16facf2f20))
(segment (start 142.6125 88.7675) (end 143.16 88.22) (width 0.25) (layer "F.Cu") (net 2) (tstamp e5b31ba0-c473-4a4a-8fc4-f8790529e32d))
)

View File

@ -0,0 +1,130 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid 3732eaf7-cce4-43cf-b4b9-c9dc29b0959c)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254) (type default))
(fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(wire (pts (xy 114.3 71.12) (xy 127 71.12))
(stroke (width 0) (type default))
(uuid 50547cc0-58b4-41d9-be7a-4dcc3848c41c)
)
(wire (pts (xy 127 83.82) (xy 127 88.9))
(stroke (width 0) (type default))
(uuid 552500c0-f580-4698-b875-06e4f0918a52)
)
(wire (pts (xy 114.3 76.2) (xy 114.3 71.12))
(stroke (width 0) (type default))
(uuid 55e58413-69f9-4248-b7b2-1d7d19738a40)
)
(wire (pts (xy 127 71.12) (xy 127 76.2))
(stroke (width 0) (type default))
(uuid 802a0139-9d26-46a4-9a87-dc3e01d180d3)
)
(wire (pts (xy 114.3 88.9) (xy 127 88.9))
(stroke (width 0) (type default))
(uuid 87a32c0a-4611-4f9e-992d-b6acc65e4801)
)
(wire (pts (xy 114.3 83.82) (xy 114.3 88.9))
(stroke (width 0) (type default))
(uuid e734b7a7-31ad-4fb1-8ade-ff03908bf4ab)
)
(symbol (lib_id "Device:R") (at 114.3 80.01 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 53197f63-58c2-43cf-a8eb-f753d7ef24dd)
(property "Reference" "R1" (at 116.84 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (at 116.84 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (at 112.522 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 114.3 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid dbf8df6f-5fd0-456e-816c-06b2932108d3))
(pin "2" (uuid cbf44ba5-afe1-4251-a560-6315b051b326))
(instances
(project "parity_not_in_bom"
(path "/3732eaf7-cce4-43cf-b4b9-c9dc29b0959c"
(reference "R1") (unit 1)
)
)
)
)
(symbol (lib_id "Device:R") (at 127 80.01 0) (unit 1)
(in_bom no) (on_board yes) (dnp no) (fields_autoplaced)
(uuid fe915a0d-788b-436b-b91c-17b812706857)
(property "Reference" "R2" (at 129.54 78.7399 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (at 129.54 81.2799 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_SMD:R_0805_2012Metric" (at 125.222 80.01 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 127 80.01 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 825b933a-362b-4022-a18e-ba18bef3bf92))
(pin "2" (uuid 6c70b565-558c-4ed1-ac80-3d3de0335385))
(instances
(project "parity_not_in_bom"
(path "/3732eaf7-cce4-43cf-b4b9-c9dc29b0959c"
(reference "R2") (unit 1)
)
)
)
)
(sheet_instances
(path "/" (page "1"))
)
)

View File

@ -217,6 +217,24 @@ def test_update_xml_2(test_dir):
ctx.clean_up()
@pytest.mark.slow
@pytest.mark.eeschema
@pytest.mark.skipif(context.ki5() or context.ki8(), reason="KiCad 6+ implementation")
def test_update_xml_not_in_bom(test_dir):
prj = 'parity_not_in_bom'
ctx = context.TestContext(test_dir, prj, 'update_xml_2', '')
# The XML should be created where the schematic is located
xml = os.path.abspath(os.path.join(ctx.get_board_dir(), prj+'.xml'))
ctx.run()
# Check all outputs are there
assert os.path.isfile(xml)
assert os.path.getsize(xml) > 0
logging.debug(os.path.basename(xml)+' OK')
if context.ki6() and not context.ki7():
ctx.search_err("R2 excluded from BoM")
ctx.clean_up()
@pytest.mark.slow
@pytest.mark.eeschema
def test_update_xml_fail(test_dir):