restart with KiCAD

This commit is contained in:
King Kévin 2022-06-17 19:41:42 +02:00
parent aad492c792
commit 540f27afdb
37 changed files with 708 additions and 13215 deletions

46
.gitignore vendored
View File

@ -1,31 +1,35 @@
# schematic lepton-EDA
*.sch
# board layout pcb-rnd
*.lht
*.lht.*
*.versioned.lht
# KiCAD
*.kicad_prl
*.kicad_pro-bak
*.xml
fp-info-cache
# temporary files
*~
*.versioned.sch
\#*\#
# outputs
*.svg
*.png
*.pdf
*.ps
*.zip
*.brd.*
*.ast
*.g2l
*.g3l
*.gbl
*.gbo
*.gbp
*.gbs
*.gko
*.gtl
*.gto
*.gtp
*.gts
*.xln
*.tdx
\#*\#
*.notes.txt
*.bom.csv
*.cost.csv
*.cpl.csv
*.versioned.*
fabrication
# scripts and utilities
*.json
*.rb
geda/footprints/
# panel files
panel.*
panel

View File

@ -1,5 +1,6 @@
config:
output: coraleda
nodate: true
output: kicad
pattern:
densityLevel: 'N'
lineWidth:
@ -8,9 +9,6 @@ config:
preferManufacturer: false
smoothPadCorners: false
library:
- connector/usb-a-3.0_fci_10117835
- connector/usb-c_xkb_u262-24xn-4bv60
- resistor/r0603
- capacitor/c0603
- diode/led0805
- connector/battery_my-1220-03
- transistor/nmos_bss138

View File

@ -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

6
JLCPCB_CORRECTION.csv Normal file
View File

@ -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
1 package x y rot
2 LEDC2012X80N 0 0 -90
3 UC1608X55N 0 0 90
4 SOT95P237X112-3N 0 0 180
5 CONNECTOR_MY-1220-03 0 -1.1 0
6 CONNECTOR_XKB_U262-24XN-4BV64 0 -1.3 180

180
Rakefile
View File

@ -3,7 +3,13 @@
=begin
Rakefile to manage hardware projects
uses Lepton EDA for schematic and pcb-rnd for board layouts.
uses following tools:
- QEDA https://github.com/qeda/qeda
- PcbDraw https://github.com/yaqwsx/PcbDraw
- KiKit https://github.com/yaqwsx/KiKit
- KiAuto https://github.com/INTI-CMNB/KiAuto
- KiBoM https://github.com/SchrodingersGat/KiBoM
Rakefile instead of Makefile for better text file parsing capabilities.
=end
require 'rake/clean'
@ -14,168 +20,106 @@ require 'csv' # to export BOM and costs
# =================
# common name used for file names
name = "usb-ac_cable_tester"
name = ENV["NAME"] || "usb-ac_cable_tester"
# 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
changes = `git log --pretty=oneline "#{name}.kicad_sch" "#{name}.kicad_pcb" | wc -l`.chomp.to_i
commit = `git rev-parse --short HEAD`.chomp
revision = "#{changes} (#{commit})"
revision = "#{changes} #{commit}"
# path to qeda"
qeda = "qeda"
qeda = "~/tmp/qeda/bin/qeda"
# ==========
# main tasks
# ==========
desc "main building task"
task :default => [:print, :fabrication, :bom, :pnp]
task :default => [:print, :fabrication, :bom]
desc "print schematic and layout (as pdf)"
prints = [ "#{name}.sch.pdf", "#{name}.brd.pdf", "#{name}.brd-top.svg", "#{name}.brd-bottom.svg" ]
prints = [ "#{name}.sch.pdf", "#{name}.brd-top.png", "#{name}.brd-bot.png" ]
task :print => prints
CLEAN.include([ "#{name}.versioned.sch", "#{name}.versioned.lht" ])
CLEAN.include([ "#{name}.versioned.kicad_sch", "#{name}.versioned.kicad_pcb" ])
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 fabrication files (gerbers/drill/BoM/PnP)"
FABRICATION_DIR = "fabrication"
task :fabrication => [ "#{name}.versioned.kicad_sch", "#{name}.versioned.kicad_pcb" ] do |t|
sh "kikit fab jlcpcb --drc --assembly --missingError --schematic #{t.prerequisites[0]} #{t.prerequisites[1]} #{FABRICATION_DIR}"
end
CLEAN.include(FABRICATION_DIR)
desc "generate symbols and footprints from parts"
task :lib => :library
task :library do
sh "#{qeda} config output geda"
sh "#{qeda} generate ."
sh "#{qeda} config output coraleda"
sh "#{qeda} generate ."
sh "#{qeda} config output kicad"
sh "#{qeda} generate qeda"
end
desc "export BOMs from schematic"
desc "export Bill of Material (as CSV)"
boms = [ "#{name}.bom.csv" ]
task :bom => boms
CLEAN.include([ "#{name}.versioned.xml" ])
CLOBBER.include(boms)
desc "export PnP placement"
pnps = [ "#{name}.cpl.csv" ]
task :pnp => pnps
CLOBBER.include(pnps)
desc "generate panel"
PANEL_DIR = "panel"
panels = ["panel.kicad_pcb", "panel.kicad_pro", "panel.top.png", "panel.bot.png"]
task :panel => panels
CLOBBER.include(panels)
CLOBBER.include(PANEL_DIR)
# ===============
# 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}"
desc "generate file with version information"
VERSIONED = [".kicad_sch", ".kicad_pcb", ".kicad_pro", ".json"]
VERSIONED.each do |ext|
rule ".versioned" + ext => ext do |t|
sh "cp #{t.source} #{t.name}"
sh "sed --in-place 's/\\$version\\$/#{version}/g' #{t.name}"
sh "sed --in-place 's/\\$date\\$/#{date}/g' #{t.name}"
sh "sed --in-place 's/\\$revision\\$/#{revision}/g' #{t.name}"
end
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"
rule ".sch.pdf" => [".versioned.kicad_sch", ".versioned.kicad_pro"] do |t|
sh "eeschema_do export #{t.prerequisites[0]} ."
sh "mv #{t.prerequisites[0].split('.kicad_sch')[0]}.pdf #{t.name}"
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"
desc "generate render from layout (top side)"
rule ".brd-top.png" => ".versioned.kicad_pcb" do |t|
sh "pcbdraw --silent #{t.source} --dpi 600 #{t.name}"
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}"
desc "generate render from layout (bottom side)"
rule ".brd-bot.png" => ".versioned.kicad_pcb" do |t|
sh "pcbdraw --silent #{t.source} --dpi 600 --back #{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"
desc "generate netlist"
rule ".versioned.xml" => ".versioned.kicad_sch" do |t|
sh "eeschema_do bom_xml #{t.source} ."
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"
desc "generate BOM"
rule ".bom.csv" => ".versioned.xml" do |t|
sh "kibom #{t.source} #{t.name}"
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
desc "generate panel"
rule panels[0] => ["#{name}.versioned.kicad_pcb", "#{name}.versioned.kicad_pro", "#{name}.versioned.kicad_sch", "panel.versioned.json"] do |t|
sh "kikit panelize -p #{t.prerequisites[3]} #{t.prerequisites[0]} #{panels[0]}"
sh "pcbdraw --silent #{t.name} --dpi 600 #{panels[2]}"
sh "pcbdraw --silent #{t.name} --dpi 600 --back #{panels[3]}"
sh "sed --in-place 's/\"missing_courtyard\": \"warning\"/\"missing_courtyard\": \"ignore\"/g' #{panels[1]}" # the mouse bites don't have a courtyard
sh "kikit fab jlcpcb --drc --assembly --missingError --schematic #{t.prerequisites[2]} #{panels[0]} #{PANEL_DIR}"
end

View File

