initial commit, rev1 to fab

This commit is contained in:
2025-11-11 22:11:13 -08:00
commit 26fa890193
17 changed files with 381035 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
outputs
.cache/
.config/
.local/
*-bak
*.lck
+104238
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -0,0 +1,4 @@
(fp_lib_table
(version 7)
(lib (name "projlib")(type "KiCad")(uri "${KIPRJMOD}/projlib.pretty")(options "")(descr ""))
)
+989
View File
@@ -0,0 +1,989 @@
# This is a working example.
# For a more complete reference use `--example`
kibot:
version: 1
global:
filters:
- number: 1007
- number: 1015
- number: 58
- number: 107
import:
- file: JLCPCB
definitions:
_KIBOT_MANF_DIR: Manufacturers/JLCPCB
_KIBOT_POS_PRE_TRANSFORM: '[''_kicost_rename'', ''_rot_footprint'']'
- file: PCB2Blender_2_1
preflight:
drc:
dont_stop: true
format: HTML,RPT,JSON,CSV
erc:
dont_stop: true
format: HTML,RPT,JSON,CSV
outputs:
- name: blender_export
comment: 3D view from top/30 deg/bottom (Blender)
type: blender_export
dir: 3D
options:
# pcb3d: _PCB2Blender_2_1
outputs:
- type: render
- type: blender
point_of_view:
- view: top
- rotate_x: 30
rotate_z: -20
file_id: _30deg
- view: bottom
- name: basic_boardview
comment: Board View export
type: boardview
dir: Assembly
- name: generic_bom_html
comment: Generic Bill of Materials in HTML format
type: bom
dir: BoM/Generic
options:
format: HTML
group_fields: &id001
- part
- part lib
- value
- footprint
- footprint lib
- voltage
- tolerance
- current
- power
- mpn
count_smd_tht: true
- name: generic_bom_csv
comment: Generic Bill of Materials in CSV format
type: bom
dir: BoM/Generic
options:
format: CSV
group_fields: *id001
count_smd_tht: true
- name: generic_bom_hrtxt
comment: Generic Bill of Materials in HRTXT format
type: bom
dir: BoM/Generic
options:
format: HRTXT
hrtxt:
separator: '|'
group_fields: *id001
count_smd_tht: true
- name: generic_bom_tsv
comment: Generic Bill of Materials in TSV format
type: bom
dir: BoM/Generic
options:
format: TSV
group_fields: *id001
count_smd_tht: true
- name: generic_bom_xml
comment: Generic Bill of Materials in XML format
type: bom
dir: BoM/Generic
options:
format: XML
group_fields: *id001
count_smd_tht: true
- name: generic_bom_xlsx
comment: Generic Bill of Materials in XLSX format
type: bom
dir: BoM/Generic
options:
format: XLSX
group_fields: *id001
count_smd_tht: true
- name: positional_bom_html
comment: Positional Bill of Materials in HTML format
type: bom
dir: BoM/Positional
options:
format: HTML
group_fields: *id001
columns: &id002
- Row
- Description
- Part
- Part Lib
- References
- Value
- Footprint
- Footprint Lib
- Quantity Per PCB
- Build Quantity
- Status
- Datasheet
- Sheetpath
- Source BoM
- Footprint X
- Footprint Y
- Footprint Rot
- Footprint Side
- Footprint Type
- Footprint Type NV
- Footprint Populate
- Footprint X-Size
- Footprint Y-Size
- Net Name
- Net Class
count_smd_tht: true
html:
style: modern-red
- name: positional_bom_xlsx
comment: Positional Bill of Materials in XLSX format
type: bom
dir: BoM/Positional
options:
format: XLSX
group_fields: *id001
columns: *id002
count_smd_tht: true
xlsx:
style: modern-red
- name: costs_bom_xlsx
comment: Costs Bill of Materials in XLSX format
type: bom
dir: BoM/Costs
options:
format: XLSX
group_fields:
- part
- part lib
- value
- footprint
- footprint lib
- voltage
- tolerance
- current
- power
- manf#
count_smd_tht: true
xlsx:
style: modern-green
kicost: true
specs: true
kicost_api_disable: KitSpace
pre_transform: _kicost_rename
- name: basic_download_datasheets
comment: Download the datasheets
type: download_datasheets
dir: Datasheets
- name: basic_dxf
comment: Individual layers in DXF format
type: dxf
dir: Individual_Layers/DXF
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_dxf_sch_print
comment: Schematic in DXF format
type: dxf_sch_print
dir: Schematic
- name: basic_excellon
comment: Drill files in EXCELLON format
type: excellon
dir: Gerbers_and_Drill
options:
map: pdf
- name: basic_gencad
comment: PCB in GenCAD format
type: gencad
dir: Export
- name: basic_gerb_drill
comment: Drill files in GERB_DRILL format
type: gerb_drill
dir: Gerbers_and_Drill
options:
map: gerber
- name: gerber_modern
comment: Gerbers in modern format, recommended by the standard
type: gerber
dir: Gerbers_and_Drill
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_hpgl
comment: Individual layers in HPGL format
type: hpgl
dir: Individual_Layers/HPGL
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_hpgl_sch_print
comment: Schematic in HPGL format
type: hpgl_sch_print
dir: Schematic
- name: basic_ibom
comment: Interactive HTML BoM
type: ibom
dir: Assembly
- name: basic_info
comment: Information about the run
type: info
dir: .
- name: basic_kicanvas
comment: Web page to browse the schematic and/or PCB
type: kicanvas
dir: Browse
options:
source:
- schematic
- pcb
- name: basic_kikit_present
comment: Simple project presentation
type: kikit_present
dir: Presentation
options:
description: '# Presentation for lightbar
This is an automatically generated presentation page'
boards:
mode: local
comment: Resources included
front_image: renderer_for_present
back_image: renderer_for_present
gerbers: gerbers_for_present
- name: renderer_for_present
comment: Renderer for the presentation
type: pcbdraw
dir: Render_for_presentation
run_by_default: false
- name: gerbers_for_present
comment: Gerbers for the presentation
type: gerber
dir: Gerber_for_presentation
layers: copper
run_by_default: false
- name: basic_navigate_results
comment: Web page to browse the results
type: navigate_results
dir: Browse
options:
link_from_root: index.html
skip_not_run: true
- name: classic_netlist
comment: Schematic netlist in KiCad format
type: netlist
dir: Export
- name: ipc_netlist
comment: IPC-D-356 netlist for testing
type: netlist
dir: Export
options:
format: ipc
- name: basic_pcb_print_pdf
comment: PCB
type: pcb_print
dir: PCB/PDF
options:
format: PDF
pages:
- layers:
- layer: F.Cu
- layer: F.Mask
color: '#14332440'
- layer: F.Paste
- layer: Edge.Cuts
- layer: User.2
sheet: Front copper
- layers:
- layer: In1.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 1
- layers:
- layer: In2.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 2
- layers:
- layer: B.Cu
- layer: B.Mask
color: '#14332440'
- layer: B.Silkscreen
- layer: Edge.Cuts
- layer: User.2
mirror: true
sheet: Bottom copper
- layers:
- layer: F.Courtyard
- layer: Edge.Cuts
- layer: User.2
sheet: Front courtyard area
- layers:
- layer: F.Fab
- layer: Edge.Cuts
- layer: User.2
sheet: Front documentation
keep_temporal_files: true
- name: basic_pcb_print_svg
comment: PCB
type: pcb_print
dir: PCB/SVG
options:
format: SVG
pages:
- layers:
- layer: F.Cu
- layer: F.Mask
color: '#14332440'
- layer: F.Paste
- layer: Edge.Cuts
- layer: User.2
sheet: Front copper
- layers:
- layer: In1.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 1
- layers:
- layer: In2.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 2
- layers:
- layer: B.Cu
- layer: B.Mask
color: '#14332440'
- layer: B.Silkscreen
- layer: Edge.Cuts
- layer: User.2
mirror: true
sheet: Bottom copper
- layers:
- layer: F.Courtyard
- layer: Edge.Cuts
- layer: User.2
sheet: Front courtyard area
- layers:
- layer: F.Fab
- layer: Edge.Cuts
- layer: User.2
sheet: Front documentation
keep_temporal_files: true
add_background: true
- name: basic_pcb_print_png
comment: PCB
type: pcb_print
dir: PCB/PNG
options:
format: PNG
pages:
- layers:
- layer: F.Cu
- layer: F.Mask
color: '#14332440'
- layer: F.Paste
- layer: Edge.Cuts
- layer: User.2
sheet: Front copper
- layers:
- layer: In1.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 1
- layers:
- layer: In2.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 2
- layers:
- layer: B.Cu
- layer: B.Mask
color: '#14332440'
- layer: B.Silkscreen
- layer: Edge.Cuts
- layer: User.2
mirror: true
sheet: Bottom copper
- layers:
- layer: F.Courtyard
- layer: Edge.Cuts
- layer: User.2
sheet: Front courtyard area
- layers:
- layer: F.Fab
- layer: Edge.Cuts
- layer: User.2
sheet: Front documentation
keep_temporal_files: true
add_background: true
- name: basic_pcb_print_eps
comment: PCB
type: pcb_print
dir: PCB/EPS
options:
format: EPS
pages:
- layers:
- layer: F.Cu
- layer: F.Mask
color: '#14332440'
- layer: F.Paste
- layer: Edge.Cuts
- layer: User.2
sheet: Front copper
- layers:
- layer: In1.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 1
- layers:
- layer: In2.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 2
- layers:
- layer: B.Cu
- layer: B.Mask
color: '#14332440'
- layer: B.Silkscreen
- layer: Edge.Cuts
- layer: User.2
mirror: true
sheet: Bottom copper
- layers:
- layer: F.Courtyard
- layer: Edge.Cuts
- layer: User.2
sheet: Front courtyard area
- layers:
- layer: F.Fab
- layer: Edge.Cuts
- layer: User.2
sheet: Front documentation
keep_temporal_files: true
- name: basic_pcb_print_ps
comment: PCB
type: pcb_print
dir: PCB/PS
options:
format: PS
pages:
- layers:
- layer: F.Cu
- layer: F.Mask
color: '#14332440'
- layer: F.Paste
- layer: Edge.Cuts
- layer: User.2
sheet: Front copper
- layers:
- layer: In1.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 1
- layers:
- layer: In2.Cu
- layer: Edge.Cuts
- layer: User.2
sheet: Inner layer 2
- layers:
- layer: B.Cu
- layer: B.Mask
color: '#14332440'
- layer: B.Silkscreen
- layer: Edge.Cuts
- layer: User.2
mirror: true
sheet: Bottom copper
- layers:
- layer: F.Courtyard
- layer: Edge.Cuts
- layer: User.2
sheet: Front courtyard area
- layers:
- layer: F.Fab
- layer: Edge.Cuts
- layer: User.2
sheet: Front documentation
keep_temporal_files: true
- name: basic_pcbdraw_svg_jlcpcb_green_enig_top
comment: PCB 2D render in SVG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: svg
- name: basic_pcbdraw_png_jlcpcb_green_enig_top
comment: PCB 2D render in PNG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: png
- name: basic_pcbdraw_jpg_jlcpcb_green_enig_top
comment: PCB 2D render in JPG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: jpg
- name: basic_pcbdraw_svg_set_blue_enig_top
comment: PCB 2D render in SVG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: svg
- name: basic_pcbdraw_png_set_blue_enig_top
comment: PCB 2D render in PNG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: png
- name: basic_pcbdraw_jpg_set_blue_enig_top
comment: PCB 2D render in JPG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: jpg
- name: basic_pcbdraw_svg_set_red_hasl_top
comment: PCB 2D render in SVG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: svg
- name: basic_pcbdraw_png_set_red_hasl_top
comment: PCB 2D render in PNG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: png
- name: basic_pcbdraw_jpg_set_red_hasl_top
comment: PCB 2D render in JPG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: jpg
- name: basic_pcbdraw_svg_jlcpcb_green_enig_bottom
comment: PCB 2D render in SVG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: svg
bottom: true
- name: basic_pcbdraw_png_jlcpcb_green_enig_bottom
comment: PCB 2D render in PNG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: png
bottom: true
- name: basic_pcbdraw_jpg_jlcpcb_green_enig_bottom
comment: PCB 2D render in JPG format, using jlcpcb-green-enig style
type: pcbdraw
dir: PCB/2D_render/jlcpcb_green_enig
options:
style: jlcpcb-green-enig
format: jpg
bottom: true
- name: basic_pcbdraw_svg_set_blue_enig_bottom
comment: PCB 2D render in SVG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: svg
bottom: true
- name: basic_pcbdraw_png_set_blue_enig_bottom
comment: PCB 2D render in PNG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: png
bottom: true
- name: basic_pcbdraw_jpg_set_blue_enig_bottom
comment: PCB 2D render in JPG format, using set-blue-enig style
type: pcbdraw
dir: PCB/2D_render/set_blue_enig
options:
style: set-blue-enig
format: jpg
bottom: true
- name: basic_pcbdraw_svg_set_red_hasl_bottom
comment: PCB 2D render in SVG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: svg
bottom: true
- name: basic_pcbdraw_png_set_red_hasl_bottom
comment: PCB 2D render in PNG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: png
bottom: true
- name: basic_pcbdraw_jpg_set_red_hasl_bottom
comment: PCB 2D render in JPG format, using set-red-hasl style
type: pcbdraw
dir: PCB/2D_render/set_red_hasl
options:
style: set-red-hasl
format: jpg
bottom: true
- name: basic_pdf
comment: Individual layers in PDF format
type: pdf
dir: Individual_Layers/PDF
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_pdf_sch_print
comment: Schematic in PDF format
type: pdf_sch_print
dir: Schematic
- name: basic_position_ASCII
comment: Components position for Pick & Place
type: position
dir: Position
options:
format: ASCII
only_smd: false
separate_files_for_front_and_back: false
- name: basic_position_CSV
comment: Components position for Pick & Place
type: position
dir: Position
options:
format: CSV
only_smd: false
separate_files_for_front_and_back: false
- name: basic_ps
comment: Individual layers in PS format
type: ps
dir: Individual_Layers/PS
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_ps_sch_print
comment: Schematic in PS format
type: ps_sch_print
dir: Schematic
- name: basic_render_3d_top
comment: 3D view from top
type: render_3d
dir: 3D
options:
ray_tracing: true
orthographic: true
- name: basic_render_3d_30deg
comment: 3D view from 30 degrees
type: render_3d
dir: 3D
output_id: 30deg
options:
ray_tracing: true
rotate_x: 3
rotate_z: -2
- name: basic_render_3d_bottom
comment: 3D view from bottom
type: render_3d
dir: 3D
options:
ray_tracing: true
orthographic: true
view: bottom
- name: report_simple
comment: Simple design report
type: report
output_id: _simple
options:
template: simple_ASCII
do_convert: true
- name: report_full
comment: Full design report
type: report
options:
template: full_SVG
do_convert: true
- name: basic_stencil_3d
comment: 3D self-registering stencil
type: stencil_3d
dir: Assembly
- name: basic_stencil_for_jig
comment: Steel stencil for alignment jig
type: stencil_for_jig
dir: Assembly
options:
jigwidth: 100
jigheight: 100
- name: export_3d
comment: 3D model in STEP format
type: export_3d
dir: 3D
- name: basic_svg
comment: Individual layers in SVG format
type: svg
dir: Individual_Layers/SVG
layers:
- layer: F.Cu
suffix: F_Cu
description: Front copper
- layer: In1.Cu
suffix: In1_Cu
description: Inner layer 1
- layer: In2.Cu
suffix: In2_Cu
description: Inner layer 2
- layer: B.Cu
suffix: B_Cu
description: Bottom copper
- layer: F.Adhesive
suffix: F_Adhesive
description: Front adhesive (glue)
- layer: F.Paste
suffix: F_Paste
description: Front solder paste
- layer: B.Silkscreen
suffix: B_Silkscreen
description: Bottom silkscreen (artwork)
- layer: B.Mask
suffix: B_Mask
description: Bottom soldermask (negative)
- layer: F.Mask
suffix: F_Mask
description: Front soldermask (negative)
- layer: Edge.Cuts
suffix: Edge_Cuts
description: Board shape
- layer: F.Courtyard
suffix: F_Courtyard
description: Front courtyard area
- layer: F.Fab
suffix: F_Fab
description: Front documentation
- layer: User.2
suffix: User_2
description: User layer 2
- name: basic_svg_sch_print
comment: Schematic in SVG format
type: svg_sch_print
dir: Schematic
- name: basic_vrml
comment: PCB in VRML format
type: vrml
dir: 3D
...
definitions:
_KIBOT_MANF_DIR_COMP: Manufacturers
_KIBOT_GERBER_LAYERS: "- layer: 'F.Cu'\n suffix: 'F_Cu'\n description:\
\ 'Front copper'\n - layer: 'In1.Cu'\n suffix: 'In1_Cu'\n description:\
\ 'Inner layer 1'\n - layer: 'In2.Cu'\n suffix: 'In2_Cu'\n \
\ description: 'Inner layer 2'\n - layer: 'B.Cu'\n suffix: 'B_Cu'\n\
\ description: 'Bottom copper'\n - layer: 'F.Paste'\n suffix:\
\ 'F_Paste'\n description: 'Front solder paste'\n - layer: 'B.Silkscreen'\n\
\ suffix: 'B_Silkscreen'\n description: 'Bottom silkscreen (artwork)'\n\
\ - layer: 'B.Mask'\n suffix: 'B_Mask'\n description: 'Bottom\
\ soldermask (negative)'\n - layer: 'F.Mask'\n suffix: 'F_Mask'\n\
\ description: 'Front soldermask (negative)'\n - layer: 'Edge.Cuts'\n\
\ suffix: 'Edge_Cuts'\n description: 'Board shape'"
+24646
View File
File diff suppressed because it is too large Load Diff
+137
View File
@@ -0,0 +1,137 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
"vias",
"footprint_text",
"footprint_anchors",
"ratsnest",
"grid",
"footprints_front",
"footprints_back",
"footprint_values",
"footprint_references",
"tracks",
"drc_errors",
"drawing_sheet",
"bitmaps",
"pads",
"zones",
"drc_warnings",
"drc_exclusions",
"locked_item_shadows",
"conflict_shadows",
"shapes"
],
"visible_layers": "ffffffff_ffffffff_fffffff7_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "gnss-da.kicad_prl",
"version": 5
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"col_widths": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": 0
},
"open_jobsets": [],
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}
+634
View File
@@ -0,0 +1,634 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 3.2,
"height": 3.6,
"width": 3.6
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.09,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.0,
"min_groove_width": 0.0,
"min_hole_clearance": 0.2,
"min_hole_to_hole": 0.2,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.15,
"min_track_width": 0.09,
"min_via_annular_width": 0.15,
"min_via_diameter": 0.25,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.3421,
1.0
],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"undefined_netclass": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "gnss-da.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"480e2a68-32b5-413a-966c-c317a33cc161",
"Root"
]
],
"text_variables": {}
}
+8957
View File
File diff suppressed because it is too large Load Diff
Executable
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
podman run --rm -it \
--user $USER_ID:$GROUP_ID \
--userns=keep-id \
--env NO_AT_BRIDGE=1 \
--env DISPLAY=$DISPLAY \
--workdir="/home/$USER" \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
--volume="/etc/group:/etc/group:ro" \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
--volume="$PWD:/home/$USER:U" \
ghcr.io/inti-cmnb/kicad9_auto_full:latest kibot -d outputs
+826
View File
@@ -0,0 +1,826 @@
(kicad_symbol_lib
(version 20241209)
(generator "kicad_symbol_editor")
(generator_version "9.0")
(symbol "BGA524N6"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at 1.524 -3.302 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "BGA524N6"
(at 5.588 -5.08 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at -2.54 -15.24 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "https://www.infineon.com/assets/row/public/documents/24/49/infineon-bga524n6-datasheet-en.pdf?fileId=db3a304344e406b50144e44dfad302b9"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "GPS/GNSS Ultra-Low Current Low-Noise Amplifier, +19dB @ 1.57GHz, TSNP-6-2"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "LCSC" "C6752883"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "RF GAIN BLOCK"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "WLP*0.83x0.83mm*P0.4mm*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "BGA524N6_0_1"
(polyline
(pts
(xy 0 2.54) (xy 2.54 5.08)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.54 5.08) (xy 2.54 5.08)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 5.08 0) (xy -5.08 5.08) (xy -5.08 -5.08) (xy 5.08 0)
)
(stroke
(width 0.254)
(type default)
)
(fill
(type background)
)
)
)
(symbol "BGA524N6_1_1"
(pin input line
(at -7.62 0 0)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "5"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin power_in line
(at -2.54 7.62 270)
(length 3.81)
(name "Vcc"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin power_in line
(at -2.54 -7.62 90)
(length 3.81)
(name "G"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin power_in line
(at -2.54 -7.62 90)
(length 2.54)
(hide yes)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "4"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin input line
(at 5.08 5.08 180)
(length 2.54)
(name "PON"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "6"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin output line
(at 7.62 0 180)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
(embedded_fonts no)
)
(symbol "MPD1020W2"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at -6.35 7.62 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "MPD1020W2"
(at 6.35 7.62 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" "projlib:DFN-6-1EP_2x2mm_P0.65mm_EP0.6x1.37mm"
(at -3.81 -11.43 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "https://www.lcsc.com/datasheet/C42431993.pdf"
(at -1.27 -8.89 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Power splitter combiner, 1 to 2 GHz, 2 way, 50 ohm, 1W"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "LCSC" "C42431993"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "splitter combiner"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "Mini?Circuits*CD636*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "MPD1020W2_0_1"
(rectangle
(start -6.35 6.35)
(end 6.35 -6.35)
(stroke
(width 0.254)
(type default)
)
(fill
(type background)
)
)
(polyline
(pts
(xy -5.08 0) (xy 0 0) (xy 5.08 5.08)
)
(stroke
(width 0.508)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 0 0) (xy 5.08 -5.08)
)
(stroke
(width 0.508)
(type default)
)
(fill
(type none)
)
)
)
(symbol "MPD1020W2_1_1"
(pin passive line
(at -10.16 0 0)
(length 5.08)
(name "SUM"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -5.08 -10.16 90)
(length 3.81)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -5.08 -10.16 90)
(length 3.81)
(hide yes)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -5.08 -10.16 90)
(length 3.81)
(hide yes)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "5"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -5.08 -10.16 90)
(length 3.81)
(hide yes)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "7"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 10.16 5.08 180)
(length 5.08)
(name "PORT1"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "4"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 10.16 -5.08 180)
(length 5.08)
(name "PORT2"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "6"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
(embedded_fonts no)
)
(symbol "TA2247A"
(pin_names
(offset 1.016)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "FL"
(at 2.54 -6.35 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "TA2247A"
(at 0 6.35 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "https://www.taisaw.com/assets/PDF/TA2247A%20_Rev.1.0_.pdf"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "1565.5MHz 81MHz BW SMD 3.0 x 3.0mm SAW RF Filter"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "SAW filter"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "Filter*1411*1.4x1.1mm*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "TA2247A_0_1"
(rectangle
(start -5.08 5.08)
(end 5.08 -5.08)
(stroke
(width 0.254)
(type default)
)
(fill
(type background)
)
)
(polyline
(pts
(xy -1.524 -0.762) (xy -1.27 -0.762)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy -1.524 -1.27) (xy -2.032 -1.27) (xy -2.032 0) (xy 2.286 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0 2.794)
(mid -0.1994 2.05)
(end -0.762 1.524)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0.762 1.524)
(mid 0.2071 2.0547)
(end 0 2.794)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 1.524 -0.762) (xy -1.27 -0.762)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 1.524 -0.762) (xy 2.032 -0.762) (xy 2.032 -2.032) (xy -2.286 -2.032)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 1.524 -1.27) (xy -1.524 -1.27)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "TA2247A_1_1"
(pin passive line
(at -7.62 2.54 0)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -7.62 -2.54 0)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -7.62 -2.54 0)
(length 2.54)
(hide yes)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 7.62 2.54 180)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "5"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 7.62 -2.54 180)
(length 2.54)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "4"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 7.62 -2.54 180)
(length 2.54)
(hide yes)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "6"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
(embedded_fonts no)
)
(symbol "BGA824N6"
(extends "BGA524N6")
(property "Reference" "U"
(at 1.524 -3.302 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "BGA824N6"
(at 5.588 -5.08 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at -2.54 -15.24 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "https://www.infineon.com/assets/row/public/documents/24/49/infineon-bga824n6-datasheet-en.pdf"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "GPS/GNSS Ultra-Low Current Low-Noise Amplifier, +17dB @ 1.57GHz, TSNP-6-2"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "LCSC" "C3191827"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "RF GAIN BLOCK"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "WLP*0.83x0.83mm*P0.4mm*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
)
)
@@ -0,0 +1,339 @@
(footprint "DFN-6-1EP_2x2mm_P0.65mm_EP0.6x1.37mm"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(descr "DFN, 6 Pin (https://www.diodes.com/assets/Package-Files/U-DFN2020-6%20(Type%20C).pdf), generated with kicad-footprint-generator ipc_noLead_generator.py")
(tags "DFN NoLead")
(property "Reference" "REF**"
(at 0 -1.95 0)
(layer "F.SilkS")
(uuid "3a847146-07d3-4259-822b-8207b9e67c28")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "DFN-6-1EP_2x2mm_P0.65mm_EP0.6x1.37mm"
(at 0 1.95 0)
(layer "F.Fab")
(uuid "e02f4068-2bba-485a-8d82-678c76ccc4e0")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "b87d72bd-cdce-410d-a793-0389cd80845f")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "935aa1e5-90ec-4cc5-9229-9c95ec5988db")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start -1.11 1.11)
(end -1.11 1.06)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "ed6b2b52-fff0-4aeb-b8ff-8706d83e58cc")
)
(fp_line
(start -0.925042 -1.11)
(end 1.11 -1.11)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "090cf12b-305a-458e-9bdc-7669f3b38df1")
)
(fp_line
(start 1.11 -1.11)
(end 1.11 -1.06)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "96a4a88c-83d5-4945-9817-618cc3412813")
)
(fp_line
(start 1.11 1.06)
(end 1.11 1.11)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "0f4c8d0f-a2e6-4411-b332-083fa82eba01")
)
(fp_line
(start 1.11 1.11)
(end -1.11 1.11)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "990aaf40-42b8-488d-bcd6-bf65f25049a2")
)
(fp_poly
(pts
(xy -1.26 -1.06) (xy -1.4 -1.25) (xy -1.12 -1.25)
)
(stroke
(width 0.12)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "329652a3-1689-43c3-9f9a-f16a08215e11")
)
(fp_line
(start -1.6 -1.05)
(end -1.25 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "113f4b0d-25b3-4c9f-af49-031cf1cab92b")
)
(fp_line
(start -1.6 1.05)
(end -1.6 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "3a9de090-d86a-41eb-b662-42f7b41e307e")
)
(fp_line
(start -1.25 -1.25)
(end 1.25 -1.25)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "994df4f5-48bc-4d14-a793-9c7c9994029c")
)
(fp_line
(start -1.25 -1.05)
(end -1.25 -1.25)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "d0141ed3-bb33-4d8d-923c-bc3bd7039ef5")
)
(fp_line
(start -1.25 1.05)
(end -1.6 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "2b28bb1a-a385-4906-8938-a20fe24e7fb6")
)
(fp_line
(start -1.25 1.25)
(end -1.25 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "59397485-6a61-408d-89aa-de9974e88f5f")
)
(fp_line
(start 1.25 -1.25)
(end 1.25 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "7ad76c26-c525-41f3-9a0d-2065a6035201")
)
(fp_line
(start 1.25 -1.05)
(end 1.6 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "ecd5e5b6-3252-4153-badd-f66dc9c99f15")
)
(fp_line
(start 1.25 1.05)
(end 1.25 1.25)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "876bd629-b0aa-49d5-b616-718eeda391ca")
)
(fp_line
(start 1.25 1.25)
(end -1.25 1.25)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "a93802d4-aff5-4f39-8ccd-5fdf4aebe25f")
)
(fp_line
(start 1.6 -1.05)
(end 1.6 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "12a03192-33f6-4380-a4d9-8c5ae38ab032")
)
(fp_line
(start 1.6 1.05)
(end 1.25 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "10a6e8c2-cc22-4aab-bdfb-85db98f912cc")
)
(fp_poly
(pts
(xy -1 -0.5) (xy -1 1) (xy 1 1) (xy 1 -1) (xy -0.5 -1)
)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Fab")
(uuid "a2941dab-f816-4f41-89dd-b865eff7a883")
)
(fp_text user "${REFERENCE}"
(at 0 0 0)
(layer "F.Fab")
(uuid "aa18be2f-d0a1-44d1-8669-54274aa173c4")
(effects
(font
(size 0.5 0.5)
(thickness 0.08)
)
)
)
(pad "" smd roundrect
(at 0 -0.325)
(size 0.4 0.6)
(layers "F.Paste")
(roundrect_rratio 0.25)
(uuid "37e25d74-591e-49e9-924e-4519eaf540d4")
)
(pad "" smd roundrect
(at 0 0.325)
(size 0.4 0.6)
(layers "F.Paste")
(roundrect_rratio 0.25)
(uuid "7004156b-4647-4bef-924a-7ed6a81db882")
)
(pad "1" smd roundrect
(at -0.925 -0.65)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "bdde3a8d-8d33-4937-b0ad-0d50e86ccb8c")
)
(pad "2" smd roundrect
(at -0.925 0)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "dd9083dc-d20f-4a14-b0f9-0697aea1b0b7")
)
(pad "3" smd roundrect
(at -0.925 0.65)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "dbad49e6-e04c-4d00-8076-80f33204e2ae")
)
(pad "4" smd roundrect
(at 0.925 0.65)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "c641c7a6-bd7d-405a-9515-62ad178df088")
)
(pad "5" smd roundrect
(at 0.925 0)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "e27e4065-c41b-4607-a09b-467fab78503e")
)
(pad "6" smd roundrect
(at 0.925 -0.65)
(size 0.7 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "a4ef7aa4-d314-4065-83f7-4a5c6759b350")
)
(pad "7" smd roundrect
(at 0 0)
(size 0.6 1.37)
(property pad_prop_heatsink)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1666666667)
(chamfer_ratio 0.33)
(chamfer top_left)
(zone_connect 2)
(uuid "e517a4b1-f447-439a-8031-faec2a576488")
)
(embedded_fonts no)
(model "${KICAD9_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/DFN-6-1EP_2x2mm_P0.65mm_EP1x1.6mm.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz 0 0 0)
)
)
)
@@ -0,0 +1,158 @@
(footprint "Filter_3030-6_3x3mm"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(descr "3x3mm SAW Filter")
(property "Reference" "REF**"
(at 0.75 3 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "213d894d-6ec2-4fab-97dd-736e6b6bb77f")
(effects
(font
(size 1 1)
(thickness 0.1)
)
)
)
(property "Value" "Untitled"
(at 0 1 0)
(unlocked yes)
(layer "F.Fab")
(uuid "7376e2db-fb7a-44c1-8a2d-a373d6cf2f7e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "32d85f8e-cc8e-4372-ac73-45070c8048cf")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "0130f194-5e66-4295-bc36-1da1720427fc")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_rect
(start -1.75 -1.75)
(end 1.75 1.75)
(stroke
(width 0.1)
(type default)
)
(fill no)
(layer "F.SilkS")
(uuid "be0a00ae-2de0-4b4a-bb28-5476d17cf852")
)
(fp_poly
(pts
(xy -1.9 1.925) (xy -1.9 2.205) (xy -2.18 1.925) (xy -1.9 1.925)
)
(stroke
(width 0.12)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "e25390ab-15f0-4b7a-8398-1f2cbc79c8ce")
)
(fp_rect
(start -2 -2)
(end 2 2)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "F.CrtYd")
(uuid "1b9282b5-6bf1-4cdd-8a69-cae292b76c49")
)
(fp_text user "${REFERENCE}"
(at 0 2.5 0)
(unlocked yes)
(layer "F.Fab")
(uuid "d3425d63-7a98-4398-876a-2f0467c12bf6")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd roundrect
(at -1.195 0.745)
(size 0.81 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "b12f8af5-6efb-483e-b775-ab69528471fb")
)
(pad "2" smd roundrect
(at 0 1.07)
(size 0.81 1.05)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "9ad8c276-4ac4-4f26-a30d-d3cd27d002ad")
)
(pad "3" smd roundrect
(at 1.195 1.07)
(size 0.81 1.05)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "e9e658b7-e92d-48ac-9e8a-4c4b1122253d")
)
(pad "4" smd roundrect
(at 1.195 -1.07)
(size 0.81 1.05)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "9d58f9fb-3d20-4d8c-b20d-a0dae3e99ebc")
)
(pad "5" smd roundrect
(at 0 -1.07)
(size 0.81 1.05)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "f2ffa158-ca34-4486-9f9c-2bfa47b1c1f1")
)
(pad "6" smd roundrect
(at -1.195 -1.07)
(size 0.81 1.05)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.15)
(uuid "3e3421ba-9e71-4915-8f09-411d4411067c")
)
(embedded_fonts no)
(model "${KIPRJMOD}/shapes3d/User Library-TA0676A SAW Filter 1592_5MHz SMD.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 -0 90)
)
)
)
+341
View File
@@ -0,0 +1,341 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1000" height="1000" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000">
<g transform="translate(0,0) scale(1.0,1.0)">
<svg width="1000" height="1000" viewBox="0 0 740 740" enable-background="new 0 0 1000 1000">
<rect x="240" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="80" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="100" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="120" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="140" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="140" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="140" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="140" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="160" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="160" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="160" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="160" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="180" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="200" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="220" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="220" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="220" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="220" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="220" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="240" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="260" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="120" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="140" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="280" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="300" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="320" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="140" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="340" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="360" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="120" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="140" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="380" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="400" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="420" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="120" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="440" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="460" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="80" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="100" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="140" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="160" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="180" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="200" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="220" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="480" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="500" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="520" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="540" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="560" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="340" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="380" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="580" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="300" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="320" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="460" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="640" y="600" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="260" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="540" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="580" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="600" y="620" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="240" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="280" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="360" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="400" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="420" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="440" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="480" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="500" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="520" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="620" y="640" width="20" height="20" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<path d="M80,80 h140 v140 h-140 Z M100.0,100.0 h100.0 v100.0 h-100.0 Z" fill-rule="evenodd" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<path d="M520,80 h140 v140 h-140 Z M540.0,100.0 h100.0 v100.0 h-100.0 Z" fill-rule="evenodd" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="120" y="120" width="60" height="60" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="560" y="120" width="60" height="60" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<path d="M80,520 h140 v140 h-140 Z M100.0,540.0 h100.0 v100.0 h-100.0 Z" fill-rule="evenodd" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
<rect x="120" y="560" width="60" height="60" fill="rgb(0,0,0)" opacity="1.0" shape-rendering="crispEdges"/>
</svg>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+4
View File
@@ -0,0 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "projlib")(type "KiCad")(uri "${KIPRJMOD}/projlib.kicad_sym")(options "")(descr ""))
)