switch to KiCAD
This commit is contained in:
parent
71caf5f793
commit
9446c621ae
|
@ -1,19 +1,23 @@
|
|||
this will describe how to generate the output file form the sources.
|
||||
this will describe how to generate the output files form the sources.
|
||||
|
||||
requirements
|
||||
============
|
||||
|
||||
to be able to generate the outputs you need following software:
|
||||
to be able to generate the outputs, you need following software:
|
||||
|
||||
- rake: the central script taking care of generating the output files (Makefile is too cumbersome to parse files)
|
||||
- [QEDA](http://qeda.org/): to generate footprints for the parts
|
||||
- [Lepton EDA](https://github.com/lepton-eda/lepton-eda): for the schematic capture
|
||||
- [pcb-rnd](http://repo.hu/projects/pcb-rnd/): for the board layout
|
||||
the output generation is automatized.
|
||||
- [KiCad](https://www.kicad.org/): EDA software used for schematic capture and board layout
|
||||
- [PcbDraw](https://github.com/yaqwsx/PcbDraw): to generate board layout rendering
|
||||
- [KiKit](https://github.com/yaqwsx/KiKit): to generate fabrications files (Gerber, Excellon)
|
||||
- [KiAuto](https://github.com/INTI-CMNB/KiAuto): to generate schematic printout (PDF)
|
||||
- [KiBoM](https://github.com/SchrodingersGat/KiBoM): to generate Bill of Material (CSV)
|
||||
|
||||
compiling
|
||||
=========
|
||||
|
||||
to generate schematic, BoM, board render, and fabrication output, run `rake`.
|
||||
|
||||
library
|
||||
-------
|
||||
|
||||
|
@ -38,18 +42,15 @@ to generate the parts:
|
|||
rake library
|
||||
~~~
|
||||
|
||||
this will use the parts definition (.yaml files) in the `library` to generate [gEDA gschem](http://wiki.geda-project.org/geda:gaf)/[Lepton EDA](https://github.com/lepton-eda/lepton-eda) symbols (.sym files) in the `geda/symbols` folder, and [coralEDA pcb-rnd](http://repo.hu/projects/pcb-rnd/) footprints (.lht files) in the `coraleda/subc` folder.
|
||||
|
||||
only the QEDA parts in subfolders within `library` come from the [QEDA library](https://doc.qeda.org/library/), but the files are included in this project for simplicity and archiving purposes.
|
||||
all other parts are custom and written for this project.
|
||||
this will use the parts definition (.yaml files) in the `library` to generate the symbols (.sym files) and footprints used by KiCAD in the `kicad` folder.
|
||||
|
||||
schematic
|
||||
---------
|
||||
|
||||
the `.sch` file is the schematic source file.
|
||||
it has been drawn using [Lepton EDA](https://github.com/lepton-eda/lepton-eda).
|
||||
the `.kicad_sch` file is the schematic source file.
|
||||
it has been drawn using the [KiCAD eeschema](https://www.kicad.org/) schematic editor.
|
||||
|
||||
it uses standard symbols, and the ones in the `geda/symbols/` folder.
|
||||
it uses standard symbols, and the ones in the `kicad/` folder.
|
||||
most symbols are generated by QEDA as described above.
|
||||
|
||||
to export as pdf:
|
||||
|
@ -68,15 +69,25 @@ rake bom
|
|||
board
|
||||
-----
|
||||
|
||||
the `.lht` file is the board layout source file.
|
||||
it has been drawn using [coralEDA pcb-rnd](http://repo.hu/projects/pcb-rnd/).
|
||||
the `.kicad_brd` file is the board layout source file.
|
||||
it has been drawn using the [KiCAD pcbnew](https://docs.kicad.org/6.0/en/pcbnew/pcbnew.html) PCB editor.
|
||||
|
||||
it uses the symbols from the `coraleda/subc/` folder.
|
||||
it uses the footprints from the `kicad/` folder.
|
||||
most symbols are generated by QEDA as described above.
|
||||
`oshw_logo.lht` is just the Open Source Hardware Logo.
|
||||
it been generated from https://oshwlogo.cuvoodoo.info/.
|
||||
|
||||
to export gerber files for PCB manufacturer (and photo preview + overview document):
|
||||
~~~
|
||||
rake fabrication
|
||||
~~~
|
||||
|
||||
versioning
|
||||
----------
|
||||
|
||||
the source schematic and board layout do not include version information.
|
||||
when generating schematic or board fabrication output, a copy of the source files with date and version information is done as `.versioned.` files.
|
||||
the date corresponds to the last changes (i.e. commit).
|
||||
the version is formatted as `v.r hhhhhhh`:
|
||||
|
||||
- `v` corresponds to the major version information defined in `version`
|
||||
- `r` corresponds to the total number of changes done to the source files
|
||||
- `hhhhhhh` corresponds to the git hash of the commit used to generate the version information
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package,x,y,rot
|
||||
LEDC2012X80N,0,0,-90
|
||||
UC1608X55N,0,0,90
|
||||
SOT95P237X112-3N,0,0,180
|
||||
CONNECTOR_MY-1220-03,0,-1.1,0
|
||||
CONNECTOR_XKB_U262-24XN-4BV64,0,-1.3,180
|
|
|
@ -0,0 +1,69 @@
|
|||
# project file name (use for schematic and board layout)
|
||||
NAME ?= hdmi_firewall
|
||||
# path to qeda
|
||||
QEDA := qeda
|
||||
|
||||
# read project version
|
||||
VERSION := $(shell cat version)
|
||||
# current date for stamping output
|
||||
DATE = $(shell date +%Y-%m-%d)
|
||||
# revision based on number of changes on schematic or board layout and current git commit
|
||||
REVISION := $(shell git log --pretty=oneline "${NAME}.kicad_sch" "${NAME}.kicad_pcb" | wc -l) $(shell git rev-parse --short HEAD)
|
||||
|
||||
# generate file with version information
|
||||
VERSIONED_EXT = kicad_sch kicad_pcb kicad_pro json
|
||||
define version_rule
|
||||
%.versioned.$1: %.$1
|
||||
cp $$< $$@
|
||||
sed --in-place 's/\$$$$version\$$$$/${VERSION}/g' $$@
|
||||
sed --in-place 's/\$$$$date\$$$$/${DATE}/g' $$@
|
||||
sed --in-place 's/\$$$$revision\$$$$/${REVISION}/g' $$@
|
||||
endef
|
||||
$(foreach EXT,$(VERSIONED_EXT),$(eval $(call version_rule,$(EXT))))
|
||||
|
||||
all: ${NAME}.sch.pdf ${NAME}.brd-top.png ${NAME}.brd-bot.png ${NAME}.bom.csv
|
||||
|
||||
# generate fabrication files (gerbers/drill/BoM/PnP)
|
||||
FABRICATION_DIR := fabrication
|
||||
fabrication: ${NAME}.versioned.kicad_sch ${NAME}.versioned.kicad_pcb
|
||||
kikit fab jlcpcb --drc --assembly --schematic $^ ${FABRICATION_DIR}
|
||||
|
||||
# generate symbols and footprints from parts
|
||||
lib:
|
||||
$(QEDA) generate qeda
|
||||
|
||||
# generate printable version (PDF) of schematic
|
||||
%.sch.pdf: %.versioned.kicad_sch %.versioned.kicad_pro
|
||||
eeschema_do export $< .
|
||||
mv $*.versioned.pdf $@
|
||||
|
||||
# generate render from layout (top side)
|
||||
%.brd-top.png: %.versioned.kicad_pcb
|
||||
pcbdraw --silent $< --dpi 600 $@
|
||||
|
||||
# generate render from layout (bottom side)
|
||||
%.brd-bot.png: %.versioned.kicad_pcb
|
||||
pcbdraw --silent $< --dpi 600 --back $@
|
||||
|
||||
# export Bill of Material (as CSV)
|
||||
%.bom.csv: %.versioned.kicad_sch %.versioned.kicad_pro
|
||||
eeschema_do bom_xml $< .
|
||||
kibom $*.versioned.xml $@
|
||||
|
||||
# generate panel
|
||||
PANEL_DIR := panel
|
||||
panel: panel.kicad_pcb
|
||||
panel.kicad_pcb: ${NAME}.versioned.kicad_pcb ${NAME}.versioned.kicad_pro ${NAME}.versioned.kicad_sch ${NAME}.versioned.json
|
||||
kikit panelize -p ${NAME}.versioned.json ${NAME}.versioned.kicad_pcb $@
|
||||
pcbdraw --silent $@ --dpi 600 panel.brd-top.png
|
||||
pcbdraw --silent $@ --dpi 600 --back panel.brd-bot.png
|
||||
sed --in-place 's/\"missing_courtyard\": \"warning\"/\"missing_courtyard\": \"ignore\"/g' $(patsubst %.kicad_pcb,%.kicad_pro,$@) # the mouse bites don't have a courtyard
|
||||
kikit fab jlcpcb --drc --assembly --missingError --schematic ${NAME}.versioned.kicad_sch $@ ${PANEL_DIR}
|
||||
|
||||
clean:
|
||||
rm -f $(foreach EXT,$(VERSIONED_EXT),${NAME}.versioned.$(EXT))
|
||||
rm -f ${NAME}.sch.pdf ${NAME}.brd-top.png ${NAME}.brd-bot.png ${NAME}.versioned.xml ${NAME}.bom.csv
|
||||
rm -f ${NAME}.versioned.kicad_prl ${NAME}.versioned.kicad_pro-bak ${NAME}.versioned.xml ${NAME}.versioned.csv
|
||||
rm -rf ${FABRICATION_DIR}
|
||||
rm -f panel.kicad_pcb panel.kicad_pro
|
||||
rm -rf ${PANEL_DIR}
|
181
Rakefile
181
Rakefile
|
@ -1,181 +0,0 @@
|
|||
# encoding: utf-8
|
||||
# ruby: 2.1.0
|
||||
=begin
|
||||
Rakefile to manage hardware projects
|
||||
|
||||
uses Lepton EDA for schematic and pcb-rnd for board layouts.
|
||||
Rakefile instead of Makefile for better text file parsing capabilities.
|
||||
=end
|
||||
require 'rake/clean'
|
||||
require 'csv' # to export BOM and costs
|
||||
|
||||
# =================
|
||||
# project variables
|
||||
# =================
|
||||
|
||||
# common name used for file names
|
||||
name = "hdmi_firewall"
|
||||
# project version, read from "version" file
|
||||
raise "define project version in 'version' file" unless File.exist? "version"
|
||||
version = IO.read("version").split("\n")[0]
|
||||
# current date for stamping output
|
||||
date = Time.now.strftime("%Y-%m-%d")
|
||||
# revision based on number of changes on schematic or board layout and current git commit
|
||||
changes = `git log --pretty=oneline "#{name}.sch" "#{name}.lht" | wc -l`.chomp.to_i
|
||||
commit = `git rev-parse --short HEAD`.chomp
|
||||
revision = "#{changes} (#{commit})"
|
||||
|
||||
# path to qeda"
|
||||
qeda = "qeda"
|
||||
|
||||
# ==========
|
||||
# main tasks
|
||||
# ==========
|
||||
|
||||
desc "main building task"
|
||||
task :default => [:print, :fabrication, :bom, :pnp]
|
||||
|
||||
desc "print schematic and layout (as pdf)"
|
||||
prints = [ "#{name}.sch.pdf", "#{name}.brd.pdf", "#{name}.brd-top.svg", "#{name}.brd-bottom.svg" ]
|
||||
task :print => prints
|
||||
CLEAN.include([ "#{name}.versioned.sch", "#{name}.versioned.lht" ])
|
||||
CLOBBER.include(prints)
|
||||
|
||||
desc "generate fabrication gerbers (as archive)"
|
||||
gerbers = [ "#{name}.brd.asb", "#{name}.brd.ast", "#{name}.brd.gbl", "#{name}.brd.gbo", "#{name}.brd.gbp", "#{name}.brd.gbs", "#{name}.brd.gko", "#{name}.brd.gtl", "#{name}.brd.gto", "#{name}.brd.gtp", "#{name}.brd.gts", "#{name}.brd.xln", "#{name}.brd.g2l", "#{name}.brd.g3l" ]
|
||||
fab = [ "#{name}.brd.zip" ]
|
||||
task :fabrication => fab
|
||||
CLEAN.include(gerbers)
|
||||
CLOBBER.include(fab)
|
||||
|
||||
desc "generate symbols and footprints from parts"
|
||||
task :library do
|
||||
sh "#{qeda} config output geda"
|
||||
sh "#{qeda} generate ."
|
||||
sh "#{qeda} config output coraleda"
|
||||
sh "#{qeda} generate ."
|
||||
end
|
||||
|
||||
desc "export BOMs from schematic"
|
||||
boms = [ "#{name}.bom.csv" ]
|
||||
task :bom => boms
|
||||
CLOBBER.include(boms)
|
||||
|
||||
desc "export PnP placement"
|
||||
pnps = [ "#{name}.cpl.csv" ]
|
||||
task :pnp => pnps
|
||||
CLOBBER.include(pnps)
|
||||
|
||||
# ===============
|
||||
# file generation
|
||||
# ===============
|
||||
|
||||
desc "generate schematic with version information all symbols embedded"
|
||||
rule ".versioned.sch" => ".sch" do |t|
|
||||
sh "cp #{t.source} #{t.name}"
|
||||
sh "lepton-embed --embed #{t.name} 2> /dev/null"
|
||||
sh "sed --in-place 's/\\$version\\$/#{version}/' #{t.name}"
|
||||
sh "sed --in-place 's/\\$date\\$/#{date}/' #{t.name}"
|
||||
sh "sed --in-place 's/\\$revision\\$/#{revision}/' #{t.name}"
|
||||
end
|
||||
|
||||
desc "generate board layout with version information"
|
||||
rule ".versioned.lht" => ".lht" do |t|
|
||||
sh "cp #{t.source} #{t.name}"
|
||||
sh "sed --in-place 's/\\$version\\$/#{version}/' #{t.name}"
|
||||
sh "sed --in-place 's/\\$date\\$/#{date}/' #{t.name}"
|
||||
sh "sed --in-place 's/\\$revision\\$/#{revision}/' #{t.name}"
|
||||
end
|
||||
|
||||
desc "generate printable version (PDF) of schematic"
|
||||
rule ".sch.pdf" => ".versioned.sch" do |t|
|
||||
sh "lepton-cli export --color --paper=iso_a4 --layout=landscape --output=#{t.name} #{t.source} 2> /dev/null"
|
||||
end
|
||||
|
||||
desc "generate printable version (PostScript) of board layout"
|
||||
rule ".brd.ps" => ".versioned.lht" do |t|
|
||||
sh "pcb-rnd -x ps --ps-color --media A4 --psfile #{t.name} #{t.source} 2> /dev/null"
|
||||
end
|
||||
|
||||
desc "generate printable version (PDF) of board layout"
|
||||
rule ".brd.pdf" => ".brd.ps" do |t|
|
||||
sh "ps2pdf -sPAPERSIZE=a4 -dEPSCrop #{t.source} #{t.name}"
|
||||
end
|
||||
|
||||
desc "generate photo realistic picture from layout (top side)"
|
||||
rule ".brd-top.svg" => ".versioned.lht" do |t|
|
||||
sh "pcb-rnd -x svg --photo-mode --outfile #{t.name} #{t.source} 1> /dev/null"
|
||||
end
|
||||
|
||||
desc "generate photo realistic picture from layout (bottom side)"
|
||||
rule ".brd-bottom.svg" => ".versioned.lht" do |t|
|
||||
sh "pcb-rnd -x svg --photo-mode --flip --outfile #{t.name} #{t.source} 1> /dev/null"
|
||||
end
|
||||
|
||||
desc "archive gerbers"
|
||||
rule ".brd.zip" => ".versioned.lht" do |t|
|
||||
base = File.basename(t.source, ".versioned.lht")
|
||||
dir = "fabrication"
|
||||
sh "mkdir #{dir}" unless File.directory?(dir)
|
||||
sh "pcb-rnd -x cam gerber:JLC_PCB --outfile #{dir}/#{base}.brd #{t.source} 2> /dev/null"
|
||||
sh "zip --quiet #{t.name} #{dir}/*"
|
||||
end
|
||||
|
||||
desc "generate BOM file from schematic"
|
||||
rule ".bom.csv" => ".sch" do |t|
|
||||
attributes = ["device", "value", "description", "footprint", "manufacturer", "mpn", "datasheet", "lcsc", "digikey"]
|
||||
bom_data = bom2(t.prerequisites[0], attributes)
|
||||
CSV.open(t.name, "wb") do |csv|
|
||||
all_attributes = ["refdes","qty"] + attributes
|
||||
csv << all_attributes
|
||||
bom_data.each do |line|
|
||||
csv << all_attributes.collect{|attribute| line[attribute]}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
desc "generate pick-and-place file from board"
|
||||
rule ".cpl.csv" => [".versioned.lht", "mass_prop.sh", "pnp_fab.tab"] do |t|
|
||||
sh "./mass_prop.sh #{t.prerequisites[0]} pnp_fab.tab" # add fab placement offsets
|
||||
sh "pcb-rnd -x XY --xyfile #{t.name} --xy-unit mm --format 'JLCPCB' --vendor jlcpcb #{t.prerequisites[0]}" # export XY file in JLCPCB format
|
||||
end
|
||||
|
||||
# ================
|
||||
# helper functions
|
||||
# ================
|
||||
|
||||
# generate gnetlist bom2 and parse them
|
||||
# arguments: schematic=schematic to use, attributes=attributes to use for generating bom2
|
||||
# returns an array of hash. key is the attribute name, value is the attribute value
|
||||
def bom2(schematic, attributes)
|
||||
to_return = []
|
||||
# force attributes to be an array
|
||||
attributes = case attributes
|
||||
when String
|
||||
[attributes]
|
||||
when Array
|
||||
attributes
|
||||
else
|
||||
[attributes.to_s]
|
||||
end
|
||||
# generate bom2
|
||||
list = `lepton-netlist --backend bom2 --backend-option attribs=#{attributes*','} --quiet --output - #{schematic} 2> /dev/null`
|
||||
list = list.each_line {|l| '"' + l + '"' + '\n' }
|
||||
list.gsub!(/^(.+)/, '"\1')
|
||||
list.gsub!(/(.+)$/, '\1"')
|
||||
list.gsub!(/(?!http):(?!\/\/)/, '\1":"\2') # protect the values between ':' (such as URLs)
|
||||
# parse bom2
|
||||
csv = CSV.parse(list, col_sep: ":", quote_char: '"')
|
||||
if csv.empty? then
|
||||
$stderr.puts "no parts found for BOM"
|
||||
return []
|
||||
end
|
||||
csv[1..-1].each do |row|
|
||||
line = {}
|
||||
row.each_index do |col|
|
||||
line[csv[0][col]] = row[col] unless row[col] == "unknown"
|
||||
end
|
||||
to_return << line
|
||||
end
|
||||
return to_return
|
||||
end
|
|
@ -0,0 +1,42 @@
|
|||
[BOM_OPTIONS]
|
||||
ignore_dnf = 0
|
||||
number_rows = 0
|
||||
group_connectors = 1
|
||||
test_regex = 0
|
||||
merge_blank_fields = 1
|
||||
output_file_name = %O%V
|
||||
|
||||
[IGNORE_COLUMNS]
|
||||
; Any column heading that appears here will be excluded from the Generated BoM
|
||||
; Titles are case-insensitive
|
||||
Part
|
||||
Part Lib
|
||||
Footprint
|
||||
Footprint Lib
|
||||
Build Quantity
|
||||
sheetpath
|
||||
|
||||
[COLUMN_ORDER]
|
||||
; Columns will apear in the order they are listed here
|
||||
; Titles are case-insensitive
|
||||
References
|
||||
Value
|
||||
Quantity Per PCB
|
||||
Description
|
||||
Part
|
||||
Part Lib
|
||||
Footprint
|
||||
Footprint Lib
|
||||
Build Quantity
|
||||
LCSC
|
||||
Datasheet
|
||||
|
||||
[GROUP_FIELDS]
|
||||
; List of fields used for sorting individual components into groups
|
||||
; Components which match (comparing *all* fields) will be grouped together
|
||||
; Field names are case-insensitive
|
||||
Part
|
||||
Part Lib
|
||||
Value
|
||||
Footprint
|
||||
Footprint Lib
|
|
@ -1,307 +0,0 @@
|
|||
# subcircuit generated using QEDA
|
||||
li:pcb-rnd-subcircuit-v6 {
|
||||
ha:subc.1 {
|
||||
uid = CAPC1608X92N............
|
||||
ha:attributes {
|
||||
footprint = CAPC1608X92N
|
||||
}
|
||||
ha:data {
|
||||
li:padstack_prototypes {
|
||||
ha:ps_proto_v6.2 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 0
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
li:ps_poly {
|
||||
-0.625mm
|
||||
-0.550mm
|
||||
0.625mm
|
||||
-0.550mm
|
||||
0.625mm
|
||||
0.550mm
|
||||
-0.625mm
|
||||
0.550mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.675mm
|
||||
-0.600mm
|
||||
0.675mm
|
||||
-0.600mm
|
||||
0.675mm
|
||||
0.600mm
|
||||
-0.675mm
|
||||
0.600mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.625mm
|
||||
-0.550mm
|
||||
0.625mm
|
||||
-0.550mm
|
||||
0.625mm
|
||||
0.550mm
|
||||
-0.625mm
|
||||
0.550mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
paste = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
li:objects {
|
||||
ha:padstack_ref.23 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 0.000mm
|
||||
y = -0.750mm
|
||||
ha:attributes {
|
||||
term = 1
|
||||
name = 1
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.24 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 0.000mm
|
||||
y = 0.750mm
|
||||
ha:attributes {
|
||||
term = 2
|
||||
name = 2
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
li:layers {
|
||||
ha:subc-aux {
|
||||
lid = 0
|
||||
ha:type {
|
||||
top = 1
|
||||
misc = 1
|
||||
virtual = 1
|
||||
}
|
||||
li:objects {
|
||||
ha:line.25 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = origin
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
ha:line.26 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = x
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 1.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
ha:line.27 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = y
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 1.000mm
|
||||
}
|
||||
ha:line.28 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = pnp-origin
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-silkscreen {
|
||||
lid = 1
|
||||
ha:type {
|
||||
top = 1
|
||||
silk = 1
|
||||
}
|
||||
li:objects {
|
||||
ha:text.29 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
rot = 0
|
||||
scale = 100
|
||||
string = %a.parent.refdes%
|
||||
fid = 0
|
||||
ha:flags {
|
||||
floater = 1
|
||||
dyntext = 1
|
||||
}
|
||||
}
|
||||
ha:line.30 {
|
||||
x1 = -0.925mm
|
||||
y1 = -0.900mm
|
||||
x2 = -0.925mm
|
||||
y2 = 0.900mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.31 {
|
||||
x1 = 0.925mm
|
||||
y1 = -0.900mm
|
||||
x2 = 0.925mm
|
||||
y2 = 0.900mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-assembly {
|
||||
lid = 2
|
||||
ha:type {
|
||||
top = 1
|
||||
doc = 1
|
||||
}
|
||||
purpose = assy
|
||||
li:objects {
|
||||
ha:arc.32 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
width = 0.500mm
|
||||
height = 0.500mm
|
||||
thickness = 0.100mm
|
||||
astart = 0
|
||||
adelta = 360
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.33 {
|
||||
x1 = -0.700mm
|
||||
y1 = 0.000mm
|
||||
x2 = 0.700mm
|
||||
y2 = 0.000mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.34 {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.700mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.700mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:text.35 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
rot = 90
|
||||
scale = 53
|
||||
string = CAPC1608X92N
|
||||
fid = 0
|
||||
ha:flags {
|
||||
floater = 1
|
||||
}
|
||||
}
|
||||
ha:line.36 {
|
||||
x1 = -0.400mm
|
||||
y1 = -0.800mm
|
||||
x2 = 0.400mm
|
||||
y2 = -0.800mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.37 {
|
||||
x1 = 0.400mm
|
||||
y1 = -0.800mm
|
||||
x2 = 0.400mm
|
||||
y2 = 0.800mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.38 {
|
||||
x1 = 0.400mm
|
||||
y1 = 0.800mm
|
||||
x2 = -0.400mm
|
||||
y2 = 0.800mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.39 {
|
||||
x1 = -0.400mm
|
||||
y1 = 0.800mm
|
||||
x2 = -0.400mm
|
||||
y2 = -0.800mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-courtyard {
|
||||
lid = 3
|
||||
ha:type {
|
||||
top = 1
|
||||
doc = 1
|
||||
}
|
||||
purpose = ko.courtyard
|
||||
li:objects {
|
||||
ha:polygon.40 {
|
||||
li:geometry {
|
||||
ta:contour {
|
||||
{ -0.875mm; -1.550mm }
|
||||
{ -0.875mm; -1.050mm }
|
||||
{ -0.875mm; 1.050mm }
|
||||
{ -0.875mm; 1.550mm }
|
||||
{ 0.875mm; 1.550mm }
|
||||
{ 0.875mm; 1.050mm }
|
||||
{ 0.875mm; -1.050mm }
|
||||
{ 0.875mm; -1.550mm }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,873 +0,0 @@
|
|||
# subcircuit generated using QEDA
|
||||
li:pcb-rnd-subcircuit-v6 {
|
||||
ha:subc.1 {
|
||||
uid = CONNECTOR_HDMI-001S.....
|
||||
ha:attributes {
|
||||
footprint = CONNECTOR_HDMI-001S
|
||||
}
|
||||
ha:data {
|
||||
li:padstack_prototypes {
|
||||
ha:ps_proto_v6.2 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 0
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
li:ps_poly {
|
||||
-0.150mm
|
||||
-1.300mm
|
||||
0.150mm
|
||||
-1.300mm
|
||||
0.150mm
|
||||
1.300mm
|
||||
-0.150mm
|
||||
1.300mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.200mm
|
||||
-1.350mm
|
||||
0.200mm
|
||||
-1.350mm
|
||||
0.200mm
|
||||
1.350mm
|
||||
-0.200mm
|
||||
1.350mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.150mm
|
||||
-1.300mm
|
||||
0.150mm
|
||||
-1.300mm
|
||||
0.150mm
|
||||
1.300mm
|
||||
-0.150mm
|
||||
1.300mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
paste = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:ps_proto_v6.3 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 1
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.350mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.350mm
|
||||
thickness = 0.900mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
mech = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.400mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.400mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.400mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.400mm
|
||||
thickness = 1.600mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.400mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.400mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
intern = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.400mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.400mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.400mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.400mm
|
||||
thickness = 1.600mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:ps_proto_v6.4 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 1
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.900mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.900mm
|
||||
thickness = 0.900mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
mech = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.950mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.950mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.950mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.950mm
|
||||
thickness = 1.600mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.950mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.950mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
intern = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.950mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.950mm
|
||||
thickness = 1.500mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
ha:ps_line {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.950mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.950mm
|
||||
thickness = 1.600mm
|
||||
square = 0
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
li:objects {
|
||||
ha:padstack_ref.27 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -4.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 1
|
||||
name = 1
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.28 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -4.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 2
|
||||
name = 2
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.29 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -3.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 3
|
||||
name = 3
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.30 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -3.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 4
|
||||
name = 4
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.31 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -2.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 5
|
||||
name = 5
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.32 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -2.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 6
|
||||
name = 6
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.33 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -1.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 7
|
||||
name = 7
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.34 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -1.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 8
|
||||
name = 8
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.35 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = -0.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 9
|
||||
name = 9
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.36 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 0.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 10
|
||||
name = 10
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.37 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 0.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 11
|
||||
name = 11
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.38 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 1.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 12
|
||||
name = 12
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.39 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 1.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 13
|
||||
name = 13
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.40 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 2.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 14
|
||||
name = 14
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.41 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 2.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 15
|
||||
name = 15
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.42 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 3.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 16
|
||||
name = 16
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.43 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 3.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 17
|
||||
name = 17
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.44 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 4.000mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 18
|
||||
name = 18
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.45 {
|
||||
proto = 2
|
||||
rot = 0
|
||||
x = 4.500mm
|
||||
y = 4.235mm
|
||||
ha:attributes {
|
||||
term = 19
|
||||
name = 19
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.46 {
|
||||
proto = 3
|
||||
rot = 0
|
||||
x = -7.250mm
|
||||
y = -2.485mm
|
||||
ha:attributes {
|
||||
term = NC1
|
||||
name = NC1
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.47 {
|
||||
proto = 3
|
||||
rot = 0
|
||||
x = 7.250mm
|
||||
y = -2.485mm
|
||||
ha:attributes {
|
||||
term = NC2
|
||||
name = NC2
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.48 {
|
||||
proto = 4
|
||||
rot = 0
|
||||
x = -7.250mm
|
||||
y = 3.475mm
|
||||
ha:attributes {
|
||||
term = NC3
|
||||
name = NC3
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
ha:padstack_ref.49 {
|
||||
proto = 4
|
||||
rot = 0
|
||||
x = 7.250mm
|
||||
y = 3.475mm
|
||||
ha:attributes {
|
||||
term = NC4
|
||||
name = NC4
|
||||
}
|
||||
clearance = 0.200mm
|
||||
ha:flags {
|
||||
clearline = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
li:layers {
|
||||
ha:subc-aux {
|
||||
lid = 0
|
||||
ha:type {
|
||||
top = 1
|
||||
misc = 1
|
||||
virtual = 1
|
||||
}
|
||||
li:objects {
|
||||
ha:line.50 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = origin
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
ha:line.51 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = x
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 1.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
ha:line.52 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = y
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 1.000mm
|
||||
}
|
||||
ha:line.53 {
|
||||
clearance = 0
|
||||
thickness = 0.1mm
|
||||
ha:attributes {
|
||||
subc-role = pnp-origin
|
||||
}
|
||||
x1 = 0.000mm
|
||||
x2 = 0.000mm
|
||||
y1 = 0.000mm
|
||||
y2 = 0.000mm
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-silkscreen {
|
||||
lid = 1
|
||||
ha:type {
|
||||
top = 1
|
||||
silk = 1
|
||||
}
|
||||
li:objects {
|
||||
ha:text.54 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
rot = 0
|
||||
scale = 100
|
||||
string = %a.parent.refdes%
|
||||
fid = 0
|
||||
ha:flags {
|
||||
floater = 1
|
||||
dyntext = 1
|
||||
}
|
||||
}
|
||||
ha:line.55 {
|
||||
x1 = -7.600mm
|
||||
y1 = -6.175mm
|
||||
x2 = 7.600mm
|
||||
y2 = -6.175mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.56 {
|
||||
x1 = 7.600mm
|
||||
y1 = -6.175mm
|
||||
x2 = 7.600mm
|
||||
y2 = -3.935mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.57 {
|
||||
x1 = 7.600mm
|
||||
y1 = -1.035mm
|
||||
x2 = 7.600mm
|
||||
y2 = 1.475mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.58 {
|
||||
x1 = 7.600mm
|
||||
y1 = 5.475mm
|
||||
x2 = 7.600mm
|
||||
y2 = 6.175mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.59 {
|
||||
x1 = 7.600mm
|
||||
y1 = 6.175mm
|
||||
x2 = -7.600mm
|
||||
y2 = 6.175mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.60 {
|
||||
x1 = -7.600mm
|
||||
y1 = -6.175mm
|
||||
x2 = -7.600mm
|
||||
y2 = -3.935mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.61 {
|
||||
x1 = -7.600mm
|
||||
y1 = -1.035mm
|
||||
x2 = -7.600mm
|
||||
y2 = 1.475mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.62 {
|
||||
x1 = -7.600mm
|
||||
y1 = 5.475mm
|
||||
x2 = -7.600mm
|
||||
y2 = 6.175mm
|
||||
thickness = 0.200mm
|
||||
clearance = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-assembly {
|
||||
lid = 2
|
||||
ha:type {
|
||||
top = 1
|
||||
doc = 1
|
||||
}
|
||||
purpose = assy
|
||||
li:objects {
|
||||
ha:arc.63 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
width = 0.500mm
|
||||
height = 0.500mm
|
||||
thickness = 0.100mm
|
||||
astart = 0
|
||||
adelta = 360
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.64 {
|
||||
x1 = -0.700mm
|
||||
y1 = 0.000mm
|
||||
x2 = 0.700mm
|
||||
y2 = 0.000mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.65 {
|
||||
x1 = 0.000mm
|
||||
y1 = -0.700mm
|
||||
x2 = 0.000mm
|
||||
y2 = 0.700mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:text.66 {
|
||||
x = 0.000mm
|
||||
y = 0.000mm
|
||||
rot = 0
|
||||
scale = 100
|
||||
string = CONNECTOR_HDMI-001S
|
||||
fid = 0
|
||||
ha:flags {
|
||||
floater = 1
|
||||
}
|
||||
}
|
||||
ha:line.67 {
|
||||
x1 = -7.500mm
|
||||
y1 = -6.075mm
|
||||
x2 = 7.500mm
|
||||
y2 = -6.075mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.68 {
|
||||
x1 = 7.500mm
|
||||
y1 = -6.075mm
|
||||
x2 = 7.500mm
|
||||
y2 = 6.075mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.69 {
|
||||
x1 = 7.500mm
|
||||
y1 = 6.075mm
|
||||
x2 = -7.500mm
|
||||
y2 = 6.075mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
ha:line.70 {
|
||||
x1 = -7.500mm
|
||||
y1 = 6.075mm
|
||||
x2 = -7.500mm
|
||||
y2 = -6.075mm
|
||||
thickness = 0.100mm
|
||||
clearance = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:top-courtyard {
|
||||
lid = 3
|
||||
ha:type {
|
||||
top = 1
|
||||
doc = 1
|
||||
}
|
||||
purpose = ko.courtyard
|
||||
li:objects {
|
||||
ha:polygon.71 {
|
||||
li:geometry {
|
||||
ta:contour {
|
||||
{ -8.250mm; -6.325mm }
|
||||
{ 8.250mm; -6.325mm }
|
||||
{ 8.250mm; 6.325mm }
|
||||
{ -8.250mm; 6.325mm }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,825 +0,0 @@
|
|||
# subcircuit generated using QEDA
|
||||
li:pcb-rnd-subcircuit-v6 {
|
||||
ha:subc.1 {
|
||||
uid = CONNECTOR_HYC109-HDMIA19
|
||||
ha:attributes {
|
||||
footprint = CONNECTOR_HYC109-HDMIA19-160
|
||||
}
|
||||
ha:data {
|
||||
li:padstack_prototypes {
|
||||
ha:ps_proto_v6.2 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 0
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
li:ps_poly {
|
||||
-0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
0.975mm
|
||||
-0.250mm
|
||||
0.975mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.300mm
|
||||
-1.025mm
|
||||
0.300mm
|
||||
-1.025mm
|
||||
0.300mm
|
||||
1.025mm
|
||||
-0.300mm
|
||||
1.025mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
0.975mm
|
||||
-0.250mm
|
||||
0.975mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
paste = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:ps_proto_v6.3 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 0
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
li:ps_poly {
|
||||
-0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
0.975mm
|
||||
-0.250mm
|
||||
0.975mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.300mm
|
||||
-1.025mm
|
||||
0.300mm
|
||||
-1.025mm
|
||||
0.300mm
|
||||
1.025mm
|
||||
-0.300mm
|
||||
1.025mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
-0.975mm
|
||||
0.250mm
|
||||
0.975mm
|
||||
-0.250mm
|
||||
0.975mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
bottom = 1
|
||||
paste = 1
|
||||
}
|
||||
ha:combining {
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ha:ps_proto_v6.4 {
|
||||
htop = 0
|
||||
hbottom = 0
|
||||
hdia = 0
|
||||
hplated = 0
|
||||
li:shape {
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0.200mm
|
||||
li:ps_poly {
|
||||
-0.500mm
|
||||
-1.400mm
|
||||
0.500mm
|
||||
-1.400mm
|
||||
0.500mm
|
||||
1.400mm
|
||||
-0.500mm
|
||||
1.400mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
copper = 1
|
||||
}
|
||||
ha:combining {
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.550mm
|
||||
-1.450mm
|
||||
0.550mm
|
||||
-1.450mm
|
||||
0.550mm
|
||||
1.450mm
|
||||
-0.550mm
|
||||
1.450mm
|
||||
}
|
||||
ha:layer_mask {
|
||||
top = 1
|
||||
mask = 1
|
||||
}
|
||||
ha:combining {
|
||||
sub = 1
|
||||
auto = 1
|
||||
}
|
||||
}
|
||||
ha:ps_shape_v4 {
|
||||
clearance = 0
|
||||
li:ps_poly {
|
||||
-0.500mm
|
||||
-1.400mm
|
||||
0.500mm
|
||||
-1.400mm
|
||||