@ -1,557 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_FCI_10117835..
ha:attributes {
footprint = CONNECTOR_FCI_10117835
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 0.700mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.100mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.150mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.100mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.100mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.150mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
ha:ps_proto_v6.3 {
htop = 0
hbottom = 0
hdia = 2.300mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.450mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 3.500mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.450mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.450mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 3.500mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.24 {
proto = 2
rot = 0
x = -3.500mm
y = -5.430mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.25 {
proto = 2
rot = 0
x = -1.000mm
y = -5.430mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.26 {
proto = 2
rot = 0
x = 1.000mm
y = -5.430mm
ha:attributes {
term = 3
name = 3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.27 {
proto = 2
rot = 0
x = 3.500mm
y = -5.430mm
ha:attributes {
term = 4
name = 4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 2
rot = 0
x = 4.000mm
y = -6.930mm
ha:attributes {
term = 5
name = 5
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 2
rot = 0
x = 2.000mm
y = -6.930mm
ha:attributes {
term = 6
name = 6
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.30 {
proto = 2
rot = 0
x = 0.000mm
y = -6.930mm
ha:attributes {
term = 7
name = 7
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.31 {
proto = 2
rot = 0
x = -2.000mm
y = -6.930mm
ha:attributes {
term = 8
name = 8
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.32 {
proto = 2
rot = 0
x = -4.000mm
y = -6.930mm
ha:attributes {
term = 9
name = 9
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.33 {
proto = 3
rot = 0
x = -6.570mm
y = -3.430mm
ha:attributes {
term = 10
name = 10
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.34 {
proto = 3
rot = 0
x = 6.570mm
y = -3.430mm
ha:attributes {
term = 11
name = 11
}
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.35 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.430mm
y2 = -3.430mm
}
ha:line.36 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = -3.430mm
y2 = -3.430mm
}
ha:line.37 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.430mm
y2 = -2.430mm
}
ha:line.38 {
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.39 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.40 {
x1 = -8.040mm
y1 = -8.450mm
x2 = 8.040mm
y2 = -8.450mm
thickness = 0.200mm
clearance = 0
}
ha:line.41 {
x1 = 8.040mm
y1 = -8.450mm
x2 = 8.040mm
y2 = -5.455mm
thickness = 0.200mm
clearance = 0
}
ha:line.42 {
x1 = 8.040mm
y1 = -1.405mm
x2 = 8.040mm
y2 = 8.450mm
thickness = 0.200mm
clearance = 0
}
ha:line.43 {
x1 = 8.040mm
y1 = 8.450mm
x2 = -8.040mm
y2 = 8.450mm
thickness = 0.200mm
clearance = 0
}
ha:line.44 {
x1 = -8.040mm
y1 = -8.450mm
x2 = -8.040mm
y2 = -5.455mm
thickness = 0.200mm
clearance = 0
}
ha:line.45 {
x1 = -8.040mm
y1 = -1.405mm
x2 = -8.040mm
y2 = 8.450mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.46 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.47 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.48 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.49 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 100
string = CONNECTOR_FCI_10117835
fid = 0
ha:flags {
floater = 1
}
}
ha:line.50 {
x1 = -7.940mm
y1 = -8.350mm
x2 = 7.940mm
y2 = -8.350mm
thickness = 0.100mm
clearance = 0
}
ha:line.51 {
x1 = 7.940mm
y1 = -8.350mm
x2 = 7.940mm
y2 = 8.350mm
thickness = 0.100mm
clearance = 0
}
ha:line.52 {
x1 = 7.940mm
y1 = 8.350mm
x2 = -7.940mm
y2 = 8.350mm
thickness = 0.100mm
clearance = 0
}
ha:line.53 {
x1 = -7.940mm
y1 = 8.350mm
x2 = -7.940mm
y2 = -8.350mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.54 {
li:geometry {
ta:contour {
{ -8.545mm; -8.600mm }
{ 8.545mm; -8.600mm }
{ 8.545mm; 8.600mm }
{ -8.545mm; 8.600mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,426 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_MY-1220-03....
ha:attributes {
footprint = CONNECTOR_MY-1220-03
}
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 {
-1.950mm
-2.100mm
1.950mm
-2.100mm
1.950mm
2.100mm
-1.950mm
2.100mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-2.000mm
-2.150mm
2.000mm
-2.150mm
2.000mm
2.150mm
-2.000mm
2.150mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-1.950mm
-2.100mm
1.950mm
-2.100mm
1.950mm
2.100mm
-1.950mm
2.100mm
}
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
ha:ps_circ {
x = 0
y = 0
dia = 9.000mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 9.050mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 9.000mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.27 {
proto = 2
rot = 0
x = -7.550mm
y = -0.900mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 2
rot = 0
x = 7.550mm
y = -0.900mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 3
rot = 0
x = 0.000mm
y = -0.900mm
ha:attributes {
term = 3
name = 3
}
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.30 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -0.900mm
y2 = -0.900mm
}
ha:line.31 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = -0.900mm
y2 = -0.900mm
}
ha:line.32 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -0.900mm
y2 = 0.100mm
}
ha:line.33 {
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.34 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.35 {
x1 = -6.600mm
y1 = 3.000mm
x2 = -3.600mm
y2 = 6.000mm
thickness = 0.200mm
clearance = 0
}
ha:line.36 {
x1 = -3.600mm
y1 = 6.000mm
x2 = 3.600mm
y2 = 6.000mm
thickness = 0.200mm
clearance = 0
}
ha:line.37 {
x1 = 3.600mm
y1 = 6.000mm
x2 = 6.600mm
y2 = 3.000mm
thickness = 0.200mm
clearance = 0
}
ha:line.38 {
x1 = -6.700mm
y1 = -6.100mm
x2 = 6.700mm
y2 = -6.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.39 {
x1 = 6.700mm
y1 = -6.100mm
x2 = 6.700mm
y2 = -3.300mm
thickness = 0.200mm
clearance = 0
}
ha:line.40 {
x1 = 6.700mm
y1 = 1.500mm
x2 = 6.700mm
y2 = 6.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.41 {
x1 = 6.700mm
y1 = 6.100mm
x2 = -6.700mm
y2 = 6.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.42 {
x1 = -6.700mm
y1 = -6.100mm
x2 = -6.700mm
y2 = -3.300mm
thickness = 0.200mm
clearance = 0
}
ha:line.43 {
x1 = -6.700mm
y1 = 1.500mm
x2 = -6.700mm
y2 = 6.100mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.44 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.45 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.46 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.47 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = CONNECTOR_MY-1220-03
fid = 0
ha:flags {
floater = 1
}
}
ha:line.48 {
x1 = -6.600mm
y1 = -6.000mm
x2 = 6.600mm
y2 = -6.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.49 {
x1 = 6.600mm
y1 = -6.000mm
x2 = 6.600mm
y2 = 6.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.50 {
x1 = 6.600mm
y1 = 6.000mm
x2 = -6.600mm
y2 = 6.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.51 {
x1 = -6.600mm
y1 = 6.000mm
x2 = -6.600mm
y2 = -6.000mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.52 {
li:geometry {
ta:contour {
{ -9.750mm; -6.250mm }
{ 9.750mm; -6.250mm }
{ 9.750mm; 6.250mm }
{ -9.750mm; 6.250mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,963 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_XKB_U262-24XN-
ha:attributes {
footprint = CONNECTOR_XKB_U262-24XN-4BV60
}
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
-0.450mm
0.150mm
-0.450mm
0.150mm
0.450mm
-0.150mm
0.450mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.200mm
-0.500mm
0.200mm
-0.500mm
0.200mm
0.500mm
-0.200mm
0.500mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.150mm
-0.450mm
0.150mm
-0.450mm
0.150mm
0.450mm
-0.150mm
0.450mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
ha:ps_proto_v6.3 {
htop = 0
hbottom = 0
hdia = 0.400mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.700mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.750mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.700mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.700mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.750mm
}
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 0.500mm
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 0.900mm
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 1.000mm
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 0.900mm
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 0.900mm
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.300mm
x2 = 0.000mm
y2 = 0.300mm
thickness = 1.000mm
square = 0
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
ha:ps_proto_v6.5 {
htop = 0
hbottom = 0
hdia = 0.750mm
hplated = 0
li:shape {
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.800mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.800mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.26 {
proto = 2
rot = 0
x = -2.750mm
y = -3.730mm
ha:attributes {
term = A1
name = A1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.27 {
proto = 2
rot = 0
x = -2.250mm
y = -3.730mm
ha:attributes {
term = A2
name = A2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 2
rot = 0
x = -1.750mm
y = -3.730mm
ha:attributes {
term = A3
name = A3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 2
rot = 0
x = -1.250mm
y = -3.730mm
ha:attributes {
term = A4
name = A4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.30 {
proto = 2
rot = 0
x = -0.750mm
y = -3.730mm
ha:attributes {
term = A5
name = A5
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.31 {
proto = 2
rot = 0
x = -0.250mm
y = -3.730mm
ha:attributes {
term = A6
name = A6
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.32 {
proto = 2
rot = 0
x = 0.250mm
y = -3.730mm
ha:attributes {
term = A7
name = A7
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.33 {
proto = 2
rot = 0
x = 0.750mm
y = -3.730mm
ha:attributes {
term = A8
name = A8
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.34 {
proto = 2
rot = 0
x = 1.250mm
y = -3.730mm
ha:attributes {
term = A9
name = A9
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.35 {
proto = 2
rot = 0
x = 1.750mm
y = -3.730mm
ha:attributes {
term = A10
name = A10
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.36 {
proto = 2
rot = 0
x = 2.250mm
y = -3.730mm
ha:attributes {
term = A11
name = A11
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.37 {
proto = 2
rot = 0
x = 2.750mm
y = -3.730mm
ha:attributes {
term = A12
name = A12
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.38 {
proto = 3
rot = 0
x = 2.875mm
y = -2.520mm
ha:attributes {
term = B1
name = B1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.39 {
proto = 3
rot = 0
x = 2.475mm
y = -1.820mm
ha:attributes {
term = B2
name = B2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.40 {
proto = 3
rot = 0
x = 1.675mm
y = -1.820mm
ha:attributes {
term = B3
name = B3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.41 {
proto = 3
rot = 0
x = 1.275mm
y = -2.520mm
ha:attributes {
term = B4
name = B4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.42 {
proto = 3
rot = 0
x = 0.875mm
y = -1.820mm
ha:attributes {
term = B5
name = B5
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.43 {
proto = 3
rot = 0
x = 0.457mm
y = -2.520mm
ha:attributes {
term = B6
name = B6
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.44 {
proto = 3
rot = 0
x = -0.457mm
y = -2.520mm
ha:attributes {
term = B7
name = B7
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.45 {
proto = 3
rot = 0
x = -0.875mm
y = -1.820mm
ha:attributes {
term = B8
name = B8
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.46 {
proto = 3
rot = 0
x = -1.275mm
y = -2.520mm
ha:attributes {
term = B9
name = B9
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.47 {
proto = 3
rot = 0
x = -1.675mm
y = -1.820mm
ha:attributes {
term = B10
name = B10
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.48 {
proto = 3
rot = 0
x = -2.475mm
y = -1.820mm
ha:attributes {
term = B11
name = B11
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.49 {
proto = 3
rot = 0
x = -2.875mm
y = -2.520mm
ha:attributes {
term = B12
name = B12
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.50 {
proto = 4
rot = 0
x = -4.205mm
y = -1.920mm
ha:attributes {
term = S1
name = S1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.51 {
proto = 4
rot = 0
x = 4.205mm
y = -1.920mm
ha:attributes {
term = S2
name = S2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.52 {
proto = 4
rot = 0
x = -4.565mm
y = 2.470mm
ha:attributes {
term = S3
name = S3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.53 {
proto = 4
rot = 0
x = 4.565mm
y = 2.470mm
ha:attributes {
term = S4
name = S4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.54 {
proto = 5
rot = 0
x = -3.675mm
y = -3.170mm
ha:attributes {
term = MH1
name = MH1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.55 {
proto = 5
rot = 0
x = 3.675mm
y = -3.170mm
ha:attributes {
term = MH2
name = MH2
}
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.56 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.170mm
y2 = -3.170mm
}
ha:line.57 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = -3.170mm
y2 = -3.170mm
}
ha:line.58 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.170mm
y2 = -2.170mm
}
ha:line.59 {
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.60 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.61 {
x1 = -5.050mm
y1 = -5.100mm
x2 = 5.050mm
y2 = -5.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.62 {
x1 = 5.050mm
y1 = -5.100mm
x2 = 5.050mm
y2 = 1.420mm
thickness = 0.200mm
clearance = 0
}
ha:line.63 {
x1 = 5.050mm
y1 = 3.520mm
x2 = 5.050mm
y2 = 5.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.64 {
x1 = 5.050mm
y1 = 5.100mm
x2 = -5.050mm
y2 = 5.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.65 {
x1 = -5.050mm
y1 = -5.100mm
x2 = -5.050mm
y2 = 1.420mm
thickness = 0.200mm
clearance = 0
}
ha:line.66 {
x1 = -5.050mm
y1 = 3.520mm
x2 = -5.050mm
y2 = 5.100mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.67 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.68 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.69 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.70 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 100
string = CONNECTOR_XKB_U262-24XN-4BV60
fid = 0
ha:flags {
floater = 1
}
}
ha:line.71 {
x1 = -4.950mm
y1 = -5.000mm
x2 = 4.950mm
y2 = -5.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.72 {
x1 = 4.950mm
y1 = -5.000mm
x2 = 4.950mm
y2 = 5.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.73 {
x1 = 4.950mm
y1 = 5.000mm
x2 = -4.950mm
y2 = 5.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.74 {
x1 = -4.950mm
y1 = 5.000mm
x2 = -4.950mm
y2 = -5.000mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.75 {
li:geometry {
ta:contour {
{ -5.265mm; -5.250mm }
{ 5.265mm; -5.250mm }
{ 5.265mm; 5.250mm }
{ -5.265mm; 5.250mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,339 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = LEDC2012X80N............
ha:attributes {
footprint = LEDC2012X80N
}
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.800mm
-0.550mm
0.800mm
-0.550mm
0.800mm
0.550mm
-0.800mm
0.550mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.850mm
-0.600mm
0.850mm
-0.600mm
0.850mm
0.600mm
-0.850mm
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.800mm
-0.550mm
0.800mm
-0.550mm
0.800mm
0.550mm
-0.800mm
0.550mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.27 {
proto = 2
rot = 0
x = 0.000mm
y = -0.900mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 2
rot = 0
x = 0.000mm
y = 0.900mm
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.29 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.30 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.31 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 1.000mm
}
ha:line.32 {
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.33 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.34 {
x1 = -1.100mm
y1 = -1.100mm
x2 = -1.100mm
y2 = 1.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.35 {
x1 = 1.100mm
y1 = -1.100mm
x2 = 1.100mm
y2 = 1.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.36 {
x1 = -1.100mm
y1 = -1.100mm
x2 = -1.100mm
y2 = -1.750mm
thickness = 0.200mm
clearance = 0
}
ha:line.37 {
x1 = -1.100mm
y1 = -1.750mm
x2 = 1.100mm
y2 = -1.750mm
thickness = 0.200mm
clearance = 0
}
ha:line.38 {
x1 = 1.100mm
y1 = -1.750mm
x2 = 1.100mm
y2 = -1.100mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.39 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.40 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.41 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.42 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 79
string = LEDC2012X80N
fid = 0
ha:flags {
floater = 1
}
}
ha:line.43 {
x1 = 0.000mm
y1 = -1.000mm
x2 = 0.600mm
y2 = -1.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.44 {
x1 = 0.600mm
y1 = -1.000mm
x2 = 0.600mm
y2 = 1.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.45 {
x1 = 0.600mm
y1 = 1.000mm
x2 = -0.600mm
y2 = 1.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.46 {
x1 = -0.600mm
y1 = 1.000mm
x2 = -0.600mm
y2 = -0.400mm
thickness = 0.100mm
clearance = 0
}
ha:line.47 {
x1 = -0.600mm
y1 = -0.400mm
x2 = 0.000mm
y2 = -1.000mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.48 {
li:geometry {
ta:contour {
{ -1.050mm; -1.700mm }
{ -1.050mm; -1.250mm }
{ -1.050mm; 1.250mm }
{ -1.050mm; 1.700mm }
{ 1.050mm; 1.700mm }
{ 1.050mm; 1.250mm }
{ 1.050mm; -1.250mm }
{ 1.050mm; -1.700mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,373 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = SOT95P237X112-3N........
ha:attributes {
footprint = SOT95P237X112-3N
}
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.550mm
-0.300mm
0.550mm
-0.300mm
0.550mm
0.300mm
-0.550mm
0.300mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.600mm
-0.350mm
0.600mm
-0.350mm
0.600mm
0.350mm
-0.600mm
0.350mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.550mm
-0.300mm
0.550mm
-0.300mm
0.550mm
0.300mm
-0.550mm
0.300mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.33 {
proto = 2
rot = 0
x = -1.150mm
y = -0.950mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.34 {
proto = 2
rot = 0
x = -1.150mm
y = 0.950mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.35 {
proto = 2
rot = 0
x = 1.150mm
y = 0.000mm
ha:attributes {
term = 3
name = 3
}
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.36 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.37 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.38 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 1.000mm
}
ha:line.39 {
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.40 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.41 {
x1 = -0.750mm
y1 = -1.560mm
x2 = 0.750mm
y2 = -1.560mm
thickness = 0.200mm
clearance = 0
}
ha:line.42 {
x1 = 0.750mm
y1 = -1.560mm
x2 = 0.750mm
y2 = -0.600mm
thickness = 0.200mm
clearance = 0
}
ha:line.43 {
x1 = 0.750mm
y1 = 0.600mm
x2 = 0.750mm
y2 = 1.560mm
thickness = 0.200mm
clearance = 0
}
ha:line.44 {
x1 = 0.750mm
y1 = 1.560mm
x2 = -0.750mm
y2 = 1.560mm
thickness = 0.200mm
clearance = 0
}
ha:line.45 {
x1 = -0.750mm
y1 = -0.350mm
x2 = -0.750mm
y2 = 0.350mm
thickness = 0.200mm
clearance = 0
}
ha:line.46 {
x1 = -0.750mm
y1 = -1.550mm
x2 = -2.000mm
y2 = -1.550mm
thickness = 0.200mm
clearance = 0
}
ha:line.47 {
x1 = -2.000mm
y1 = -1.550mm
x2 = -2.000mm
y2 = -0.650mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.48 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.49 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.50 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.51 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 86
string = SOT95P237X112-3N
fid = 0
ha:flags {
floater = 1
}
}
ha:line.52 {
x1 = 0.000mm
y1 = -1.460mm
x2 = 0.650mm
y2 = -1.460mm
thickness = 0.100mm
clearance = 0
}
ha:line.53 {
x1 = 0.650mm
y1 = -1.460mm
x2 = 0.650mm
y2 = 1.460mm
thickness = 0.100mm
clearance = 0
}
ha:line.54 {
x1 = 0.650mm
y1 = 1.460mm
x2 = -0.650mm
y2 = 1.460mm
thickness = 0.100mm
clearance = 0
}
ha:line.55 {
x1 = -0.650mm
y1 = 1.460mm
x2 = -0.650mm
y2 = -0.810mm
thickness = 0.100mm
clearance = 0
}
ha:line.56 {
x1 = -0.650mm
y1 = -0.810mm
x2 = 0.000mm
y2 = -1.460mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.57 {
li:geometry {
ta:contour {
{ -1.950mm; -1.500mm }
{ -0.900mm; -1.500mm }
{ -0.900mm; -1.710mm }
{ 0.900mm; -1.710mm }
{ 0.900mm; -0.550mm }
{ 1.950mm; -0.550mm }
{ 1.950mm; 0.550mm }
{ 0.900mm; 0.550mm }
{ 0.900mm; 1.710mm }
{ -0.900mm; 1.710mm }
{ -0.900mm; 1.500mm }
{ -1.950mm; 1.500mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,307 +0,0 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = UC1608X55N..............
ha:attributes {
footprint = UC1608X55N
}
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.550mm
-0.375mm
0.550mm
-0.375mm
0.550mm
0.375mm
-0.550mm
0.375mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.600mm
-0.425mm
0.600mm
-0.425mm
0.600mm
0.425mm
-0.600mm
0.425mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
-0.550mm
-0.375mm
0.550mm
-0.375mm
0.550mm
0.375mm
-0.550mm
0.375mm
}
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.700mm
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.700mm
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.850mm
y1 = -0.900mm
x2 = -0.850mm
y2 = 0.900mm
thickness = 0.200mm
clearance = 0
}
ha:line.31 {
x1 = 0.850mm
y1 = -0.900mm
x2 = 0.850mm
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 = UC1608X55N
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.730mm; -1.255mm }
{ -0.730mm; -0.980mm }
{ -0.730mm; 0.980mm }
{ -0.730mm; 1.255mm }
{ 0.730mm; 1.255mm }
{ 0.730mm; 0.980mm }
{ 0.730mm; -0.980mm }
{ 0.730mm; -1.255mm }
}
}
}
}
}
}
}
}
}

View File

@ -1,421 +0,0 @@
# footprint generated from CuVoodoo Land Pattern
# author: King Kévin
# version: 1
# date: 2019-05-13
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = any_24_ASCII_characters_
ha:attributes {
footprint = open source hardware logo
}
ha:data {
li:padstack_prototypes {
}
li:objects {
}
li:layers {
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:line.2{
clearance = 0
x1 = 0.15mm
y1 = 1.8mm
x2 = 0.75mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:line.3{
clearance = 0
x1 = 1.8mm
y1 = 5.8500000000000005mm
x2 = 1.8mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.4{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 1.8mm
x2 = 6.45mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:line.5{
clearance = 0
x1 = 1.8mm
y1 = 0.15mm
x2 = 1.8mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.6{
clearance = 0
x1 = 0.15mm
y1 = 2.4mm
x2 = 0.75mm
y2 = 2.4mm
thickness = 0.3mm
}
ha:line.7{
clearance = 0
x1 = 2.4mm
y1 = 5.8500000000000005mm
x2 = 2.4mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.8{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 2.4mm
x2 = 6.45mm
y2 = 2.4mm
thickness = 0.3mm
}
ha:line.9{
clearance = 0
x1 = 2.4mm
y1 = 0.15mm
x2 = 2.4mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.10{
clearance = 0
x1 = 0.15mm
y1 = 3mm
x2 = 0.75mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.11{
clearance = 0
x1 = 3mm
y1 = 5.8500000000000005mm
x2 = 3mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.12{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 3mm
x2 = 6.45mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.13{
clearance = 0
x1 = 3mm
y1 = 0.15mm
x2 = 3mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.14{
clearance = 0
x1 = 0.15mm
y1 = 3.5999999999999996mm
x2 = 0.75mm
y2 = 3.5999999999999996mm
thickness = 0.3mm
}
ha:line.15{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 5.8500000000000005mm
x2 = 3.5999999999999996mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.16{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 3.5999999999999996mm
x2 = 6.45mm
y2 = 3.5999999999999996mm
thickness = 0.3mm
}
ha:line.17{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 0.15mm
x2 = 3.5999999999999996mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.18{
clearance = 0
x1 = 0.15mm
y1 = 4.2mm
x2 = 0.75mm
y2 = 4.2mm
thickness = 0.3mm
}
ha:line.19{
clearance = 0
x1 = 4.2mm
y1 = 5.8500000000000005mm
x2 = 4.2mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.20{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 4.2mm
x2 = 6.45mm
y2 = 4.2mm
thickness = 0.3mm
}
ha:line.21{
clearance = 0
x1 = 4.2mm
y1 = 0.15mm
x2 = 4.2mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.22{
clearance = 0
x1 = 0.15mm
y1 = 4.8mm
x2 = 0.75mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.23{
clearance = 0
x1 = 4.8mm
y1 = 5.8500000000000005mm
x2 = 4.8mm
y2 = 6.45mm
thickness = 0.3mm
}
ha:line.24{
clearance = 0
x1 = 5.8500000000000005mm
y1 = 4.8mm
x2 = 6.45mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.25{
clearance = 0
x1 = 4.8mm
y1 = 0.15mm
x2 = 4.8mm
y2 = 0.75mm
thickness = 0.3mm
}
ha:line.26{
clearance = 0
x1 = 1.8mm
y1 = 1.35mm
x2 = 4.8mm
y2 = 1.35mm
thickness = 0.3mm
}
ha:line.27{
clearance = 0
x1 = 5.25mm
y1 = 1.8mm
x2 = 5.25mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.28{
clearance = 0
x1 = 4.8mm
y1 = 5.25mm
x2 = 1.8mm
y2 = 5.25mm
thickness = 0.3mm
}
ha:line.29{
clearance = 0
x1 = 1.35mm
y1 = 4.8mm
x2 = 1.35mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:arc.30{
clearance = 0
x = 1.8mm
y = 1.8mm
width = 0.45mm
height = 0.45mm
thickness = 0.3mm
astart = 0
adelta = -90
}
ha:arc.31{
clearance = 0
x = 4.8mm
y = 1.8mm
width = 0.45mm
height = 0.45mm
thickness = 0.3mm
astart = -90
adelta = -90
}
ha:arc.32{
clearance = 0
x = 4.8mm
y = 4.8mm
width = 0.45mm
height = 0.45mm
thickness = 0.3mm
astart = 180
adelta = -90
}
ha:arc.33{
clearance = 0
x = 1.8mm
y = 4.8mm
width = 0.45mm
height = 0.45mm
thickness = 0.3mm
astart = 90
adelta = -90
}
ha:line.34{
clearance = 0
x1 = 1.8mm
y1 = 1.8mm
x2 = 3mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:line.35{
clearance = 0
x1 = 3mm
y1 = 1.8mm
x2 = 3mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.36{
clearance = 0
x1 = 3mm
y1 = 3mm
x2 = 1.8mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.37{
clearance = 0
x1 = 1.8mm
y1 = 3mm
x2 = 1.8mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:line.38{
clearance = 0
x1 = 4.8mm
y1 = 1.8mm
x2 = 3.5999999999999996mm
y2 = 1.8mm
thickness = 0.3mm
}
ha:line.39{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 1.8mm
x2 = 3.5999999999999996mm
y2 = 2.4mm
thickness = 0.3mm
}
ha:line.40{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 2.4mm
x2 = 4.8mm
y2 = 2.4mm
thickness = 0.3mm
}
ha:line.41{
clearance = 0
x1 = 4.8mm
y1 = 2.4mm
x2 = 4.8mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.42{
clearance = 0
x1 = 4.8mm
y1 = 3mm
x2 = 3.5999999999999996mm
y2 = 3mm
thickness = 0.3mm
}
ha:line.43{
clearance = 0
x1 = 1.8mm
y1 = 3.5999999999999996mm
x2 = 1.8mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.44{
clearance = 0
x1 = 1.8mm
y1 = 4.199999999999999mm
x2 = 3mm
y2 = 4.199999999999999mm
thickness = 0.3mm
}
ha:line.45{
clearance = 0
x1 = 3mm
y1 = 3.5999999999999996mm
x2 = 3mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.46{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 3.5999999999999996mm
x2 = 3.5999999999999996mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.47{
clearance = 0
x1 = 3.5999999999999996mm
y1 = 4.8mm
x2 = 4.199999999999999mm
y2 = 4.2mm
thickness = 0.3mm
}
ha:line.48{
clearance = 0
x1 = 4.199999999999999mm
y1 = 4.2mm
x2 = 4.799999999999999mm
y2 = 4.8mm
thickness = 0.3mm
}
ha:line.49{
clearance = 0
x1 = 4.799999999999999mm
y1 = 4.8mm
x2 = 4.799999999999999mm
y2 = 3.5999999999999996mm
thickness = 0.3mm
}
}
}
}
}
}
}

View File

@ -1,39 +0,0 @@
#!/bin/sh
#@@example qr(hello world, 1mm)
#@@purpose Generate QR code on silk
#@@desc Generate the specified QR code as silk lines
#@@params text,pixel_size,level
#@@thumbsize 2
#@@param:text ASCII text to encode
#@@param:pixel_size width and height of each pixel
#@@dim:pixel_size
#@@param:level error correction level
#@@optional:level
#@@enum:level:L low
#@@enum:level:H high
#@@default:L
libdir=""
for n in $PCB_RND_PCBLIB/parametric `dirname $0` /usr/local/share/pcb-rnd/pcblib/parametric /usr/share/pcb-rnd/pcblib/parametric
do
if test -f "$n/common.awk"
then
libdir="$n"
break
fi
done
if test -z "$libdir"
then
echo "pcblib/parametric/common.awk not found." >&2
exit 1
fi
awk -f $libdir/common.awk -f `dirname $0`/qr.awk -v "args=$*" -v gen=`basename $0` -v "genfull=$0"

View File

@ -1,62 +0,0 @@
function flush_line(x1, x2, y, w ,n,yy)
{
x1/=2
x2/=2
for(n = 0; n < 3; n++) {
yy = y*w + w/6 + w/3 * n
element_line(x1*w + w/6, yy, x2*w - w/6, yy, w/3)
}
element_line(x1*w + w/6, y*w + w/6, x1*w + w/6, (y+1)*w - w/6, w/3)
element_line(x2*w - w/6, y*w + w/6, x2*w - w/6, (y+1)*w - w/6, w/3)
}
BEGIN {
help_auto()
set_arg(P, "?pixel_size", "1mm")
proc_args(P, "text,pixel_size,level", "text")
pixel_size = parse_dim(P["pixel_size"])
element_begin("", "QR1", "qr(" P["text"] "," P["pixel_size"] "," P["level"] ")" ,0,0, 0,-mil(50))
print "# text=" P["text"]
cmd = "echo '" P["text"] "' | qrencode -t ASCII"
if (P["level"] != "") {
if (tolower(P["level"]) == "h")
cmd = cmd " -l H"
else if (tolower(P["level"]) == "l")
cmd = cmd " -l L"
}
y = 0;
while((cmd | getline line) > 0) {
line = line "-"
# print line
len = length(line)
start = ""
for(x = 1; x < len; x++) {
if (substr(line, x, 1) == "#") {
if (start == "")
start = x;
}
else {
if (start != "") {
flush_line(start, x, y, pixel_size)
start = ""
}
}
}
if (start != "")
flush_line(start, x, y, pixel_size)
y++;
}
# dimension(+spacing/aspect, -dia, +spacing/aspect, dia, "@" spacing*1.2 ";0", "dia")
element_end()
}

4
fp-lib-table Normal file
View File

@ -0,0 +1,4 @@
(fp_lib_table
(lib (name "qeda")(type "KiCad")(uri "${KIPRJMOD}/kicad/qeda.pretty")(options "")(descr ""))
(lib (name "kikit")(type "KiCad")(uri "${KIPRJMOD}/kicad/kikit.pretty")(options "")(descr ""))
)

2
gafrc
View File

@ -1,2 +0,0 @@
(source-library ".")
(component-library "./geda/symbols/")

View File

@ -1,18 +0,0 @@
v 20210407 2
P 200 0 200 200 1 0 0
{
T 250 50 5 6 0 1 0 0 1
pinnumber=1
T 250 50 5 6 0 0 0 0 1
pinseq=1
T 250 50 5 6 0 1 0 0 1
pinlabel=1
T 250 50 5 6 0 1 0 0 1
pintype=pwr
}
T 200 250 9 8 1 0 0 3 1
1V8
T 300 0 8 8 0 0 0 0 1
net=1V8:1
L 150 100 200 200 3 10 1 0 -1 -1
L 200 200 250 100 3 10 1 0 -1 -1

View File

@ -1,18 +0,0 @@
v 20210407 2
P 200 0 200 200 1 0 0
{
T 250 50 5 6 0 1 0 0 1
pinnumber=1
T 250 50 5 6 0 0 0 0 1
pinseq=1
T 250 50 5 6 0 1 0 0 1
pinlabel=1
T 250 50 5 6 0 1 0 0 1
pintype=pwr
}
T 200 250 9 8 1 0 0 3 1
3V3
T 300 0 8 8 0 0 0 0 1
net=3V3:1
L 150 100 200 200 3 10 1 0 -1 -1
L 200 200 250 100 3 10 1 0 -1 -1

View File

@ -1,18 +0,0 @@
v 20210407 2
P 200 0 200 200 1 0 0
{
T 250 50 5 6 0 1 0 0 1
pinnumber=1
T 250 50 5 6 0 0 0 0 1
pinseq=1
T 250 50 5 6 0 1 0 0 1
pinlabel=1
T 250 50 5 6 0 1 0 0 1
pintype=pwr
}
T 200 250 9 8 1 0 0 3 1
5V
T 300 0 8 8 0 0 0 0 1
net=5V:1
L 150 100 200 200 3 10 1 0 -1 -1
L 200 200 250 100 3 10 1 0 -1 -1

View File

@ -1,70 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=transistor, MOSFET, n-channel, enhancement mode vertical DMOS, GSD
T 0 0 5 8 0 0 0 0 1
datasheet=https://www.onsemi.com/pdf/datasheet/bss138-d.pdf
T 0 0 5 8 0 0 0 0 1
footprint=SOT95P237X112-3N.fp
T 840 960 5 10 1 1 0 6 1
refdes=VT?
T 840 240 9 10 1 1 0 8 1
device=BSS138
V 700 600 300 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
L 625 800 625 696 3 0 1 0 -1 -1
L 625 652 625 548 3 0 1 0 -1 -1
L 625 504 625 400 3 0 1 0 -1 -1
L 625 452 1000 452 3 0 1 0 -1 -1
L 1000 452 1000 400 3 0 1 0 -1 -1
L 625 748 1000 748 3 0 1 0 -1 -1
L 1000 748 1000 800 3 0 1 0 -1 -1
L 400 400 565 400 3 0 1 0 -1 -1
L 565 800 565 400 3 0 1 0 -1 -1
L 625 600 775 600 3 0 1 0 -1 -1
L 775 600 775 452 3 0 1 0 -1 -1
H 3 5 0 0 -1 -1 0 -1 -1 -1 -1 -1 4
M 700 630
L 625 600
L 700 570
z
L 873 748 873 632 3 0 1 0 -1 -1
L 873 568 873 452 3 0 1 0 -1 -1
H 3 5 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
M 835 568
L 910 568
L 873 632
L 835 568
z
L 835 632 910 632 3 0 1 0 -1 -1
P 0 400 400 400 1 0 0
{
T 480 400 9 8 0 1 0 0 1
pinlabel=G
T 480 400 5 8 0 0 0 2 1
pintype=in
T 320 400 5 8 1 1 0 6 1
pinnumber=1
T 320 400 5 8 0 0 0 8 1
pinseq=1
}
P 1000 1200 1000 800 1 0 0
{
T 1000 720 9 8 0 1 90 6 1
pinlabel=D
T 1000 720 5 8 0 0 90 8 1
pintype=false
T 1000 880 5 8 1 1 90 0 1
pinnumber=3
T 1000 880 5 8 0 0 90 2 1
pinseq=3
}
P 1000 0 1000 400 1 0 0
{
T 1000 480 9 8 0 1 90 0 1
pinlabel=S
T 1000 480 5 8 0 0 90 2 1
pintype=false
T 1000 320 5 8 1 1 90 6 1
pinnumber=2
T 1000 320 5 8 0 0 90 8 1
pinseq=2
}

View File

@ -1,144 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=connector, USB, receptacle, type-A, 3.0, right angle, horizontal, through hole
T 0 0 5 8 0 0 0 0 1
datasheet=http://www.amphenol-icc.com/media/wysiwyg/files/drawing/10117835.pdf
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_FCI_10117835.fp
B 0 2800 3000 -2400 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 2600 3000 2600 1 0 0
{
T 2720 2600 9 8 1 1 0 6 1
pinlabel=VBUS
T 2720 2600 5 8 0 0 0 8 1
pintype=pwr
T 3280 2600 5 8 1 1 0 0 1
pinnumber=1
T 3280 2600 5 8 0 0 0 2 1
pinseq=1
}
V 2900 2600 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 2400 3000 2400 1 0 0
{
T 2720 2400 9 8 1 1 0 6 1
pinlabel=D-
T 2720 2400 5 8 0 0 0 8 1
pintype=io
T 3280 2400 5 8 1 1 0 0 1
pinnumber=2
T 3280 2400 5 8 0 0 0 2 1
pinseq=2
}
V 2900 2400 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 2200 3000 2200 1 0 0
{
T 2720 2200 9 8 1 1 0 6 1
pinlabel=D+
T 2720 2200 5 8 0 0 0 8 1
pintype=io
T 3280 2200 5 8 1 1 0 0 1
pinnumber=3
T 3280 2200 5 8 0 0 0 2 1
pinseq=3
}
V 2900 2200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 2000 3000 2000 1 0 0
{
T 2720 2000 9 8 1 1 0 6 1
pinlabel=GND
T 2720 2000 5 8 0 0 0 8 1
pintype=pwr
T 3280 2000 5 8 1 1 0 0 1
pinnumber=4
T 3280 2000 5 8 0 0 0 2 1
pinseq=4
}
V 2900 2000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 1600 3000 1600 1 0 0
{
T 2720 1600 9 8 1 1 0 6 1
pinlabel=SSRX-
T 2720 1600 5 8 0 0 0 8 1
pintype=in
T 3280 1600 5 8 1 1 0 0 1
pinnumber=5
T 3280 1600 5 8 0 0 0 2 1
pinseq=5
}
V 2900 1600 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 1400 3000 1400 1 0 0
{
T 2720 1400 9 8 1 1 0 6 1
pinlabel=SSRX+
T 2720 1400 5 8 0 0 0 8 1
pintype=in
T 3280 1400 5 8 1 1 0 0 1
pinnumber=6
T 3280 1400 5 8 0 0 0 2 1
pinseq=6
}
V 2900 1400 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 1200 3000 1200 1 0 0
{
T 2720 1200 9 8 1 1 0 6 1
pinlabel=GND_DRAIN
T 2720 1200 5 8 0 0 0 8 1
pintype=pwr
T 3280 1200 5 8 1 1 0 0 1
pinnumber=7
T 3280 1200 5 8 0 0 0 2 1
pinseq=7
}
V 2900 1200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 1000 3000 1000 1 0 0
{
T 2720 1000 9 8 1 1 0 6 1
pinlabel=SSTX-
T 2720 1000 5 8 0 0 0 8 1
pintype=out
T 3280 1000 5 8 1 1 0 0 1
pinnumber=8
T 3280 1000 5 8 0 0 0 2 1
pinseq=8
}
V 2900 1000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 3400 800 3000 800 1 0 0
{
T 2720 800 9 8 1 1 0 6 1
pinlabel=SSTX+
T 2720 800 5 8 0 0 0 8 1
pintype=out
T 3280 800 5 8 1 1 0 0 1
pinnumber=9
T 3280 800 5 8 0 0 0 2 1
pinseq=9
}
V 2900 800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1400 0 1400 400 1 0 0
{
T 1400 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 1400 680 5 8 0 0 90 2 1
pintype=pas
T 1400 120 5 8 1 1 90 6 1
pinnumber=10
T 1400 120 5 8 0 0 90 8 1
pinseq=10
}
V 1400 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1600 0 1600 400 1 0 0
{
T 1600 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 1600 680 5 8 0 0 90 2 1
pintype=pas
T 1600 120 5 8 1 1 90 6 1
pinnumber=11
T 1600 120 5 8 0 0 90 8 1
pinseq=11
}
V 1600 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
T 1500 2860 5 10 1 1 0 3 1
refdes=J?
T 1660 340 9 10 1 1 0 2 1
device=FCI_10117835

View File

@ -1,17 +0,0 @@
v 20210407 2
P 100 100 100 200 1 0 1
{
T 158 161 5 4 0 1 0 0 1
pinnumber=1
T 158 161 5 4 0 0 0 0 1
pinseq=1
T 158 161 5 4 0 1 0 0 1
pinlabel=1
T 158 161 5 4 0 1 0 0 1
pintype=pwr
}
L 0 100 200 100 3 0 0 0 -1 -1
T 300 50 8 10 0 0 0 0 1
net=GND:1
L 0 100 100 0 3 0 1 0 -1 -1
L 200 100 100 0 3 0 1 0 -1 -1

View File

@ -1,54 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=diode, LED, chip, 2.0x1.2 mm
T 0 0 5 8 0 0 0 0 1
keywords=LED
T 0 0 5 8 0 0 0 0 1
footprint=LEDC2012X80N.fp
T 200 360 5 10 1 1 0 3 1
refdes=D?
T 200 40 9 10 1 1 0 5 1
device=LED0805
H 3 5 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
M 120 300
L 280 200
L 120 100
L 120 300
z
L 280 300 280 100 3 0 1 0 -1 -1
L 300 350 400 450 3 0 1 0 -1 -1
H 3 5 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
M 336 414
L 400 450
L 364 386
L 336 414
z
L 350 300 450 400 3 0 1 0 -1 -1
H 3 5 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
M 386 364
L 450 400
L 414 336
L 386 364
z
P 0 200 120 200 1 0 0
{
T 200 200 9 8 0 1 0 0 1
pinlabel=A
T 200 200 5 8 0 0 0 2 1
pintype=pas
T 40 200 5 8 0 1 0 6 1
pinnumber=2
T 40 200 5 8 0 0 0 8 1
pinseq=2
}
P 400 200 280 200 1 0 0
{
T 200 200 9 8 0 1 0 6 1
pinlabel=C
T 200 200 5 8 0 0 0 8 1
pintype=pas
T 360 200 5 8 0 1 0 0 1
pinnumber=1
T 360 200 5 8 0 0 0 2 1
pinseq=1
}

View File

@ -1,45 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=coin cell battery holder, CR1220, SMD, folded metal
T 0 0 5 8 0 0 0 0 1
datasheet=https://datasheet.lcsc.com/lcsc/2012181809_MYOUNG-MY-1220-03_C964818.pdf
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_MY-1220-03.fp
B 0 1700 800 -1300 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 400 2100 400 1700 1 0 0
{
T 400 1620 9 8 1 1 90 6 1
pinlabel=BAT+L
T 400 1620 5 8 0 0 90 8 1
pintype=pwr
T 400 1780 5 8 1 1 90 0 1
pinnumber=1
T 400 1780 5 8 0 0 90 2 1
pinseq=1
}
P 600 2100 600 1700 1 0 0
{
T 600 1620 9 8 1 1 90 6 1
pinlabel=BAT+R
T 600 1620 5 8 0 0 90 8 1
pintype=pwr
T 600 1780 5 8 1 1 90 0 1
pinnumber=2
T 600 1780 5 8 0 0 90 2 1
pinseq=2
}
P 500 0 500 400 1 0 0
{
T 500 480 9 8 1 1 90 0 1
pinlabel=BAT-
T 500 480 5 8 0 0 90 2 1
pintype=pwr
T 500 320 5 8 1 1 90 6 1
pinnumber=3
T 500 320 5 8 0 0 90 8 1
pinseq=3
}
T 0 1760 5 10 1 1 0 0 1
refdes=U?
T 560 340 9 10 1 1 0 2 1
device=MY-1220-03

View File

@ -1,32 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=resistor, chip, 1.6x0.8 mm
T 0 0 5 8 0 0 0 0 1
footprint=UC1608X55N.fp
T 300 340 5 10 1 1 0 3 1
refdes=R?
T 300 60 9 10 1 1 0 5 1
device=R0603
B 100 280 400 -160 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 200 100 200 1 0 0
{
T 180 200 9 8 0 1 0 0 1
pinlabel=L
T 180 200 5 8 0 0 0 2 1
pintype=pas
T 20 200 5 8 0 1 0 6 1
pinnumber=1
T 20 200 5 8 0 0 0 8 1
pinseq=1
}
P 600 200 500 200 1 0 0
{
T 420 200 9 8 0 1 0 6 1
pinlabel=R
T 420 200 5 8 0 0 0 8 1
pintype=pas
T 580 200 5 8 0 1 0 0 1
pinnumber=2
T 580 200 5 8 0 0 0 2 1
pinseq=2
}

View File

@ -1,18 +0,0 @@
v 20210626 2
P 200 0 200 200 1 0 0
{
T 250 50 5 6 0 1 0 0 1
pinnumber=1
T 250 50 5 6 0 0 0 0 1
pinseq=1
T 250 50 5 6 0 1 0 0 1
pinlabel=1
T 250 50 5 6 0 1 0 0 1
pintype=pwr
}
T 200 250 9 8 1 0 0 3 1
VCC
T 300 0 8 8 0 0 0 0 1
net=VCC:1
L 150 100 200 200 3 10 1 0 -1 -1
L 200 200 250 100 3 10 1 0 -1 -1

View File

@ -1,18 +0,0 @@
v 20210407 2
P 200 0 200 200 1 0 0
{
T 250 50 5 6 0 1 0 0 1
pinnumber=1
T 250 50 5 6 0 0 0 0 1
pinseq=1
T 250 50 5 6 0 1 0 0 1
pinlabel=1
T 250 50 5 6 0 1 0 0 1
pintype=pwr
}
T 200 250 9 8 1 0 0 3 1
VTRG
T 300 0 8 8 0 0 0 0 1
net=VTRG:1
L 150 100 200 200 3 10 1 0 -1 -1
L 200 200 250 100 3 10 1 0 -1 -1

View File

@ -1,348 +0,0 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
description=connector, USB-C, receptacle, 24-pin, SMT+THT+TABS
T 0 0 5 8 0 0 0 0 1
datasheet=https://datasheet.lcsc.com/szlcsc/1905061605_XKB-Enterprise-U262-241N-4BV60_C388659.pdf
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_XKB_U262-24XN-4BV60.fp
B 400 2600 3400 -2200 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 2200 400 2200 1 0 0
{
T 680 2200 9 8 1 1 0 0 1
pinlabel=TX1+
T 680 2200 5 8 0 0 0 2 1
pintype=out
T 120 2200 5 8 1 1 0 6 1
pinnumber=A2
T 120 2200 5 8 0 0 0 8 1
pinseq=A2
}
V 500 2200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 2000 400 2000 1 0 0
{
T 680 2000 9 8 1 1 0 0 1
pinlabel=TX1-
T 680 2000 5 8 0 0 0 2 1
pintype=out
T 120 2000 5 8 1 1 0 6 1
pinnumber=A3
T 120 2000 5 8 0 0 0 8 1
pinseq=A3
}
V 500 2000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 1800 400 1800 1 0 0
{
T 680 1800 9 8 1 1 0 0 1
pinlabel=CC1
T 680 1800 5 8 0 0 0 2 1
pintype=io
T 120 1800 5 8 1 1 0 6 1
pinnumber=A5
T 120 1800 5 8 0 0 0 8 1
pinseq=A5
}
V 500 1800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 1600 400 1600 1 0 0
{
T 680 1600 9 8 1 1 0 0 1
pinlabel=D+
T 680 1600 5 8 0 0 0 2 1
pintype=io
T 120 1600 5 8 1 1 0 6 1
pinnumber=A6
T 120 1600 5 8 0 0 0 8 1
pinseq=A6
}
V 500 1600 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 1400 400 1400 1 0 0
{
T 680 1400 9 8 1 1 0 0 1
pinlabel=D-
T 680 1400 5 8 0 0 0 2 1
pintype=io
T 120 1400 5 8 1 1 0 6 1
pinnumber=A7
T 120 1400 5 8 0 0 0 8 1
pinseq=A7
}
V 500 1400 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 1200 400 1200 1 0 0
{
T 680 1200 9 8 1 1 0 0 1
pinlabel=SBU1
T 680 1200 5 8 0 0 0 2 1
pintype=io
T 120 1200 5 8 1 1 0 6 1
pinnumber=A8
T 120 1200 5 8 0 0 0 8 1
pinseq=A8
}
V 500 1200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 1000 400 1000 1 0 0
{
T 680 1000 9 8 1 1 0 0 1
pinlabel=RX2-
T 680 1000 5 8 0 0 0 2 1
pintype=in
T 120 1000 5 8 1 1 0 6 1
pinnumber=A10
T 120 1000 5 8 0 0 0 8 1
pinseq=A10
}
V 500 1000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 0 800 400 800 1 0 0
{
T 680 800 9 8 1 1 0 0 1
pinlabel=RX2+
T 680 800 5 8 0 0 0 2 1
pintype=in
T 120 800 5 8 1 1 0 6 1
pinnumber=A11
T 120 800 5 8 0 0 0 8 1
pinseq=A11
}
V 500 800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 2200 3800 2200 1 0 0
{
T 3520 2200 9 8 1 1 0 6 1
pinlabel=RX1+
T 3520 2200 5 8 0 0 0 8 1
pintype=in
T 4080 2200 5 8 1 1 0 0 1
pinnumber=B11
T 4080 2200 5 8 0 0 0 2 1
pinseq=B11
}
V 3700 2200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 2000 3800 2000 1 0 0
{
T 3520 2000 9 8 1 1 0 6 1
pinlabel=RX1-
T 3520 2000 5 8 0 0 0 8 1
pintype=in
T 4080 2000 5 8 1 1 0 0 1
pinnumber=B10
T 4080 2000 5 8 0 0 0 2 1
pinseq=B10
}
V 3700 2000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 1800 3800 1800 1 0 0
{
T 3520 1800 9 8 1 1 0 6 1
pinlabel=SBU2
T 3520 1800 5 8 0 0 0 8 1
pintype=io
T 4080 1800 5 8 1 1 0 0 1
pinnumber=B8
T 4080 1800 5 8 0 0 0 2 1
pinseq=B8
}
V 3700 1800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 1600 3800 1600 1 0 0
{
T 3520 1600 9 8 1 1 0 6 1
pinlabel=D-
T 3520 1600 5 8 0 0 0 8 1
pintype=io
T 4080 1600 5 8 1 1 0 0 1
pinnumber=B7
T 4080 1600 5 8 0 0 0 2 1
pinseq=B7
}
V 3700 1600 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 1400 3800 1400 1 0 0
{
T 3520 1400 9 8 1 1 0 6 1
pinlabel=D+
T 3520 1400 5 8 0 0 0 8 1
pintype=io
T 4080 1400 5 8 1 1 0 0 1
pinnumber=B6
T 4080 1400 5 8 0 0 0 2 1
pinseq=B6
}
V 3700 1400 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 1200 3800 1200 1 0 0
{
T 3520 1200 9 8 1 1 0 6 1
pinlabel=CC2
T 3520 1200 5 8 0 0 0 8 1
pintype=io
T 4080 1200 5 8 1 1 0 0 1
pinnumber=B5
T 4080 1200 5 8 0 0 0 2 1
pinseq=B5
}
V 3700 1200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 1000 3800 1000 1 0 0
{
T 3520 1000 9 8 1 1 0 6 1
pinlabel=TX2-
T 3520 1000 5 8 0 0 0 8 1
pintype=out
T 4080 1000 5 8 1 1 0 0 1
pinnumber=B3
T 4080 1000 5 8 0 0 0 2 1
pinseq=B3
}
V 3700 1000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 4200 800 3800 800 1 0 0
{
T 3520 800 9 8 1 1 0 6 1
pinlabel=TX2+
T 3520 800 5 8 0 0 0 8 1
pintype=out
T 4080 800 5 8 1 1 0 0 1
pinnumber=B2
T 4080 800 5 8 0 0 0 2 1
pinseq=B2
}
V 3700 800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1800 3000 1800 2600 1 0 0
{
T 1800 2320 9 8 1 1 90 6 1
pinlabel=VBUS
T 1800 2320 5 8 0 0 90 8 1
pintype=pwr
T 1800 2880 5 8 1 1 90 0 1
pinnumber=A4
T 1800 2880 5 8 0 0 90 2 1
pinseq=A4
}
V 1800 2500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2000 3000 2000 2600 1 0 0
{
T 2000 2320 9 8 1 1 90 6 1
pinlabel=VBUS
T 2000 2320 5 8 0 0 90 8 1
pintype=pwr
T 2000 2880 5 8 1 1 90 0 1
pinnumber=A9
T 2000 2880 5 8 0 0 90 2 1
pinseq=A9
}
V 2000 2500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2200 3000 2200 2600 1 0 0
{
T 2200 2320 9 8 1 1 90 6 1
pinlabel=VBUS
T 2200 2320 5 8 0 0 90 8 1
pintype=pwr
T 2200 2880 5 8 1 1 90 0 1
pinnumber=B4
T 2200 2880 5 8 0 0 90 2 1
pinseq=B4
}
V 2200 2500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2400 3000 2400 2600 1 0 0
{
T 2400 2320 9 8 1 1 90 6 1
pinlabel=VBUS
T 2400 2320 5 8 0 0 90 8 1
pintype=pwr
T 2400 2880 5 8 1 1 90 0 1
pinnumber=B9
T 2400 2880 5 8 0 0 90 2 1
pinseq=B9
}
V 2400 2500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1300 0 1300 400 1 0 0
{
T 1300 680 9 8 1 1 90 0 1
pinlabel=GND
T 1300 680 5 8 0 0 90 2 1
pintype=pwr
T 1300 120 5 8 1 1 90 6 1
pinnumber=A1
T 1300 120 5 8 0 0 90 8 1
pinseq=A1
}
V 1300 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1500 0 1500 400 1 0 0
{
T 1500 680 9 8 1 1 90 0 1
pinlabel=GND
T 1500 680 5 8 0 0 90 2 1
pintype=pwr
T 1500 120 5 8 1 1 90 6 1
pinnumber=A12
T 1500 120 5 8 0 0 90 8 1
pinseq=A12
}
V 1500 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1700 0 1700 400 1 0 0
{
T 1700 680 9 8 1 1 90 0 1
pinlabel=GND
T 1700 680 5 8 0 0 90 2 1
pintype=pwr
T 1700 120 5 8 1 1 90 6 1
pinnumber=B1
T 1700 120 5 8 0 0 90 8 1
pinseq=B1
}
V 1700 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1900 0 1900 400 1 0 0
{
T 1900 680 9 8 1 1 90 0 1
pinlabel=GND
T 1900 680 5 8 0 0 90 2 1
pintype=pwr
T 1900 120 5 8 1 1 90 6 1
pinnumber=B12
T 1900 120 5 8 0 0 90 8 1
pinseq=B12
}
V 1900 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2300 0 2300 400 1 0 0
{
T 2300 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 2300 680 5 8 0 0 90 2 1
pintype=pas
T 2300 120 5 8 1 1 90 6 1
pinnumber=S1
T 2300 120 5 8 0 0 90 8 1
pinseq=S1
}
V 2300 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2500 0 2500 400 1 0 0
{
T 2500 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 2500 680 5 8 0 0 90 2 1
pintype=pas
T 2500 120 5 8 1 1 90 6 1
pinnumber=S2
T 2500 120 5 8 0 0 90 8 1
pinseq=S2
}
V 2500 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2700 0 2700 400 1 0 0
{
T 2700 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 2700 680 5 8 0 0 90 2 1
pintype=pas
T 2700 120 5 8 1 1 90 6 1
pinnumber=S3
T 2700 120 5 8 0 0 90 8 1
pinseq=S3
}
V 2700 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2900 0 2900 400 1 0 0
{
T 2900 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 2900 680 5 8 0 0 90 2 1
pintype=pas
T 2900 120 5 8 1 1 90 6 1
pinnumber=S4
T 2900 120 5 8 0 0 90 8 1
pinseq=S4
}
V 2900 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
T 400 2660 5 10 1 1 0 0 1
refdes=J?
T 2960 340 9 10 1 1 0 2 1
device=XKB_U262-24XN-4BV60

View File

@ -1,40 +0,0 @@
v 20210626 2
L 3000 900 3000 0 15 0 0 0 -1 -1
B 0 0 6000 1500 15 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
L 0 900 6000 900 15 0 0 0 -1 -1
T 1000 700 9 10 1 1 0 0 1
date=$date$
T 4300 700 9 10 1 1 0 0 1
org=$organisation$
T 4300 400 9 10 1 1 0 0 1
authors=$authors$
T 3000 1200 9 14 1 1 0 4 1
title=TITLE
T 3100 400 15 8 1 0 0 0 1
AUTHORS:
T 3100 100 15 8 1 0 0 0 1
LICENCE:
T 100 100 15 8 1 0 0 0 1
REVISION:
T 100 1100 15 8 1 0 0 0 1
TITLE:
T 100 400 15 8 1 0 0 0 1
VERSION:
T 0 1600 8 10 0 0 0 0 1
graphical=1
T 3100 700 15 8 1 0 0 0 1
ORGANISATION:
T 100 700 15 8 1 0 0 0 1
DATE:
T 1000 400 9 10 1 1 0 0 1
version=$version$
T 1000 100 9 10 1 1 0 0 1
revision=$revision$
T 4300 100 9 10 1 1 0 0 1
licence=$licence$
T 0 1800 8 10 0 0 0 0 1
device=none
T 0 2000 8 10 0 0 0 0 1
footprint=none
T 0 2200 8 10 0 0 0 0 1
refdes=none

View File

@ -1,58 +0,0 @@
#!/bin/sh
if test ! $# -eq 2
then
echo "Need two arguments: a board file name and a tab file name" >&2
exit 1
fi
board="$1"
tab="$2"
if test ! -f "$board"
then
echo "Board file $board not found" >&2
exit 1
fi
if test ! -f "$tab"
then
echo "Tab file $tab not found" >&2
exit 1
fi
btmp=.tmp.$board
awk -F "[ \t]*[;][ \t]*" -v "outfn=$btmp" '
BEGIN { sq = "'\''" }
# quote s with single quotes and remove any single quote from it
# (pcb-rnd action syntax does not have escaping)
function squote(s)
{
gsub("[" sq "]", ".", s)
return sq s sq
}
# ignore comments
/^[ \t]*#/ { next }
# generate an unselect-query-propset sequence for each line
(NF > 1) {
print "Unselect(all)"
print "query(select, " squote($1) ")"
for(n = 2; n <= NF; n++) {
if (split($n, A, "=") == 2)
print "propset(selection, " squote(A[1]) "," squote(A[2]) ")"
}
}
END {
print "Unselect(all)"
print "Save(LayoutAs, " squote(outfn) ")"
}
' < "$tab" | pcb-rnd --gui batch "$board" && mv "$btmp" "$board"

View File

@ -1,9 +0,0 @@
@.a.footprint == "LEDC2012X80N.lht"; a/xy::jlcpcb::rotate=270;
@.a.footprint == "RESC1608X55N.lht"; a/xy::jlcpcb::rotate=90;
@.a.footprint == "CONNECTOR_USB_MICRO-B_C10418.lht"; a/xy::jlcpcb::translate=-1.2mm,0mm;
@.a.footprint == "CONNECTOR_USB_MICRO-B_C10418.lht"; a/xy::jlcpcb::rotate=270;
@.a.footprint == "CONNECTOR_USB-A-2.0_RECEPTACLE_C42428.lht"; a/xy::jlcpcb::translate=0mm,-1.7mm;
@.a.footprint == "CONNECTOR_MY-1220-03.lht"; a/xy::jlcpcb::translate=0mm,-0.95mm;
@.a.footprint == "CONNECTOR_XKB_U262-24XN-4BV60.lht"; a/xy::jlcpcb::rotate=180;
@.a.footprint == "CONNECTOR_XKB_U262-24XN-4BV60.lht"; a/xy::jlcpcb::translate=0mm,0.7mm;
@.a.footprint == "SOT95P237X112-3N.lht"; a/xy::jlcpcb::rotate=180;

3
sym-lib-table Normal file
View File

@ -0,0 +1,3 @@
(sym_lib_table
(lib (name "qeda")(type "Legacy")(uri "${KIPRJMOD}/kicad/qeda.lib")(options "")(descr ""))
)

View File

@ -0,0 +1,86 @@
(kicad_pcb (version 20211014) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A4")
(title_block
(date "$date$")
(rev "$version$.$revision$")
(company "CuVoodoo")
(comment 1 "King Kévin")
(comment 2 "CERN-OHL-S")
)
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
)
(setup
(stackup
(layer "F.SilkS" (type "Top Silk Screen"))
(layer "F.Paste" (type "Top Solder Paste"))
(layer "F.Mask" (type "Top Solder Mask") (thickness 0.01))
(layer "F.Cu" (type "copper") (thickness 0.035))
(layer "dielectric 1" (type "core") (thickness 1.51) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
(layer "B.Cu" (type "copper") (thickness 0.035))
(layer "B.Mask" (type "Bottom Solder Mask") (thickness 0.01))
(layer "B.Paste" (type "Bottom Solder Paste"))
(layer "B.SilkS" (type "Bottom Silk Screen"))
(copper_finish "None")
(dielectric_constraints no)
)
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(svguseinch false)
(svgprecision 6)
(excludeedgelayer true)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
)

View File

@ -0,0 +1,469 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"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.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"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.15,
"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": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.15,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 0.508
}
},
"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",
"copper_edge_clearance": "error",
"courtyards_overlap": "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_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "warning",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error"
},
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.127,
"min_copper_edge_clearance": 0.19999999999999998,
"min_hole_clearance": 0.254,
"min_hole_to_hole": 0.254,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.127,
"min_via_annular_width": 0.13,
"min_via_diameter": 0.5,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"use_height_for_length_calcs": true
},
"track_widths": [
0.0
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": []
},
"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_label_syntax": "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",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "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",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "template.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"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)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6.0
},
{
"bus_width": 12.0,
"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": "Thick",
"nets": [],
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.5,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
},
{
"bus_width": 12.0,
"clearance": 0.15,
"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": "Thin",
"nets": [],
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.15,
"via_diameter": 0.5,
"via_drill": 0.3,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"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,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"43fc3289-82a7-492c-a423-3030e10115dc",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,22 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid 43fc3289-82a7-492c-a423-3030e10115dc)
(paper "A4")
(title_block
(date "$date$")
(rev "$version$.$revision$")
(company "CuVoodoo")
(comment 1 "King Kévin")
(comment 2 "CERN-OHL-S")
)
(lib_symbols
)
(sheet_instances
(path "/" (page "1"))
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1,381 +0,0 @@
v 20211219 2
C 6300 0 1 0 0 title.sym
{
T 7300 700 5 10 1 1 0 0 1
date=$date$
T 10600 700 5 10 1 1 0 0 1
org=CuVoodoo
T 10600 400 5 10 1 1 0 0 1
authors=King Kévin
T 9300 1200 5 14 1 1 0 4 1
title=USB-A to USB-C cable tester
T 7300 400 5 10 1 1 0 0 1
version=$version$
T 7300 100 5 10 1 1 0 0 1
revision=$revision$
T 10600 100 5 10 1 1 0 0 1
licence=CERN-OHL-S
T 6300 1800 5 10 0 0 0 0 1
device=none
T 6300 2000 5 10 0 0 0 0 1
footprint=none
}
C -600 3100 1 0 0 FCI_10117835.sym
{
T -600 3100 5 8 0 0 0 0 1
footprint=CONNECTOR_FCI_10117835.lht
T -500 5960 5 10 1 1 0 3 1
refdes=J1
T 1060 3440 5 10 1 1 0 2 1
device=FCI_10117835
T 1800 5900 5 10 1 1 0 0 1
value=USB-A
T -600 3100 5 10 0 0 0 0 1
lcsc=C69073
}
C -200 1700 1 270 0 MY-1220-03.sym
{
T -200 1700 5 8 0 0 270 0 1
footprint=CONNECTOR_MY-1220-03.lht
T 200 1760 5 10 1 1 0 0 1
refdes=J3
T 160 840 5 10 1 1 0 2 1
device=MY-1220-03
T 800 1700 5 10 1 1 0 0 1
value=CR1220
T -200 1700 5 10 0 0 0 0 1
lcsc=C964818
}
C 7000 2700 1 0 0 XKB_U262-24XN-4BV60.sym
{
T 7000 2700 5 8 0 0 0 0 1
footprint=CONNECTOR_XKB_U262-24XN-4BV60.lht
T 7400 5360 5 10 1 1 0 0 1
refdes=J2
T 9960 3040 5 10 1 1 0 2 1
device=XKB_U262-24XN-4BV60
T 10200 5300 5 10 1 1 0 0 1
value=USB-C
T 7000 2700 5 10 0 0 0 0 1
lcsc=C388659
}
C -300 800 1 0 0 GND.sym
N -200 1000 -200 1200 4
C 1700 1500 1 0 0 VCC.sym
N 1900 1100 1900 1500 4
N 9000 5900 9000 5700 4
N 9200 5900 9200 5700 4
C 2900 2900 1 0 1 VCC.sym
N 2700 2900 2600 2900 4
N 1000 2900 1400 2900 4
N 1000 2900 1000 3100 4
C 6600 3800 1 0 0 nc-left-1.sym
{
T 6500 4200 5 10 0 0 0 0 1
value=NoConnection
T 6500 4600 5 10 0 0 0 0 1
device=DRC_Directive
T 6500 5000 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 4400 1 0 0 nc-right-1.sym
{
T 11300 4900 5 10 0 0 0 0 1
value=NoConnection
T 11300 5100 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 5700 5 10 0 0 0 0 1
symversion=1.1
}
C 9800 2300 1 0 0 GND.sym
N 9300 2700 9300 2500 4
N 9300 2500 9900 2500 4
N 9900 2500 9900 2700 4
N 9700 2700 9700 2500 4
N 9500 2700 9500 2500 4
C 3900 4100 1 0 0 R0603.sym
{
T 3900 4100 5 8 0 0 0 0 1
footprint=UC1608X55N.lht
T 4200 4160 5 10 0 1 0 5 1
device=R0603
T 4200 4440 5 10 1 1 0 3 1
refdes=R4
T 4000 4250 5 10 1 1 0 0 1
value=2k2
T 3900 4100 5 10 0 1 0 0 1
lcsc=C4190
}
C 3800 4100 1 0 1 LED0805.sym
{
T 3800 4100 5 8 0 0 0 6 1
footprint=LEDC2012X80N.lht
T 3600 4090 5 10 0 1 0 5 1
device=R0603
T 3700 4460 5 10 1 1 0 3 1
refdes=D4
T 3700 4000 5 10 1 1 0 3 1
value=USB3 (green)
T 3800 4100 5 8 0 0 0 6 1
description=diode, LED, chip, 2.0 x 1.2 mm, green
T 3800 4100 5 10 0 0 0 6 1
lcsc=C2297
}
N 3900 4300 3800 4300 4
N 3400 4300 2800 4300 4
C 7000 4700 1 90 0 VCC.sym
C 11200 3700 1 270 0 VCC.sym
N 2800 4700 3000 4700 4
N 3000 4700 3000 4500 4
N 3000 4500 2800 4500 4
N 2800 4100 3000 4100 4
N 3000 4100 3000 3900 4
N 3000 3900 2800 3900 4
N 7000 4700 6500 4700 4
N 6500 4700 6500 6200 4
N 6500 6200 11900 6200 4
N 11900 6200 11900 4900 4
N 11900 4900 11200 4900 4
N 11200 4700 11900 4700 4
{
T 11400 4700 5 10 1 1 0 0 1
netname=USB3
}
N 11200 3700 12200 3700 4
N 12200 3700 12200 2100 4
N 12200 2100 6300 2100 4
N 6300 2100 6300 3500 4
N 6300 3500 7000 3500 4
N 7000 3700 6300 3700 4
{
T 6800 3700 5 10 1 1 0 6 1
netname=USB3
}
N 4500 4300 5100 4300 4
{
T 4600 4300 5 10 1 1 0 0 1
netname=USB3
}
C 4800 600 1 0 0 BSS138.sym
{
T 4800 600 5 8 0 0 0 0 1
footprint=SOT95P237X112-3N.lht
T 5640 1560 5 10 1 1 0 6 1
refdes=Q6
T 5640 840 5 10 1 1 0 8 1
device=BSS138
T 4800 600 5 10 0 0 0 0 1
lcsc=C112239
T 5100 500 5 10 1 1 0 0 1
value=nMOS
}
C 5000 400 1 90 0 R0603.sym
{
T 5000 400 5 8 0 0 90 0 1
footprint=UC1608X55N.lht
T 4940 700 5 10 0 1 90 5 1
device=R0603
T 4660 700 5 10 1 1 90 3 1
refdes=R6
T 4850 500 5 10 1 1 90 0 1
value=100k
T 5000 400 5 10 0 1 90 0 1
lcsc=C25803
}
N 7000 4500 6300 4500 4
{
T 6600 4500 5 10 1 1 0 6 1
netname=Rp
}
N 11200 3900 11900 3900 4
{
T 11600 3900 5 10 1 1 0 0 1
netname=Rp
}
N 4800 1000 4200 1000 4
{
T 4500 1000 5 10 1 1 0 6 1
netname=Rp
}
T 3100 1200 9 10 1 0 0 0 3
Rp should be pulled to
VBUS through 56kOhm
in cable
C 4700 200 1 0 0 GND.sym
C 5700 400 1 0 0 GND.sym
C 5000 1900 1 0 1 R0603.sym
{
T 5000 1900 5 8 0 0 0 6 1
footprint=UC1608X55N.lht
T 4700 1960 5 10 0 1 0 5 1
device=R0603
T 5000 1900 5 10 0 1 0 6 1
lcsc=C21190
T 4700 2240 5 10 1 1 0 3 1
refdes=R5
T 4800 2050 5 10 1 1 0 6 1
value=1k
}
C 5200 1900 1 0 0 LED0805.sym
{
T 5200 1900 5 8 0 0 0 0 1
footprint=LEDC2012X80N.lht
T 5400 1890 5 10 0 1 0 5 1
device=R0603
T 5200 1900 5 10 0 0 0 0 1
lcsc=C84256
T 5200 1900 5 8 0 0 0 0 1
description=diode, LED, chip, 2.0 x 1.2 mm, red
T 5800 2160 5 10 1 1 0 3 1
refdes=D5
T 4800 1800 5 10 1 1 0 3 1
value=Rp (red)
}
C 4400 2100 1 0 1 VCC.sym
N 4200 2100 4400 2100 4
N 5000 2100 5200 2100 4
N 5600 2100 5800 2100 4
N 5800 2100 5800 1800 4
C 2600 2700 1 0 1 LED0805.sym
{
T 2600 2700 5 8 0 0 0 6 1
footprint=LEDC2012X80N.lht
T 2400 2690 5 10 0 1 0 5 1
device=R0603
T 2600 2700 5 10 0 0 0 6 1
lcsc=C2296
T 2600 2700 5 8 0 0 0 6 1
description=diode, LED, chip, 2.0 x 1.2 mm, yellow
T 2500 3060 5 10 1 1 0 3 1
refdes=D3
T 2600 2600 5 10 1 1 0 3 1
value=SHIELD (yellow)
}
C 1400 2700 1 0 0 R0603.sym
{
T 1400 2700 5 8 0 0 0 0 1
footprint=UC1608X55N.lht
T 1700 2760 5 10 0 1 0 5 1
device=R0603
T 1600 2800 5 10 0 1 0 0 1
lcsc=C23179
T 1700 3040 5 10 1 1 0 3 1
refdes=R3
T 1500 2850 5 10 1 1 0 0 1
value=470
}
N 2200 2900 2000 2900 4
C 4200 5000 1 0 0 R0603.sym
{
T 4200 5000 5 8 0 0 0 0 1
footprint=UC1608X55N.lht
T 4500 5060 5 10 0 1 0 5 1
device=R0603
T 4500 5340 5 10 1 1 0 3 1
refdes=R2
T 4300 5150 5 10 1 1 0 0 1
value=2k2
T 4200 5000 5 10 0 1 0 0 1
lcsc=C4190
}
N 4800 5200 5000 5200 4
C 5000 5000 1 0 0 LED0805.sym
{
T 5000 5000 5 8 0 0 0 0 1
footprint=LEDC2012X80N.lht
T 5200 4990 5 10 0 1 0 5 1
device=R0603
T 5000 5260 5 10 1 1 0 3 1
refdes=D2
T 5200 4900 5 10 1 1 0 3 1
value=USB2 (green)
T 5000 5000 5 8 0 0 0 0 1
description=diode, LED, chip, 2.0 x 1.2 mm, green
T 5000 5000 5 10 0 0 0 0 1
lcsc=C2297
}
N 4200 5200 3400 5200 4
{
T 4100 5200 5 10 1 1 0 6 1
netname=USB2+
}
N 5400 5200 6200 5200 4
{
T 5600 5200 5 10 1 1 0 0 1
netname=USB2-
}
C 2800 5500 1 270 0 VCC.sym
C 3000 5400 1 90 0 GND.sym
N 7000 4300 6200 4300 4
{
T 6900 4300 5 10 1 1 0 6 1
netname=USB2+
}
N 12000 4100 11200 4100 4
{
T 11400 4100 5 10 1 1 0 0 1
netname=USB2+
}
N 6200 4100 7000 4100 4
{
T 6800 4100 5 10 1 1 0 6 1
netname=USB2-
}
N 11200 4300 12000 4300 4
{
T 11400 4300 5 10 1 1 0 0 1
netname=USB2-
}
C 4800 5700 1 0 1 R0603.sym
{
T 4800 5700 5 8 0 0 0 6 1
footprint=UC1608X55N.lht
T 4500 5760 5 10 0 1 0 5 1
device=R0603
T 4800 5700 5 10 0 1 0 6 1
lcsc=C21190
T 4500 6040 5 10 1 1 0 3 1
refdes=R1
T 4600 5850 5 10 1 1 0 6 1
value=1k
}
C 5100 5700 1 0 0 LED0805.sym
{
T 5100 5700 5 8 0 0 0 0 1
footprint=LEDC2012X80N.lht
T 5300 5690 5 10 0 1 0 5 1
device=R0603
T 5100 5700 5 10 0 0 0 0 1
lcsc=C84256
T 5100 5700 5 8 0 0 0 0 1
description=diode, LED, chip, 2.0 x 1.2 mm, red
T 5100 5960 5 10 1 1 0 3 1
refdes=D1
T 5300 5600 5 10 1 1 0 3 1
value=POWER (red)
}
N 4800 5900 5100 5900 4
N 5500 5900 6200 5900 4
{
T 5600 5900 5 10 1 1 0 0 1
netname=PWR-
}
N 4200 5900 3400 5900 4
{
T 4000 5900 5 10 1 1 0 6 1
netname=PWR+
}
C 2800 5900 1 270 0 VCC.sym
C 3000 5000 1 90 0 GND.sym
N 8500 2700 8500 2400 4
N 7800 2400 8700 2400 4
{
T 8300 2400 5 10 1 1 0 6 1
netname=PWR-
}
N 8700 2700 8700 2400 4
N 9000 5900 9900 5900 4
{
T 9300 5900 5 10 1 1 0 0 1
netname=PWR+
}