Compare commits
82 Commits
master
...
hdmi_firew
Author | SHA1 | Date |
---|---|---|
King Kévin | 8ea411fd8a | |
King Kévin | 18926c4cc9 | |
King Kévin | 94a112b154 | |
King Kévin | 23511e68e1 | |
King Kévin | 7358be50e2 | |
King Kévin | bf869eee8d | |
King Kévin | 46d106d99c | |
King Kévin | d72dba822c | |
King Kévin | 867e6949b7 | |
King Kévin | 4e82cef602 | |
King Kévin | fa94f37ba8 | |
King Kévin | 58eacec914 | |
King Kévin | 3060b0dc05 | |
King Kévin | ce234c7b01 | |
King Kévin | 034ddca6f0 | |
King Kévin | 759e93f5b7 | |
King Kévin | 84d4db186d | |
King Kévin | 4f18284b9e | |
King Kévin | f3c0a314bc | |
King Kévin | 66a4f4a6c8 | |
King Kévin | f0fe042e87 | |
King Kévin | 83f775ae09 | |
King Kévin | 0ed8f07910 | |
King Kévin | ed8c064687 | |
King Kévin | 9581f99519 | |
King Kévin | b66dfda066 | |
King Kévin | 8768c787f8 | |
King Kévin | ecc0d8434e | |
King Kévin | 45681e2751 | |
King Kévin | 0527253b29 | |
King Kévin | aaaa7a9e06 | |
King Kévin | 8ca03d7661 | |
King Kévin | 0230a77cd5 | |
King Kévin | 7b81cfd1ac | |
King Kévin | f5707eb56d | |
King Kévin | 977d2d6cc7 | |
King Kévin | 0f76fd4089 | |
King Kévin | b207b61db9 | |
King Kévin | d83cfc5fe3 | |
King Kévin | 8b9c72f70c | |
King Kévin | e72c683999 | |
King Kévin | cafca73743 | |
King Kévin | cb7aa78b06 | |
King Kévin | bc8a9bfc1d | |
King Kévin | ddfbc49814 | |
King Kévin | c19bc12a7a | |
King Kévin | d90cd5f8b5 | |
King Kévin | 2afed4573d | |
King Kévin | 9f2e004521 | |
King Kévin | 15302eeda9 | |
King Kévin | 5422ab7704 | |
King Kévin | 156ef34a0e | |
King Kévin | e0d9b8377c | |
King Kévin | 0c9f27138d | |
King Kévin | 9446c621ae | |
King Kévin | 71caf5f793 | |
King Kévin | 932f0e07e9 | |
King Kévin | 9a67bac5f1 | |
King Kévin | ece0aa4730 | |
King Kévin | 432de7d2c8 | |
King Kévin | 3d6d42d1d8 | |
King Kévin | 7531f02225 | |
King Kévin | dabf167b5f | |
King Kévin | 473587a9e8 | |
King Kévin | be24d31ddd | |
King Kévin | 588e570e0d | |
King Kévin | fd9d7780c9 | |
King Kévin | 38f031e202 | |
King Kévin | 162f540837 | |
King Kévin | b35c3526d2 | |
King Kévin | 9087beec8e | |
King Kévin | ff3fe4f2c4 | |
King Kévin | 132f2e1317 | |
King Kévin | daf23c9afe | |
King Kévin | e59a0f732d | |
King Kévin | dfc9010874 | |
King Kévin | a23e5228da | |
King Kévin | 43cb77c7b6 | |
King Kévin | 7d6caee37e | |
King Kévin | c9adea88e4 | |
King Kévin | 122543235d | |
King Kévin | 3b7e68fd46 |
|
@ -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
|
||||
|
|
11
.qeda.yaml
11
.qeda.yaml
|
@ -1,10 +1,17 @@
|
|||
config:
|
||||
output: coraleda
|
||||
output: kicad
|
||||
pattern:
|
||||
densityLevel: 'N'
|
||||
lineWidth:
|
||||
silkscreen: 0.2
|
||||
polarityMark: none
|
||||
preferManufacturer: false
|
||||
preferManufacturer: true
|
||||
smoothPadCorners: false
|
||||
library:
|
||||
- connector/hdmi-001s
|
||||
- ic/eeprom_ft24c16a-e@l
|
||||
- resistor/r0603
|
||||
- capacitor/c0603
|
||||
- mcu/st_stm8s003x3@p
|
||||
- mechanical/dip-switch_dsicxxls@dsic07ls
|
||||
- diode/led0805
|
||||
|
|
34
CHANGELOG.md
34
CHANGELOG.md
|
@ -0,0 +1,34 @@
|
|||
v2
|
||||
==
|
||||
|
||||
instead of an edge plug, the monitor connector is also a receptacle.
|
||||
this prevents the firewall from sticking out of the monitor too much, particularly when installed in tight spaces.
|
||||
it also allows to place the HDMI firewall inline even if you don't have access to the monitor's HDMI port.
|
||||
finally it also allows the board to be manufactured more easily.
|
||||
|
||||
the programmer is now included in the firewall.
|
||||
this offers very easy copy of the EDID data.
|
||||
no need to use complex linux commands or stand-alone separate programmer.
|
||||
the programmer uses the embedded EEPROM and acts as I²C slave.
|
||||
|
||||
a DIP switch allows to selectively block or forward interfaces.
|
||||
|
||||
v1
|
||||
==
|
||||
|
||||
this version comes as dongle, which can directly be plugged in the monitor.
|
||||
the impedance and length of the differential signal pairs are properly taken care of.
|
||||
a breakable tab replaces the WP switch.
|
||||
pads are still present to override the disabled WP and 5V.
|
||||
|
||||
the shield is not connected to ground, which causes EEPROM read errors with cheap HDMI cables skimping on the ground wire (pin 17).
|
||||
the workaround is to scratch the solder mask near one of the HDMI receptacle shell tab and solder it.
|
||||
|
||||
v0
|
||||
==
|
||||
|
||||
first working version.
|
||||
|
||||
based on the design of the original research.
|
||||
the HDMI connectors are on opposite sides of the board to make the routing easy (the differential signals are straight lines).
|
||||
the impedance does not seem to by optimal, leading to EMF leakage (reported by the original researchers).
|
|
@ -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)
|
||||
- make: takes care of generating the output 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 `make`.
|
||||
|
||||
library
|
||||
-------
|
||||
|
||||
|
@ -35,26 +39,23 @@ sudo npm install --global
|
|||
|
||||
to generate the parts:
|
||||
~~~
|
||||
rake library
|
||||
make lib
|
||||
~~~
|
||||
|
||||
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:
|
||||
~~~
|
||||
rake print
|
||||
make print
|
||||
~~~
|
||||
|
||||
BOM
|
||||
|
@ -62,21 +63,30 @@ BOM
|
|||
|
||||
to export the bill of material (as CSV):
|
||||
~~~
|
||||
rake bom
|
||||
make 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.
|
||||
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/.
|
||||
it uses the footprints from the `kicad/` folder.
|
||||
most footprints are generated by QEDA as described above.
|
||||
|
||||
to export gerber files for PCB manufacturer (and photo preview + overview document):
|
||||
~~~
|
||||
rake fabrication
|
||||
make 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`:
|
||||
|
||||
- `v` corresponds to the major version information defined in `version`
|
||||
- `r` corresponds to the total number of changes done to the source files
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package;x;y;rot
|
||||
LEDC2012X80N;0;0;-90
|
||||
UC1608X55N;0;0;-90
|
||||
CAPC1608X92N;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
|
||||
CONNECTOR_U231-09XN-4BLRA00;0;-3.0;0
|
||||
SOP254P976X355-14N;0;0;-90
|
||||
SOP65P640X120-20N;0;0;-90
|
||||
CONNECTOR_HDMI-001S;0;1.1;0
|
|
|
@ -0,0 +1,71 @@
|
|||
# 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)
|
||||
|
||||
# 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: print fabrication
|
||||
|
||||
print: ${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 $@
|
||||
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}
|
||||
pcbdraw --silent $@ --dpi 600 panel.brd-top.png
|
||||
pcbdraw --silent $@ --dpi 600 --back panel.brd-bot.png
|
||||
|
||||
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}
|
214
README.md
214
README.md
|
@ -1,7 +1,219 @@
|
|||
these are the hardware design files for **insert project name here**.
|
||||
The HDMI firewall prevents devices from hacking HDMI equipment, and vice-versa.
|
||||
|
||||
<img src="picture/front_v2.webp" title="front" height="250"/>
|
||||
<img src="picture/back_v2.webp" title="back" height="250"/>
|
||||
|
||||
purpose
|
||||
=======
|
||||
|
||||
HDMI is mainly used to transfer audio and video, but also offers a number of additional features (e.g. HDCP, CEC, HEC, ARC, MHL).
|
||||
This increases the attack surface, and since the security of their implement in embedded devices is far from ideal, an attacker could exploit them and inject malicious code.
|
||||
Now your unsuspicious video equipment is compromised and threatens your IT/network security.
|
||||
And your monitor could then in turn hack back any other device connected to it.
|
||||
|
||||
For example, let's imagine you invite an external guest for a presentation inside your company.
|
||||
You offer to connect to a smart TV or video-projector so he can show his slides.
|
||||
This is the perfect opportunity for the guest to hack it.
|
||||
Now your smart TV can act as a spy in your network.
|
||||
Or next time an employee connects to the projector, his laptop is hacked back.
|
||||
And voila, the innocent guest managed to infiltrate your company network, and can exfiltrate confidential information.
|
||||
|
||||
The HDMI firewall can block all additional interfaces, and only allow audio and video data transfer.
|
||||
It is based on the research of Pierre-Michel Ricordel and José Lopes Esteves from ANSSI/SDE/ST/LSF presented at the IT security conference [SSTIC 2021](https://sstic.org/2021/presentation/un_pare_feu_pour_le_hdmi/).
|
||||
Some security research and vulnerabilities around CEC and EDID are listed in [slide 4](https://www.sstic.org/media/SSTIC2021/SSTIC-actes/un_pare_feu_pour_le_hdmi/SSTIC2021-Slides-un_pare_feu_pour_le_hdmi-lopes-esteves_ricordel.pdf).
|
||||
|
||||
usage
|
||||
=====
|
||||
|
||||
First plug the HDMI cable going to the monitor on the HDMI firewall on the port labeled **MONITOR**.
|
||||
Then plug the HDMI cable going to the device on the HDMI firewall on the port labeled **DEVICE**.
|
||||
That's it, your equipment (monitor and device) are now protected.
|
||||
But the firewall should be fine tuned as described below.
|
||||
|
||||
The HDMI firewall comes with a generic HD profile, but this might not correspond to the capabilities of your monitor.
|
||||
The resulting image could be distorted, or completely missing.
|
||||
Thus, you first have to copy the Extended Display Identification Data (EDID) information of the equipment to protect.
|
||||
This data includes information such as the supported resolutions.
|
||||
The HDMI firewall can copy the EDID from the monitor:
|
||||
|
||||
1. ensure the firewall is connected to the monitor
|
||||
1. unplug the device from the firewall
|
||||
1. toggle the small switch labeled EDID/7 to the ALLOW/ON position
|
||||
1. ensure the SDA/2 and SCL/3 switches are on the BLOCK/OFF position
|
||||
1. plug the device to the firewall
|
||||
1. this will power the firewall, which will copy the monitor EDID onto its internal memory, shown by a short blink of the ERROR LED
|
||||
1. unplug the device, and switch back the EDID/7 switch to the BLOCK/OFF position so the firewall keeps and uses the copied EDID information
|
||||
1. when connecting the device back in, you should see the same name as the monitor, with a '|' at the end, indicating you are using the EDID from the firewall
|
||||
|
||||
The HDMI firewall allows to select which interfaces are blocked using the switches.
|
||||
The highest security is provided when blocking all lines by setting the switches to the BLOCK position.
|
||||
If you still trust your equipment enough and want to use a feature, you can set the corresponding switch to the ALLOW/ON position:
|
||||
|
||||
- 5V: some monitors require this line to detect when a device is plugged in, and since currently no other information is transferred over this line, it is rather safe to enable it
|
||||
- Display Data Channel (DDC): High-bandwidth Digital Content Protection (HDCP) uses this interface. To enable it, switch SDA and SCL on. Warning: since the EDID is also transferred over this interface, the firewall can't provide a write-protected copy of it. Instead the original monitor EDID is used, maybe not write-protected.
|
||||
- Consumer Electronics Control (CEC): this interface allows to remotely control equipment, such as setting the volume and powering on/off all connected devices and monitors at once
|
||||
- HDMI Ethernet Channel (HEC), Audio Return Channel (ARC), and Mobile High-Definition Link (MHL): to enable these interfaces, switch UTIL and HPD on to forward the HEAC+ and HEAC- lines
|
||||
|
||||
The HDMI firewall can also be used to provide custom EDID, as it sometimes is faulty in the monitor.
|
||||
For that you need to program the raw binary EDID (with up to 1 extension block) onto the STM8S103 EEPROM using the RST and SWIM lines made available on the back of the board.
|
||||
|
||||
limitations
|
||||
===========
|
||||
|
||||
The HDMI firewall use impedance controlled lines: 4-layer impedance controlled board, differential pair routing, intra- and inter-pair length matching.
|
||||
This should allow and audio any video signal to be transmitted to the monitor.
|
||||
But I only have 2K equipment I could test it on.
|
||||
I could not test the firewall against 4K, 8K, or 3D capable monitors.
|
||||
CEC remote control has been tested.
|
||||
But I don't have any equipment using HDCP, HEC, ARC, or MHL.
|
||||
Thus I could also not test these interfaces.
|
||||
|
||||
The firewall only supports EDID with up to 1 extension block.
|
||||
This is the case for all monitors I've seen.
|
||||
Some high end monitors supporting numerous features might have additional extensions blocks.
|
||||
Thus the firewall might prevent from using the monitor to its full potential.
|
||||
You can still use the original EDID from the monitor by setting the SDA/2 and SCL/3 switches to the ALLOW/ON position.
|
||||
The DDC channel won't be firewalled anymore though.
|
||||
|
||||
Feel free to report any success or issues to `hdmi@cuvoodoo.info`.
|
||||
|
||||
availability
|
||||
============
|
||||
|
||||
The HDMI firewall is available on [tindie](https://www.tindie.com/products/cuvoodoo/hdmi-firewall/).
|
||||
|
||||
The schematic pdf and board gerbers are available as [release](https://git.cuvoodoo.info/kingkevin/board/releases/tag/hdmi_firewall_v2).
|
||||
|
||||
firmware
|
||||
========
|
||||
|
||||
The firmware and sources for the HDMI firewall embedded programmer are available [here](https://git.cuvoodoo.info/kingkevin/stm8s/src/branch/hdmi_firewall).
|
||||
|
||||
troubleshooting
|
||||
===============
|
||||
|
||||
If the monitor does not detect the device or does not display anything (but should), try to re-enable the 5V forward (as per default) by switching the 5V/1 switch to ALLOW/ON.
|
||||
|
||||
If the ERROR LED stays on, it means copying the EDID failed:
|
||||
|
||||
- be sure the monitor is connected before you connect the device (which powers the firewall)
|
||||
- be sure the SDA/2 and SCL/3 switches are set to BLOCK so the firewall can use the DDC interface to read the EDID
|
||||
- the EDID of the monitor might be corrupted or have an invalid checksum, in which case the firewall will not copy it
|
||||
- the firewall EEPROM memory has worn out or is defective (it should last 300 thousand copies)
|
||||
|
||||
custom EDID
|
||||
===========
|
||||
|
||||
It is possible to write custom EDID on the HDMI firewall, for example because:
|
||||
|
||||
- the monitor's original EDID is corrupted
|
||||
- you want to disable a feature or resolution causing your device to misbehave
|
||||
- you want to re-enable a feature the monitor actually supports
|
||||
- the KVM switch does not reflect the HDMI monitor change
|
||||
- you want to do security research
|
||||
|
||||
For that you can use the debugging pins left on the board, and [program](https://git.cuvoodoo.info/kingkevin/stm8s/src/branch/hdmi_firewall/README.md) the raw EDID in the STM8S EEPROM area using an ST-LINK/V2 programmer.
|
||||
|
||||
If you switch EDID to the ALLOW position, the HDMI firewall's EEPROM is not write-protected (on devices shipped after 2022-08-19).
|
||||
This allows to use the HDMI connection to write the EEPROM content using the DDC's I²C bus, and does not required an external programmer.
|
||||
|
||||
These instructions are for Linux.
|
||||
For Windows see the instructions provided in the [original research slides](https://www.sstic.org/media/SSTIC2021/SSTIC-actes/un_pare_feu_pour_le_hdmi/SSTIC2021-Slides-un_pare_feu_pour_le_hdmi-lopes-esteves_ricordel.pdf) (untested).
|
||||
|
||||
Install tools to read/write I²C devices:
|
||||
|
||||
- for Debian-based distributions
|
||||
|
||||
~~~
|
||||
sudo apt install i2c-tools
|
||||
~~~
|
||||
|
||||
Make the I²C buses user accessible (under /dev/i2c-*):
|
||||
|
||||
~~~
|
||||
sudo modprobe i2c-dev
|
||||
~~~
|
||||
|
||||
Now we have to figure out which I²C bus corresponds to the HDMI port.
|
||||
First list the available buses:
|
||||
|
||||
~~~
|
||||
sudo i2cdetect -l
|
||||
~~~
|
||||
|
||||
You should see something like this:
|
||||
|
||||
~~~
|
||||
i2c-0 smbus SMBus PIIX4 adapter port 0 at 0b00 SMBus adapter
|
||||
i2c-1 smbus SMBus PIIX4 adapter port 2 at 0b00 SMBus adapter
|
||||
i2c-2 smbus SMBus PIIX4 adapter port 1 at 0b20 SMBus adapter
|
||||
i2c-3 i2c AMDGPU DM i2c hw bus 0 I2C adapter
|
||||
i2c-4 i2c AMDGPU DM i2c hw bus 1 I2C adapter
|
||||
i2c-5 i2c AMDGPU DM i2c hw bus 2 I2C adapter
|
||||
i2c-6 i2c AMDGPU DM i2c hw bus 3 I2C adapter
|
||||
i2c-7 i2c AMDGPU DM aux hw bus 0 I2C adapter
|
||||
i2c-8 i2c AMDGPU DM aux hw bus 2 I2C adapter
|
||||
i2c-9 i2c AMDGPU DM aux hw bus 3 I2C adapter
|
||||
i2c-10 i2c DPMST I2C adapter
|
||||
i2c-11 i2c DPMST I2C adapter
|
||||
~~~
|
||||
|
||||
Candidate buses are 3 to 9, used by the GPU (number after i2c- in the first column).
|
||||
|
||||
Disconnect everything from the HDMI port, and scan for devices on each I²C bus (replace BUS with the bus number):
|
||||
|
||||
~~~
|
||||
sudo i2cdetect -y BUS
|
||||
~~~
|
||||
|
||||
Since nothing is connected, no device should be detected, and the output should look like this:
|
||||
|
||||
~~~
|
||||
0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
00: -- -- -- -- -- -- -- --
|
||||
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
70: -- -- -- -- -- -- -- --
|
||||
~~~
|
||||
|
||||
Now connect the HDMI firewall on the device side to your HDMI port and re-scan for devices.
|
||||
If you see the following result, you found the I²C bus of the HDMI port.
|
||||
Else continue with the next bus.
|
||||
|
||||
~~~
|
||||
0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
00: -- -- -- -- -- -- -- --
|
||||
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
70: -- -- -- -- -- -- -- --
|
||||
~~~
|
||||
|
||||
Write your custom EDID data `edid.bin` to the HDMI firewall (replace BUS with corresponding bus number):
|
||||
|
||||
~~~
|
||||
for addr in `seq 0 255`; do echo $addr; sudo i2cset -y BUS 0x50 $addr 0x`xxd -p -l 1 -s $addr edid.bin`; done
|
||||
~~~
|
||||
|
||||
To verify the data has been written correctly, compare original data with the one on the EEPROM:
|
||||
|
||||
~~~
|
||||
# display original dumped data
|
||||
xxd -g 1 edid.bin
|
||||
# display data written on EEPROM
|
||||
sudo i2cdump -y BUS 0x50
|
||||
~~~
|
||||
|
||||
Once writing the EDID to the HDMI firewall memory succeeded:
|
||||
|
||||
- re-enable write protection by toggling the EDID switch to the BLOCK position
|
||||
- re-plug the HDMI firewall for the device to retrieve the newly written EDID
|
||||
|
||||
To read and play with EDID under Linux, you can use the tips provided for the previous [HDMI firewall v1](https://git.cuvoodoo.info/kingkevin/board/src/tag/hdmi_firewall_v1/README.md).
|
||||
|
|
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 = "template"
|
||||
# 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,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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
|
|
@ -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()
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
(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 ""))
|
||||
(lib (name "custom")(type "KiCad")(uri "${KIPRJMOD}/kicad/custom.pretty")(options "")(descr ""))
|
||||
)
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,532 @@
|
|||
{
|
||||
"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.9,
|
||||
"height": 2.3,
|
||||
"width": 1.5
|
||||
},
|
||||
"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.0
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [
|
||||
"missing_courtyard|47600000|75000000|29b1b4a0-f91c-4150-9909-e799058c1a17|00000000-0000-0000-0000-000000000000",
|
||||
"missing_courtyard|93050000|75000000|c900d9ed-661e-4ab6-9bb8-a2a410ddbd61|00000000-0000-0000-0000-000000000000",
|
||||
"silk_over_copper|47800000|58796666|f0146902-4434-4b0f-b356-212cd68fedb2|e33f2640-6147-4605-84c4-295ca3d1c887",
|
||||
"silk_over_copper|47800000|60906761|f0146902-4434-4b0f-b356-212cd68fedb2|47d2de52-f49e-423a-b420-37362595aee9",
|
||||
"silk_over_copper|47825000|67400000|f0146902-4434-4b0f-b356-212cd68fedb2|6f3abfe8-c263-4876-98d2-147dbe24736a",
|
||||
"silk_over_copper|47825000|82600000|f0146902-4434-4b0f-b356-212cd68fedb2|782042ff-c466-40ea-a84b-e728e059b563",
|
||||
"silk_over_copper|47825000|82600000|f0146902-4434-4b0f-b356-212cd68fedb2|935faa4f-6a7f-4631-a892-1ec9563eb136",
|
||||
"silk_over_copper|47850000|67400000|f0146902-4434-4b0f-b356-212cd68fedb2|6f3abfe8-c263-4876-98d2-147dbe24736a",
|
||||
"silk_over_copper|47850000|82600000|f0146902-4434-4b0f-b356-212cd68fedb2|782042ff-c466-40ea-a84b-e728e059b563",
|
||||
"silk_overlap|52100000|65850000|1fbc8561-7607-4b92-87be-b7668c3929a2|edb5444b-85b1-4659-9175-27370a62658c",
|
||||
"silk_overlap|54450000|60475000|fd8d0bc5-33ee-4442-a8a5-b2a5c9983c1a|48e9f32c-cdbe-4e08-a674-21d729076b78",
|
||||
"silk_overlap|54450000|62325000|c97d851f-3ea4-478a-a018-f69e7c125ce3|e59b4462-95cb-4da9-a869-9b9448da895d",
|
||||
"silk_overlap|54450000|62325000|e59b4462-95cb-4da9-a869-9b9448da895d|c97d851f-3ea4-478a-a018-f69e7c125ce3",
|
||||
"silk_overlap|66200000|61250000|c625e07b-3c96-4b3d-927b-281bf5eef6ec|2be3ae3e-925a-4090-bb02-3989648c170a",
|
||||
"silk_overlap|66250000|62350000|2be3ae3e-925a-4090-bb02-3989648c170a|c625e07b-3c96-4b3d-927b-281bf5eef6ec"
|
||||
],
|
||||
"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.09,
|
||||
"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.19999999999999998,
|
||||
"min_track_width": 0.09,
|
||||
"min_via_annular_width": 0.125,
|
||||
"min_via_diameter": 0.44999999999999996,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"track_widths": [
|
||||
0.0,
|
||||
0.15,
|
||||
0.2,
|
||||
0.3
|
||||
],
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
},
|
||||
{
|
||||
"diameter": 0.45,
|
||||
"drill": 0.2
|
||||
},
|
||||
{
|
||||
"diameter": 0.6,
|
||||
"drill": 0.3
|
||||
}
|
||||
],
|
||||
"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": "hdmi_firewall.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.19,
|
||||
"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": [
|
||||
"+5V",
|
||||
"GND",
|
||||
"Net-(C1-Pad2)",
|
||||
"Net-(SW1-Pad14)"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.3,
|
||||
"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.2,
|
||||
"wire_width": 6.0
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.1778,
|
||||
"diff_pair_gap": 0.1778,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.19177,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "diff",
|
||||
"nets": [
|
||||
"/CK+",
|
||||
"/CK-",
|
||||
"/D0+",
|
||||
"/D0-",
|
||||
"/D1+",
|
||||
"/D1-",
|
||||
"/D2+",
|
||||
"/D2-",
|
||||
"/HEAC_D+",
|
||||
"/HEAC_D-",
|
||||
"/HEAC_SNK+",
|
||||
"/HEAC_SNK-"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.19177,
|
||||
"via_diameter": 0.45,
|
||||
"via_drill": 0.2,
|
||||
"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": {}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,586 @@
|
|||
(footprint "qr" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 0)
|
||||
(fp_text reference "QR*****" (at 0 9.75) (layer "F.SilkS")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp 9e6b350f-4f76-445c-8b14-e5fba0b3c339)
|
||||
)
|
||||
(fp_text value "qr" (at 0 -9.75) (layer "F.SilkS")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp bf1afb24-41a3-4ce2-849b-41193908d732)
|
||||
)
|
||||
(fp_rect (start -1.25 -1.75) (end -0.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 008d9bf7-df0b-4f0e-9a3a-62d5e135d9fc))
|
||||
(fp_rect (start 6.75 -5.25) (end 7.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 00938406-3197-4e78-9bf6-ec17e23fa7f9))
|
||||
(fp_rect (start 0.25 -4.75) (end 0.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 01556b6f-db5c-4dc0-b16e-b8fc83d28094))
|
||||
(fp_rect (start -1.25 -5.25) (end -0.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 018d1958-5221-4b77-9657-c7d8fac8a9e3))
|
||||
(fp_rect (start -7.25 7.75) (end -6.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 02510734-50da-4e20-acb8-8016ab1a7e3b))
|
||||
(fp_rect (start -6.75 7.75) (end -6.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 029b4955-b66d-4133-a388-80926b16133e))
|
||||
(fp_rect (start 6.75 -1.75) (end 7.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 02e38b0a-ed5b-4463-94bf-9ce149b9ebe0))
|
||||
(fp_rect (start -4.75 -0.25) (end -4.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 02ef10c7-adc0-41a6-b708-8d45908af5da))
|
||||
(fp_rect (start 7.25 5.25) (end 7.75 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 03293cd0-8b40-46c8-9ae9-826fc80eef04))
|
||||
(fp_rect (start -1.75 -4.25) (end -1.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 03502eb3-0d7d-40aa-8306-3088047130a0))
|
||||
(fp_rect (start -0.75 0.75) (end -0.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 035ddf16-d9b4-471f-b23d-51008ca26b9d))
|
||||
(fp_rect (start -7.25 2.25) (end -6.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 03af1ce5-e002-4293-9084-f50df3abcbe1))
|
||||
(fp_rect (start 2.75 2.25) (end 3.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 03d7d2e9-51cd-43de-9126-65a1d258cc3c))
|
||||
(fp_rect (start -6.75 -2.25) (end -6.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 04261d17-0901-45e9-a4ea-758c2550555f))
|
||||
(fp_rect (start -6.75 2.75) (end -6.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 058d4ea5-7956-4028-84bd-671a4194265c))
|
||||
(fp_rect (start 5.75 3.75) (end 6.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 05fbc8f9-3353-4c5e-a205-a59271af6b89))
|
||||
(fp_rect (start -8.25 3.75) (end -7.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 066c73a1-a722-46cc-8c59-2f329c119b3a))
|
||||
(fp_rect (start 6.25 6.25) (end 6.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0780f3d3-4f03-4b4c-9106-9850541bbc05))
|
||||
(fp_rect (start 1.75 6.75) (end 2.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 08391784-b3e9-4414-9904-050300b66ac7))
|
||||
(fp_rect (start -1.75 2.25) (end -1.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 08c918f7-8fb5-4ad0-ab08-9a9f491a36ba))
|
||||
(fp_rect (start -5.25 -5.25) (end -4.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 08d9eea2-5847-45b8-a824-37958ec0380e))
|
||||
(fp_rect (start -8.25 -4.25) (end -7.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0938dc38-2baf-4202-ada7-26e895329da7))
|
||||
(fp_rect (start 7.75 -5.75) (end 8.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0b747d3e-5fa5-499e-af05-4957ada1603d))
|
||||
(fp_rect (start -1.75 -0.25) (end -1.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0bdb8eb2-1208-443d-bd5d-80f93de32008))
|
||||
(fp_rect (start 5.75 1.75) (end 6.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0d0f6bb0-c6fb-438b-87c7-53a70f3007f5))
|
||||
(fp_rect (start -6.25 2.25) (end -5.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0df7b1ab-9fb2-42b6-b3ab-e3e30ff526f8))
|
||||
(fp_rect (start 3.25 6.75) (end 3.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0ed367a8-9d3b-4a3b-8852-6aa44eba4480))
|
||||
(fp_rect (start 6.25 3.75) (end 6.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0f415d0a-4861-4df6-82d1-d5757a33cd3e))
|
||||
(fp_rect (start 5.25 1.25) (end 5.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 0f802ffe-949c-45e7-997f-da72150665b3))
|
||||
(fp_rect (start 6.25 1.75) (end 6.75 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1017e9b7-1c96-4b0a-83da-67088d937cf5))
|
||||
(fp_rect (start -4.75 -4.25) (end -4.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 111400f2-24a9-4c12-b3aa-d2f0601042d5))
|
||||
(fp_rect (start 6.25 2.25) (end 6.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 11bb9ccc-265d-4091-bc67-2b936c3bbfb0))
|
||||
(fp_rect (start 1.25 -4.75) (end 1.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 11be8715-7049-4601-ab56-81f88ab5e356))
|
||||
(fp_rect (start -2.25 -0.75) (end -1.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 11f2076c-8d3e-4d5f-ba17-8bfcd34a30dc))
|
||||
(fp_rect (start -5.25 -4.25) (end -4.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1310b6a0-7aa6-40a4-98e9-1419d49fcbf1))
|
||||
(fp_rect (start 2.75 0.75) (end 3.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 132301c1-cab9-4592-ba51-e4e4a5fca339))
|
||||
(fp_rect (start 6.25 -7.25) (end 6.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1347c0b5-22f7-4bbf-9d60-cb2a3270e2cc))
|
||||
(fp_rect (start 6.75 -3.75) (end 7.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 138d1c7b-3e65-42ee-8299-496eea7b4bd8))
|
||||
(fp_rect (start 0.25 0.75) (end 0.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 14880cbf-596e-4ff2-b58a-463f638716bf))
|
||||
(fp_rect (start -0.25 -0.75) (end 0.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 14a4b050-8210-491a-a1b2-8cc4d72298cb))
|
||||
(fp_rect (start 5.25 5.75) (end 5.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 14b2b7f2-4619-4d3c-9670-4575eccf336a))
|
||||
(fp_rect (start 5.75 -6.25) (end 6.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 14c73277-ce2c-41c8-a77d-062150b40938))
|
||||
(fp_rect (start -3.75 -5.75) (end -3.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 14ffd0cd-da4e-4694-8b98-0fa87d0daf61))
|
||||
(fp_rect (start -6.25 6.75) (end -5.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 15ebf12b-eb90-45af-a73d-5bcf4cae7ba9))
|
||||
(fp_rect (start 6.75 -1.25) (end 7.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 15f18e2c-8716-4735-92c1-4bee31d699b1))
|
||||
(fp_rect (start -7.75 0.75) (end -7.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 165d50f2-5c54-4dd6-977f-bc2cb9520adc))
|
||||
(fp_rect (start -8.25 -7.75) (end -7.75 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 169d7211-8d5c-4564-a95f-8904faf52384))
|
||||
(fp_rect (start -5.25 2.75) (end -4.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 177e4de7-86f0-4c08-838c-ef52d77c4d19))
|
||||
(fp_rect (start -8.25 -3.75) (end -7.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 17b08bdc-aca4-4a00-91c0-3b00312992a0))
|
||||
(fp_rect (start -6.25 1.75) (end -5.75 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 17c0af7a-a819-4966-bb6b-9648cac7ad77))
|
||||
(fp_rect (start 4.25 -1.25) (end 4.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1af7a4c7-94dc-4b16-a9ca-5e10175c9bb4))
|
||||
(fp_rect (start -3.25 -3.75) (end -2.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1b6d3ba4-7c56-4af8-a492-5bd95715b300))
|
||||
(fp_rect (start -1.25 -0.75) (end -0.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1b7ab684-3857-4d01-85a3-5f7563e52bf4))
|
||||
(fp_rect (start -5.25 -2.25) (end -4.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1bcf33d0-f9be-4c1a-838d-9e335aeb9966))
|
||||
(fp_rect (start 4.75 0.75) (end 5.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1bed4bfd-72bf-48c2-b894-058c57ac1dcc))
|
||||
(fp_rect (start 3.75 -5.25) (end 4.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1c554959-db2d-459c-a889-54845516d0ff))
|
||||
(fp_rect (start 3.75 -5.75) (end 4.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1ceb171a-ff7a-43ea-a0e9-5b513c0813e1))
|
||||
(fp_rect (start -4.25 4.25) (end -3.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1cf9ef5c-71e6-4bb3-8cba-02da70c6bc64))
|
||||
(fp_rect (start -5.75 -5.25) (end -5.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1e361ab6-2b75-4698-a40b-19e42cf7434d))
|
||||
(fp_rect (start 1.25 -1.75) (end 1.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1f0c1b18-0fda-4f84-a744-0debf1b1221d))
|
||||
(fp_rect (start -8.25 5.75) (end -7.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1f5a0567-4a9c-441a-be38-768cc7b7cdb3))
|
||||
(fp_rect (start 4.75 -5.75) (end 5.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 1f8470d3-2fe2-4853-a1b0-19b09a8fa732))
|
||||
(fp_rect (start 5.75 -8.25) (end 6.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 20c217e7-b916-4cc2-85ac-9dc2d0bb1dae))
|
||||
(fp_rect (start 6.25 -6.25) (end 6.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 20d5dd0e-46b2-40db-98aa-6197af00ca3c))
|
||||
(fp_rect (start 5.75 -7.25) (end 6.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2112cd90-6b85-481b-a7b7-58e10696e91e))
|
||||
(fp_rect (start -5.25 -1.25) (end -4.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 21e42d35-42cc-423d-9ed0-fb3c8c3363b7))
|
||||
(fp_rect (start 1.25 2.75) (end 1.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2209dcb9-e729-44a2-88e2-5ccc13def596))
|
||||
(fp_rect (start -3.75 -3.75) (end -3.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2216986d-d734-4750-a2d1-f213d1a260c0))
|
||||
(fp_rect (start 5.75 3.25) (end 6.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 221e0c16-e39a-4b3c-b849-d875252ebb39))
|
||||
(fp_rect (start 7.75 -6.75) (end 8.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 222f5976-e602-43fd-86a1-b5ca30391bf5))
|
||||
(fp_rect (start -7.75 -0.75) (end -7.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 22698583-9f09-4b33-9648-2f7fbcf89177))
|
||||
(fp_rect (start -4.25 4.75) (end -3.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 22f05fb8-73e3-4c3d-810a-cae112e5205c))
|
||||
(fp_rect (start 4.75 1.25) (end 5.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 241a7c35-28a8-4d76-b832-9af5a7a71b5e))
|
||||
(fp_rect (start 1.75 -5.75) (end 2.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 24511be0-402a-46d0-8465-67c87fa85782))
|
||||
(fp_rect (start 2.75 -6.75) (end 3.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2506bd70-32ff-4a58-97df-b7eac111fd85))
|
||||
(fp_rect (start 4.25 0.25) (end 4.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 264145ae-9b08-47b1-a3c2-e34973db43ab))
|
||||
(fp_rect (start -5.25 -7.25) (end -4.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 26e8b733-4e53-4a85-9f76-9b12f09efe3d))
|
||||
(fp_rect (start -5.25 5.75) (end -4.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 27094ddc-5b0b-4d51-bc91-052e93536d53))
|
||||
(fp_rect (start 4.75 -6.75) (end 5.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 27c1d2be-4e2b-4453-8eea-93364c92ffba))
|
||||
(fp_rect (start 2.25 -6.75) (end 2.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 29096d1b-1332-4e78-9911-102589b9a4ba))
|
||||
(fp_rect (start 5.25 3.75) (end 5.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2982d0ab-a03e-4749-85db-7873f8c49070))
|
||||
(fp_rect (start -6.25 0.25) (end -5.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2a0566c8-99b0-4db5-b22c-6f31e0194ad3))
|
||||
(fp_rect (start 2.25 -0.25) (end 2.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2a0f53ba-91ca-4a6c-80dd-860e5294e227))
|
||||
(fp_rect (start -2.25 -2.75) (end -1.75 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2a4bdfcd-23da-466c-a641-2a6a7b59bba6))
|
||||
(fp_rect (start 0.75 -1.75) (end 1.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2b795e9d-89b8-461e-a9b3-d5c0b38b4d37))
|
||||
(fp_rect (start -2.75 -2.75) (end -2.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2bcfe39f-472b-47af-a282-496728ae0f7d))
|
||||
(fp_rect (start -5.25 7.75) (end -4.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2c6b9901-cd8a-48be-b8f2-dce72e9ad4bb))
|
||||
(fp_rect (start 7.25 -0.25) (end 7.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2dbad0ec-ad07-41f5-896e-85b7cf6d538b))
|
||||
(fp_rect (start 4.75 -7.25) (end 5.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2df0154a-af6d-4896-87dd-f15f5743011e))
|
||||
(fp_rect (start -6.25 -8.25) (end -5.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2e6ab65c-494b-4d79-88e6-b23e3a8a65d2))
|
||||
(fp_rect (start 1.75 -4.75) (end 2.25 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2ec80302-2da3-40ff-b474-290de218fa68))
|
||||
(fp_rect (start 1.75 -3.75) (end 2.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2ee14f4d-4e42-4dd1-8332-7e1304e5eade))
|
||||
(fp_rect (start -6.25 3.75) (end -5.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2f18add8-f7ed-4a04-9fb8-ae5e9c1d7014))
|
||||
(fp_rect (start 5.75 4.75) (end 6.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2f3205de-9db5-44c8-acda-d0153e426434))
|
||||
(fp_rect (start 1.75 -7.25) (end 2.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 2fc31cee-dc7b-4190-a92f-97e518556aaf))
|
||||
(fp_rect (start 4.75 3.75) (end 5.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 300340c0-c8c7-4413-ab6e-fb5740bf5664))
|
||||
(fp_rect (start 3.25 -3.75) (end 3.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3087bcc5-0750-4887-bb27-bea5b09094bc))
|
||||
(fp_rect (start 2.75 -5.75) (end 3.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 31478265-5f49-43ba-8cee-74ecb351bb43))
|
||||
(fp_rect (start -7.25 6.75) (end -6.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 31b7ed19-462a-49cf-9480-c278cc306810))
|
||||
(fp_rect (start 4.75 6.25) (end 5.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 31f84391-3c0b-46dd-90c2-f11faa8a520f))
|
||||
(fp_rect (start -1.25 -3.25) (end -0.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 328c24be-d163-4aec-a236-78393f2e54bb))
|
||||
(fp_rect (start -6.75 3.25) (end -6.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3434ab49-e488-46d3-9605-a2fdeab6208d))
|
||||
(fp_rect (start -3.25 7.75) (end -2.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 357177fe-feb4-49f6-823f-6c20d5fe75b6))
|
||||
(fp_rect (start -1.75 -2.75) (end -1.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 35b4a5da-15d3-4e3b-b0e6-4d21e026cb7d))
|
||||
(fp_rect (start 3.75 -1.75) (end 4.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 372f4e64-1312-44d1-b652-57a936ab6227))
|
||||
(fp_rect (start -3.75 2.25) (end -3.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38086dd8-87f9-4d72-9116-fdece54eb902))
|
||||
(fp_rect (start -5.75 2.25) (end -5.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38189b8f-087b-42be-bc88-6f9f93a2632e))
|
||||
(fp_rect (start -2.75 4.75) (end -2.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38a6aefd-899c-413f-bc11-50406d4eb787))
|
||||
(fp_rect (start 1.25 6.25) (end 1.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38ee5968-a95e-4bbd-b213-83a785b233c0))
|
||||
(fp_rect (start 1.75 7.75) (end 2.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38f45f67-7617-4550-8e8e-c3e8cc8d5110))
|
||||
(fp_rect (start 2.75 -4.25) (end 3.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 38fd943d-541c-4807-9958-156d2c659e87))
|
||||
(fp_rect (start -3.25 -5.75) (end -2.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 39100e97-9d8b-47d0-aae1-249700bfe8c0))
|
||||
(fp_rect (start -1.25 4.25) (end -0.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3a3a302b-4fb6-410d-99e0-716d977c2a71))
|
||||
(fp_rect (start 4.25 -0.75) (end 4.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3abaa1f3-9fab-41ea-9336-1de06b2a7846))
|
||||
(fp_rect (start -8.25 -0.75) (end -7.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3b97bb8d-ff99-479c-aa11-a860b3161084))
|
||||
(fp_rect (start 1.25 -7.75) (end 1.75 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3c2669db-7e9c-4a59-94f0-b77c25e717df))
|
||||
(fp_rect (start -3.75 -8.25) (end -3.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3d04ba63-a5eb-4851-a130-d1f1dfa7b424))
|
||||
(fp_rect (start -6.25 -6.25) (end -5.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3e3f18b7-11d7-43d1-9c04-fbb143c13833))
|
||||
(fp_rect (start 3.25 -1.25) (end 3.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3f445c2e-caed-4c90-bea4-fb1f0b34ec28))
|
||||
(fp_rect (start 0.75 -5.25) (end 1.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3f58726d-ed05-4af8-a181-7517e982ead1))
|
||||
(fp_rect (start 3.75 3.75) (end 4.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 3f716f92-9629-43b1-b099-b46a59fb1709))
|
||||
(fp_rect (start 6.25 -3.25) (end 6.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 40719ab3-e87a-457e-b382-93d56f1856bc))
|
||||
(fp_rect (start 4.25 -3.75) (end 4.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 40942c95-2d18-4545-9fba-f454cca55037))
|
||||
(fp_rect (start 6.25 5.75) (end 6.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 40f38f28-a996-4f9e-a44d-f1be5ef65ce0))
|
||||
(fp_rect (start 4.25 -1.75) (end 4.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 41ea8ad6-fd61-40b5-8122-7f374fb3550e))
|
||||
(fp_rect (start 4.25 2.25) (end 4.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 424c5b64-856c-4ab2-8511-cecdd878484a))
|
||||
(fp_rect (start 7.25 4.25) (end 7.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 427845b8-62f6-47ed-bee3-c85ebcb2a449))
|
||||
(fp_rect (start 3.75 -0.25) (end 4.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 431db9ab-e851-4eb3-9153-92a05f8a6fb7))
|
||||
(fp_rect (start 1.25 -6.25) (end 1.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 43ec6ca7-2ff1-4250-8ce8-efc0d1398e5e))
|
||||
(fp_rect (start 0.75 -1.25) (end 1.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 45edf1de-6d1c-46c9-93ba-1779adfe2812))
|
||||
(fp_rect (start 6.75 2.25) (end 7.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4608e1d9-c3d6-438b-8e69-3452d3419604))
|
||||
(fp_rect (start 7.75 -7.75) (end 8.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 464c294b-1d61-4e30-8c72-d5d85aa9a0bb))
|
||||
(fp_rect (start 5.25 -4.25) (end 5.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 46d5266a-c779-4c40-a6e1-db23ff1a44ab))
|
||||
(fp_rect (start -6.75 -6.25) (end -6.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4789bd56-3d89-4ccb-9086-58c3a30bae02))
|
||||
(fp_rect (start 1.25 3.25) (end 1.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4842b9d5-01f0-46b5-8f2a-7b5d685d414f))
|
||||
(fp_rect (start -6.25 4.75) (end -5.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 48e75e94-9fc3-437b-be79-834f94444c56))
|
||||
(fp_rect (start -0.25 0.75) (end 0.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4b5df782-6243-4126-b89a-e0065c2e2b91))
|
||||
(fp_rect (start -4.75 -1.75) (end -4.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4ba9be4e-408b-45bf-b78c-6a4eea47985f))
|
||||
(fp_rect (start -1.75 -8.25) (end -1.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4c166662-8648-4792-a54c-8750a7b387b8))
|
||||
(fp_rect (start -6.75 -7.25) (end -6.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4cde5d1f-bab2-409c-9c81-2b4b236116d9))
|
||||
(fp_rect (start -2.75 7.25) (end -2.25 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4cde73b6-d734-49d9-a9ba-d53cddf895ff))
|
||||
(fp_rect (start -0.75 -4.25) (end -0.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4d667e54-e760-4a8a-a090-680a0bc5aaa4))
|
||||
(fp_rect (start 7.25 -1.25) (end 7.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4e078c7b-e994-4321-8a3f-bcde7f824026))
|
||||
(fp_rect (start -4.25 -1.75) (end -3.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4eb8d5b6-f731-4d24-be06-aa78f02f92b9))
|
||||
(fp_rect (start 3.25 6.25) (end 3.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4ef00b21-5885-4e3b-92fc-546611890d19))
|
||||
(fp_rect (start -0.75 3.75) (end -0.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 4fa4fc1a-f707-40d8-b894-2950ff81d4fc))
|
||||
(fp_rect (start 4.25 -4.25) (end 4.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5022cbb0-63b1-4830-af5a-94ed41e1e25f))
|
||||
(fp_rect (start -8.25 0.75) (end -7.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 504c8cec-e651-46cd-b180-44b27efdb21e))
|
||||
(fp_rect (start 1.75 0.75) (end 2.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5075a09a-6136-4717-914f-d7123e330815))
|
||||
(fp_rect (start -0.75 -3.75) (end -0.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 51f86caa-cd88-41aa-b238-74d575381e8f))
|
||||
(fp_rect (start -0.75 4.75) (end -0.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 52311b86-4b5c-4fbf-8447-0d8a9e9ed54a))
|
||||
(fp_rect (start 0.75 -4.75) (end 1.25 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 53627789-9fc2-49d9-accd-4adfc3b92df0))
|
||||
(fp_rect (start 2.75 3.75) (end 3.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 537bfdd8-aab4-4565-9419-99180634cfd3))
|
||||
(fp_rect (start 3.25 -2.25) (end 3.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 53d33ae5-d86f-48dc-abe1-9a8fe68fc09e))
|
||||
(fp_rect (start 6.25 -5.25) (end 6.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 549337b4-c0ac-4335-81db-edbe940398e8))
|
||||
(fp_rect (start 2.75 7.75) (end 3.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5538e2dc-9708-4fac-b5f4-a376564252dd))
|
||||
(fp_rect (start -7.25 -5.25) (end -6.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 569c136e-7e55-46e1-9d8b-d448dfbf5b50))
|
||||
(fp_rect (start -8.25 7.75) (end -7.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 56fac4f0-7f0b-44cf-afec-1df5c9110dd0))
|
||||
(fp_rect (start -5.25 6.25) (end -4.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5717359b-7cb5-4db6-9055-ce231432fbd9))
|
||||
(fp_rect (start -4.75 0.75) (end -4.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 581e5534-1b62-4b22-b751-8332e456486a))
|
||||
(fp_rect (start 2.75 -5.25) (end 3.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 583e26d5-9014-483c-8514-fd10636a43bf))
|
||||
(fp_rect (start -1.25 -5.75) (end -0.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 585b4b72-6963-45ca-92b7-a36e06d857b9))
|
||||
(fp_rect (start -3.25 5.75) (end -2.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 59048b34-757a-4374-a746-e8990a9b7869))
|
||||
(fp_rect (start 4.25 -3.25) (end 4.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5a973761-667e-448d-a05b-9ef570956fda))
|
||||
(fp_rect (start -3.75 -1.25) (end -3.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5ad7d6d8-6d6a-4e83-bf6e-7d09c234ca87))
|
||||
(fp_rect (start 1.75 5.25) (end 2.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5b531049-744a-44e3-a9bb-08cb6b54f2b9))
|
||||
(fp_rect (start 0.25 -7.25) (end 0.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5ba4cb5f-3237-4306-a1f8-c480ba26f98d))
|
||||
(fp_rect (start 7.25 -2.75) (end 7.75 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5bcd8175-7f84-42e8-bc8f-9ffa177d364b))
|
||||
(fp_rect (start -7.25 -0.25) (end -6.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5bd85188-3595-4402-9673-d201ec139bdf))
|
||||
(fp_rect (start 0.25 3.25) (end 0.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5bf4fbc1-97e6-4c12-a6e9-f5d8b8bf4138))
|
||||
(fp_rect (start 3.25 3.75) (end 3.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5c30e00e-9339-4065-9934-e4cabfe4347a))
|
||||
(fp_rect (start -8.25 6.75) (end -7.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5c72944b-f75f-462c-8278-56341964777d))
|
||||
(fp_rect (start -4.75 -0.75) (end -4.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5c7324ad-f160-48eb-9c88-3e90478d5cae))
|
||||
(fp_rect (start -3.25 -3.25) (end -2.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5cc7488e-903d-4ef1-ab57-8d4896d988ee))
|
||||
(fp_rect (start 3.75 -4.25) (end 4.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5d4d4883-39ef-43b5-b67d-8da0b1aa0f40))
|
||||
(fp_rect (start 4.75 -1.25) (end 5.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5d50c417-5126-4eca-96b4-7e60eeaee187))
|
||||
(fp_rect (start -0.75 1.75) (end -0.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5dade18a-9710-46d8-a87e-d8d327bb80ec))
|
||||
(fp_rect (start 7.75 -8.25) (end 8.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5ddde671-5b2f-43a4-a7e3-33c15ea02831))
|
||||
(fp_rect (start -5.25 -6.75) (end -4.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5e3210a3-828a-406d-ac0a-1d8d9cc8b1aa))
|
||||
(fp_rect (start 4.75 -4.25) (end 5.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5ef87385-7fce-4b26-ab3a-de60e5351105))
|
||||
(fp_rect (start -3.25 -2.75) (end -2.75 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 5fab284c-a8f6-49ba-a3e9-510887220bdb))
|
||||
(fp_rect (start 0.75 -3.75) (end 1.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6103233b-b3cb-4106-9367-e6a0e4f877bc))
|
||||
(fp_rect (start -7.75 -5.25) (end -7.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 61ac6e3c-761a-4f9b-aa3a-d27d072f07da))
|
||||
(fp_rect (start -1.75 4.25) (end -1.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6229c8b5-ee03-4943-929b-9995766cd9e5))
|
||||
(fp_rect (start 5.75 -4.25) (end 6.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 624b869b-0154-42d4-bbfd-413cb6bffe4c))
|
||||
(fp_rect (start -2.25 -0.25) (end -1.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6299deea-a17f-411b-8628-d16c3430f5e5))
|
||||
(fp_rect (start -3.25 -7.75) (end -2.75 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 62cd706d-2f0a-49b3-840c-935f16270208))
|
||||
(fp_rect (start -2.75 -7.25) (end -2.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6309e3a3-d166-431d-9fc7-230207c7c8a1))
|
||||
(fp_rect (start 3.75 4.75) (end 4.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 63c65c51-8914-4761-9fe8-e581e43280da))
|
||||
(fp_rect (start 7.75 -5.25) (end 8.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 641347cc-d6d1-45ce-be47-5b59389ecb51))
|
||||
(fp_rect (start 0.25 -6.75) (end 0.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 645e0993-11bb-4a94-8312-efc204133ffd))
|
||||
(fp_rect (start -8.25 -3.25) (end -7.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 64e65a31-c790-4392-891d-14ee415f0f5f))
|
||||
(fp_rect (start -4.25 -6.75) (end -3.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 658069ae-f13a-42c3-a8c0-127864644339))
|
||||
(fp_rect (start 1.75 1.75) (end 2.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6753de14-e035-4ad1-a6e8-8e5499f8633c))
|
||||
(fp_rect (start -3.75 4.25) (end -3.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6761c3a8-898f-4e69-ba85-2748645964b8))
|
||||
(fp_rect (start 0.25 -6.25) (end 0.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6792ad4a-7848-470d-940e-ee3a73ff45a8))
|
||||
(fp_rect (start 4.25 5.75) (end 4.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 67df5d10-8bab-4052-88a7-7073eaeb725d))
|
||||
(fp_rect (start -5.75 7.75) (end -5.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 69d8761e-5a33-44ac-b908-7b0307d00839))
|
||||
(fp_rect (start -0.75 6.75) (end -0.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6a69b367-7f3f-4810-8832-fcf4062331d4))
|
||||
(fp_rect (start -6.25 -3.75) (end -5.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6abc7a40-1af8-465d-8938-15929b818f51))
|
||||
(fp_rect (start -2.25 0.75) (end -1.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6ac5f1da-4b9c-49dc-a47a-19efecb207f3))
|
||||
(fp_rect (start -7.25 6.25) (end -6.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6bd16a1f-2708-4567-9040-3c72a041236d))
|
||||
(fp_rect (start 3.75 0.25) (end 4.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6bf1812d-ad50-4d26-bc44-e22ca96f8951))
|
||||
(fp_rect (start 2.25 1.25) (end 2.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6c069b10-5794-46f6-b7fd-417d447edc39))
|
||||
(fp_rect (start -1.75 6.25) (end -1.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6c6377d6-1b62-41b9-8820-5d644c224adc))
|
||||
(fp_rect (start 3.25 -0.75) (end 3.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6cbd4c35-0a08-40d6-ace4-e55606c2b542))
|
||||
(fp_rect (start 2.75 -2.25) (end 3.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6cc46eed-f134-4424-9a79-841d5b7d638d))
|
||||
(fp_rect (start -0.25 -3.25) (end 0.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6d166bb5-9ae1-41cf-875c-a789850910af))
|
||||
(fp_rect (start -2.75 3.25) (end -2.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6d4489f4-ac83-460e-92dc-cbf640d136a6))
|
||||
(fp_rect (start 2.75 -0.25) (end 3.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6da13831-9b78-42e6-869e-5a72f02f8190))
|
||||
(fp_rect (start 7.75 -6.25) (end 8.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6e58d63f-1786-463e-b899-5c7665f9efe3))
|
||||
(fp_rect (start -8.25 -8.25) (end -7.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6f333460-8c3c-4098-a256-9680723eee5e))
|
||||
(fp_rect (start -7.25 -0.75) (end -6.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6f5a240a-8a2b-4b60-891e-24e7f9be3a1c))
|
||||
(fp_rect (start -4.75 -2.75) (end -4.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6f9787f0-4837-497a-b9e4-bd8d3fd29972))
|
||||
(fp_rect (start 0.75 7.75) (end 1.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 6ff42d61-416e-4386-b13d-97df4e7ed845))
|
||||
(fp_rect (start -5.25 1.75) (end -4.75 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 70045c0a-b1ae-4767-9206-84a5f06f9113))
|
||||
(fp_rect (start 6.75 6.25) (end 7.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 70dca59c-6bad-4073-a56b-029221dcfbe2))
|
||||
(fp_rect (start 0.75 0.25) (end 1.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 71283231-bfd7-451e-bc03-9cf8c3733b8a))
|
||||
(fp_rect (start 4.25 3.75) (end 4.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 716c0626-4796-466f-9630-b47fc8ce9d0b))
|
||||
(fp_rect (start 2.25 -3.75) (end 2.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 72b7aef7-2d76-4cf7-9e15-47f82a2b2892))
|
||||
(fp_rect (start -0.25 -3.75) (end 0.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 73275965-8070-4cca-939d-dc112b2f0341))
|
||||
(fp_rect (start -0.75 -3.25) (end -0.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 74370960-5199-4098-a545-d2c8c7ea1d7b))
|
||||
(fp_rect (start -3.75 0.75) (end -3.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 75025b7f-3cde-49cf-a730-309990611ecc))
|
||||
(fp_rect (start 3.75 -4.75) (end 4.25 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 750391d2-c18b-44f1-98a1-e9871ef52ca5))
|
||||
(fp_rect (start -4.75 -3.75) (end -4.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7504e80a-8b24-4e8d-8ce1-9f5dd6761105))
|
||||
(fp_rect (start -7.75 0.25) (end -7.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 758efe82-eeb5-435f-ab0d-5dad146a6cc3))
|
||||
(fp_rect (start -7.25 0.75) (end -6.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 75b90ed2-8ec1-41ad-ac00-669db66fccda))
|
||||
(fp_rect (start -2.25 1.25) (end -1.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 75dd610c-95d7-41b8-a062-4ac8a5af3458))
|
||||
(fp_rect (start -0.75 1.25) (end -0.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7613a08e-587a-4048-806b-46562fe43449))
|
||||
(fp_rect (start -7.75 4.75) (end -7.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 76db87d3-9667-4c6b-a276-35bfe3994f9d))
|
||||
(fp_rect (start -0.25 -8.25) (end 0.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 77e14af0-40f8-4679-8a30-27fdbab3b747))
|
||||
(fp_rect (start -8.25 1.75) (end -7.75 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 77f76170-3e48-47fa-86eb-15fcbca9d95c))
|
||||
(fp_rect (start 3.75 1.25) (end 4.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 781bc047-a326-491a-ac49-2e1ff2477d84))
|
||||
(fp_rect (start 7.25 2.75) (end 7.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 781df42c-c737-47b0-8778-582fea5a4e33))
|
||||
(fp_rect (start 0.75 -8.25) (end 1.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 78a43262-0f16-48b1-bd0c-439ae2075766))
|
||||
(fp_rect (start -6.75 1.25) (end -6.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 79034721-68d8-4eed-9e4d-d06f7eb70910))
|
||||
(fp_rect (start -8.25 1.25) (end -7.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 792c41e0-149d-4994-996c-58dd3b9f3d89))
|
||||
(fp_rect (start -4.75 -1.25) (end -4.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 793c4d42-4b31-4058-bc60-1ab93c64e026))
|
||||
(fp_rect (start 7.75 -4.25) (end 8.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 79e8cdfb-c9f4-499c-be66-305c51b53f84))
|
||||
(fp_rect (start -4.75 -2.25) (end -4.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7a0cf2c3-d604-455b-ad89-f2866c0ff9ed))
|
||||
(fp_rect (start 4.25 2.75) (end 4.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7abd1b9c-3baf-4294-9e81-877175d8100f))
|
||||
(fp_rect (start 6.25 -1.25) (end 6.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7b2ac6aa-024c-4c1f-b57a-74263014a59f))
|
||||
(fp_rect (start 5.75 2.75) (end 6.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7b3d57fb-2bb5-4d6d-8e85-420fbee4e91a))
|
||||
(fp_rect (start -7.25 -6.25) (end -6.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7c49f7eb-41fe-4fe1-8f95-acacb61095ec))
|
||||
(fp_rect (start -0.25 -5.25) (end 0.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7c92f8d1-8c16-4688-b8ab-31ae98339ab5))
|
||||
(fp_rect (start -3.25 -0.75) (end -2.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7d196a9c-bb02-4ae7-bf2d-5f69a1608a6b))
|
||||
(fp_rect (start -1.25 -8.25) (end -0.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7d426812-33ea-4551-9451-aa681f6f0198))
|
||||
(fp_rect (start -5.75 -1.75) (end -5.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7d63e89a-e055-4b17-a8dd-592c154ce2c3))
|
||||
(fp_rect (start 4.75 6.75) (end 5.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7de61f70-cdf1-4162-ae46-7ff0878c51ea))
|
||||
(fp_rect (start -6.25 -6.75) (end -5.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7e74730a-e9f3-4b45-9615-11cca9c3dd83))
|
||||
(fp_rect (start -4.25 2.25) (end -3.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7eb9405d-bcc0-4a5c-bcf7-aa1ab27ffb35))
|
||||
(fp_rect (start -7.75 -8.25) (end -7.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7f58b2f5-e8dd-4bb5-a288-0e2cb241eeac))
|
||||
(fp_rect (start -6.75 1.75) (end -6.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7f6463a0-0d32-4846-81ac-d87a8cd2ef0b))
|
||||
(fp_rect (start 4.75 -5.25) (end 5.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7f950b85-41b6-4b99-9551-203930d143dc))
|
||||
(fp_rect (start 5.75 -2.25) (end 6.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 7f96049e-cfc6-45c1-85ff-8f9ef67d166b))
|
||||
(fp_rect (start -0.25 1.25) (end 0.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 804adc9b-5695-45ac-a019-61e905dbc46a))
|
||||
(fp_rect (start 3.75 -2.75) (end 4.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 806efc17-27e5-4fdc-96e8-3b79466cec2e))
|
||||
(fp_rect (start -2.25 3.25) (end -1.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 808115cf-2c3d-44bb-bf89-156a70f339c6))
|
||||
(fp_rect (start -1.25 -7.25) (end -0.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 80f72bff-e771-4522-8ce6-146cd9112b50))
|
||||
(fp_rect (start 4.25 -2.25) (end 4.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 812e185d-bf33-4406-ae6e-d3e5844527ed))
|
||||
(fp_rect (start 3.25 -8.25) (end 3.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 81aaa8c8-b715-437f-9424-3eff60e883d2))
|
||||
(fp_rect (start -6.25 -0.25) (end -5.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 82a70869-da90-4001-a856-3e2307d74a69))
|
||||
(fp_rect (start -4.25 -5.25) (end -3.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 82ce5fc9-d8a6-44a7-94b9-8a433125689b))
|
||||
(fp_rect (start -5.75 -2.75) (end -5.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8301ac5b-acc3-4ef4-b3e9-87fde72337f8))
|
||||
(fp_rect (start 6.25 4.75) (end 6.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 85fad492-5d83-4d98-bf01-67c80c8f6839))
|
||||
(fp_rect (start 4.75 5.75) (end 5.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 860e52e2-1f53-4b8c-bf23-3b54c7f80e5a))
|
||||
(fp_rect (start -5.25 0.75) (end -4.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 863d57d8-9a28-4483-861c-688d958c6827))
|
||||
(fp_rect (start -3.25 4.75) (end -2.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 863f29a1-bd62-4062-84e4-0778d1f3ab2b))
|
||||
(fp_rect (start 3.75 -1.25) (end 4.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8727edf8-d2cb-4edb-8036-5908d696c09b))
|
||||
(fp_rect (start 0.25 6.25) (end 0.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 88b4c4fa-3298-4b39-ab60-920f9599e2f2))
|
||||
(fp_rect (start -5.75 -1.25) (end -5.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 89307f4f-c7d0-4f80-86ac-222e338133a5))
|
||||
(fp_rect (start -3.25 -5.25) (end -2.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 898a9f03-f050-4c3d-bd1d-fd9a417a17f7))
|
||||
(fp_rect (start -4.25 -5.75) (end -3.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 89d864f5-21a8-4647-897b-a98aa9112171))
|
||||
(fp_rect (start 5.25 6.25) (end 5.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8a50fb45-e7df-4415-b255-0d63fe6dc608))
|
||||
(fp_rect (start 0.25 -0.75) (end 0.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8a6698c1-85aa-4c42-a3c2-4becbba76a57))
|
||||
(fp_rect (start -2.75 -8.25) (end -2.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8bab38b8-5978-4b21-8027-a98b65678911))
|
||||
(fp_rect (start 1.25 -7.25) (end 1.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8c1c3c38-c240-4cf1-a59b-0b274117a1b0))
|
||||
(fp_rect (start 5.25 0.75) (end 5.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8c2dafdb-f11d-4763-abba-65e93d398cca))
|
||||
(fp_rect (start -7.75 1.25) (end -7.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8c7506a4-774d-4d02-a4c6-4a0021f11fe2))
|
||||
(fp_rect (start 0.25 7.75) (end 0.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8c9a631e-24a2-4bcd-89fd-f68404375864))
|
||||
(fp_rect (start -8.25 4.75) (end -7.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8cbaa61a-6a27-4b4b-a591-8622cf4c3317))
|
||||
(fp_rect (start 4.25 3.25) (end 4.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8d342013-1edc-4ed2-936c-f9e00fa42914))
|
||||
(fp_rect (start -1.25 7.25) (end -0.75 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8da3d032-35e5-411b-a898-d0bbc601b014))
|
||||
(fp_rect (start -7.75 -2.75) (end -7.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8dc33c61-8d71-44b3-bcb5-7f4f8b5c7713))
|
||||
(fp_rect (start -4.25 -8.25) (end -3.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8df53e06-873c-48d5-acb2-1da90266a540))
|
||||
(fp_rect (start 0.75 4.25) (end 1.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8e56aaf9-f4d6-419f-8673-f1fb4702a61f))
|
||||
(fp_rect (start -8.25 2.25) (end -7.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8e7bc127-e634-48c1-a737-344872642300))
|
||||
(fp_rect (start -1.75 1.75) (end -1.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8ef5fc10-7bb8-4205-80c0-d9b28da284fd))
|
||||
(fp_rect (start 4.75 -3.25) (end 5.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8f962ec2-549f-4e58-bd4b-7011abf36ae3))
|
||||
(fp_rect (start -2.25 -6.75) (end -1.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8fe10793-e295-41fc-a4e9-f05f3338b2c6))
|
||||
(fp_rect (start 1.75 -2.75) (end 2.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 8fed0211-77de-4ec1-9b9a-87c1a5a707ae))
|
||||
(fp_rect (start -8.25 5.25) (end -7.75 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9072ca32-4e7c-47c5-8d48-0f1205ac56ff))
|
||||
(fp_rect (start -2.75 -1.25) (end -2.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 90ebf125-7efd-4db7-b2dd-78754bd3d4c4))
|
||||
(fp_rect (start 0.25 3.75) (end 0.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 91586436-e4dc-4481-a9a0-dc784ad73e93))
|
||||
(fp_rect (start 1.25 2.25) (end 1.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 91904bf6-316a-4901-accf-2b5835ddaf77))
|
||||
(fp_rect (start -1.25 -0.25) (end -0.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 92177e60-575c-4093-bb56-0bc1b5070e2f))
|
||||
(fp_rect (start -0.75 5.75) (end -0.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 92ef4f66-a67c-4f43-9a6d-54e1590fe91e))
|
||||
(fp_rect (start -4.25 -4.75) (end -3.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 94704d8d-de6f-4668-aa29-14533b0459b3))
|
||||
(fp_rect (start -3.25 -4.75) (end -2.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 94c1bdb6-317a-47d2-9f0f-b2c89b2fc8d1))
|
||||
(fp_rect (start 1.25 -0.25) (end 1.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 94f8b0ab-db52-47f1-808a-0e3c310de766))
|
||||
(fp_rect (start -0.25 -6.25) (end 0.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 94fed5ed-d811-42f5-850d-157fa8a31c30))
|
||||
(fp_rect (start -6.25 -2.75) (end -5.75 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 95519427-86d7-4379-81f6-9db8706ef208))
|
||||
(fp_rect (start 2.25 2.25) (end 2.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 95aa7814-1ef1-444f-8eca-dcd27c90c673))
|
||||
(fp_rect (start 7.25 6.25) (end 7.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 95d5091c-d096-4a02-8587-022782004379))
|
||||
(fp_rect (start 0.25 7.25) (end 0.75 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 95d5f5e0-b46a-47cc-92a0-0800b72fc708))
|
||||
(fp_rect (start -6.25 5.75) (end -5.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 96b90eba-cba0-47a0-8866-70a1ece5ec89))
|
||||
(fp_rect (start 2.25 -4.75) (end 2.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 97406407-cc91-431b-96f4-80f619b7d991))
|
||||
(fp_rect (start 0.75 1.75) (end 1.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 977bb938-ad3c-453a-abac-a51de1458656))
|
||||
(fp_rect (start -3.75 -6.75) (end -3.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 978a655d-af9a-4c18-b523-e94c2a5761f6))
|
||||
(fp_rect (start 0.25 -4.25) (end 0.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9795c370-8a31-415a-aff3-b09762b0762b))
|
||||
(fp_rect (start -2.25 -4.25) (end -1.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 97ad21c3-7352-4226-bf79-f2b43daa27ce))
|
||||
(fp_rect (start 3.25 1.25) (end 3.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 97cab4ec-cc95-4089-956d-87955109eb27))
|
||||
(fp_rect (start 1.75 3.75) (end 2.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 981651a7-c01e-46e7-ab38-335502dfb891))
|
||||
(fp_rect (start -5.25 3.75) (end -4.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9845ca06-30b9-4e4c-a9f1-4ee30b1b2fc4))
|
||||
(fp_rect (start -1.75 7.25) (end -1.25 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9859e2c7-5641-4a6b-b1e4-337558826c74))
|
||||
(fp_rect (start -2.75 2.75) (end -2.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9906dc8a-84f1-4c20-9232-367e9d08bebc))
|
||||
(fp_rect (start 2.75 -0.75) (end 3.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 99493975-ea43-4952-b184-25b1d6e356a8))
|
||||
(fp_rect (start 0.75 2.75) (end 1.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9960b11c-67d5-4708-a051-f689e01e581f))
|
||||
(fp_rect (start -7.75 2.25) (end -7.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 997aa5df-6915-4ea2-97e6-cc7189a5db58))
|
||||
(fp_rect (start -1.25 0.75) (end -0.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9a9fbbf1-26b1-4817-a2f6-ea67c6982c00))
|
||||
(fp_rect (start 2.25 7.75) (end 2.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9b760fb4-bff4-4e16-a265-8aba12ef407e))
|
||||
(fp_rect (start 2.75 5.25) (end 3.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9db22f4e-76af-4289-ad92-18f6a1f1b2d3))
|
||||
(fp_rect (start 1.25 -6.75) (end 1.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9dcf91be-6b06-4988-a5db-ff641f2f0bd3))
|
||||
(fp_rect (start 0.25 4.25) (end 0.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9e0db68b-3504-42cf-ad94-b41264ffd276))
|
||||
(fp_rect (start -6.25 -7.25) (end -5.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp 9ed0e226-c0be-4b62-885c-0aa2ef066257))
|
||||
(fp_rect (start 3.25 0.75) (end 3.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a01941a5-0765-4a8b-aa1e-0006048c76cd))
|
||||
(fp_rect (start -0.75 0.25) (end -0.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a06ddd9a-df75-4c91-9b0e-a67d9e505106))
|
||||
(fp_rect (start -3.75 5.25) (end -3.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a170f2e0-bf50-45d2-b269-a81a048c3c39))
|
||||
(fp_rect (start 7.25 2.25) (end 7.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a38d42dd-41cc-4aee-89e0-32211aa48748))
|
||||
(fp_rect (start -2.25 2.75) (end -1.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a3d0823f-ee44-496b-b255-c4398b1077a6))
|
||||
(fp_rect (start -7.25 4.75) (end -6.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a4295caa-be53-459c-8dc9-e0121dec7f4e))
|
||||
(fp_rect (start 5.75 5.25) (end 6.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a438492d-95c7-44d7-8e57-770179b34509))
|
||||
(fp_rect (start -4.25 -3.75) (end -3.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a43ecf55-b0a6-4f4e-b0ab-e309e3ef03db))
|
||||
(fp_rect (start -1.25 4.75) (end -0.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a45b374d-2cc1-4fdf-99ee-a7eb0ea5201a))
|
||||
(fp_rect (start 0.25 1.25) (end 0.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a53214a4-8455-404d-bf78-4bfa0f9a2373))
|
||||
(fp_rect (start 1.75 -7.75) (end 2.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a5e4975f-0105-46be-9259-8828614b67f9))
|
||||
(fp_rect (start -6.25 7.75) (end -5.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a6eed99b-9bd9-4fbd-9727-f3041df468a8))
|
||||
(fp_rect (start 6.75 6.75) (end 7.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a6fdd408-1371-4d68-83af-3beede888ffe))
|
||||
(fp_rect (start 3.25 -4.25) (end 3.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a74b628a-534d-4cad-b02a-f81f8354013e))
|
||||
(fp_rect (start 2.75 5.75) (end 3.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp a8ec1b19-0d26-426d-85e4-d0b100d663ec))
|
||||
(fp_rect (start 5.25 -5.25) (end 5.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp a97a012c-6d7b-486a-a0fd-33de3ecf2767))
|
||||
(fp_rect (start -1.75 2.75) (end -1.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp aa3c9971-edda-47e1-8196-10acd23f6cfc))
|
||||
(fp_rect (start 1.25 7.75) (end 1.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp aa538663-df9c-4511-9c0d-624110e4617b))
|
||||
(fp_rect (start 7.25 -8.25) (end 7.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp aa6db01e-d267-4afa-a9ea-98293af89fbd))
|
||||
(fp_rect (start -8.25 -7.25) (end -7.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ac312b44-343d-4d30-839a-5bcbacae5b73))
|
||||
(fp_rect (start 7.75 5.25) (end 8.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ad954e65-aaca-4b80-80c3-ef0e215d2780))
|
||||
(fp_rect (start 7.25 -3.25) (end 7.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ae63e7e2-15d4-4d29-b1df-c16ee9635820))
|
||||
(fp_rect (start -5.75 1.75) (end -5.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp aec95684-8999-4838-a7c3-aa4fd568d99a))
|
||||
(fp_rect (start 1.75 -1.25) (end 2.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp afad10f6-daec-46ea-88b3-a60206ee8f56))
|
||||
(fp_rect (start 5.25 3.25) (end 5.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b06b0c7e-6c88-4778-bbc6-4e2aea6cc37b))
|
||||
(fp_rect (start 4.75 4.75) (end 5.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b06b42ba-6ad6-4197-9312-2a8d9e456896))
|
||||
(fp_rect (start -3.25 0.75) (end -2.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b07b25d4-82b6-4544-bbdb-84cc03df99fd))
|
||||
(fp_rect (start -0.75 4.25) (end -0.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b0b20308-d86a-422c-b970-404adf573ff3))
|
||||
(fp_rect (start 6.75 -8.25) (end 7.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b0da6e55-e61d-48af-8329-4265b4bb9f07))
|
||||
(fp_rect (start 5.75 6.25) (end 6.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b0e2a9c2-3f67-4f98-b96a-64f778fe2ade))
|
||||
(fp_rect (start -6.75 -0.75) (end -6.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b118337e-1ece-446c-8051-b5123e324f97))
|
||||
(fp_rect (start -8.25 -5.25) (end -7.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b1827de5-43ef-48e4-a235-64a1cec9c511))
|
||||
(fp_rect (start 4.75 -0.25) (end 5.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b1a488a5-4666-4b61-8c74-35ca5afcff3c))
|
||||
(fp_rect (start 3.75 3.25) (end 4.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b1ae15e3-ff51-4091-b899-a9d01d49b5c7))
|
||||
(fp_rect (start 0.75 1.25) (end 1.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b1bdc5e5-7f42-4e4b-9edf-fa883f2e6c1b))
|
||||
(fp_rect (start 2.25 -4.25) (end 2.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b1e93d61-5b19-4869-aa82-da8ded0f1028))
|
||||
(fp_rect (start -1.75 -5.75) (end -1.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b2c14216-79e6-42fc-a7fd-7808a9741898))
|
||||
(fp_rect (start 4.75 3.25) (end 5.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b37dbc27-1232-4e87-8ed0-fb2f8ab49d7f))
|
||||
(fp_rect (start 6.75 0.25) (end 7.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b403b4b6-a597-43a4-8220-f1ae7532bff7))
|
||||
(fp_rect (start -2.25 -1.75) (end -1.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b4454f12-81b7-46df-9674-f9641eb0ce05))
|
||||
(fp_rect (start -2.75 -6.75) (end -2.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b47629bf-3660-48d1-bf84-96a9c3ac707f))
|
||||
(fp_rect (start -4.75 1.75) (end -4.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b4a8ce75-e94e-49ea-b091-a246d37c0d1b))
|
||||
(fp_rect (start 1.75 -4.25) (end 2.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b4defb14-c623-4bd7-9bd6-fe161e8648c5))
|
||||
(fp_rect (start -6.25 -2.25) (end -5.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b593590d-f257-4635-aaa6-7aba911ff060))
|
||||
(fp_rect (start -1.25 5.75) (end -0.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b5e5e1ad-9b25-44c9-bace-70faad62ffc0))
|
||||
(fp_rect (start -6.75 -6.75) (end -6.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b5ea7cfc-aca7-44bb-8970-e30ec0e218cc))
|
||||
(fp_rect (start 2.25 0.75) (end 2.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b6e7c1fa-2098-42a3-96ac-81a49241c233))
|
||||
(fp_rect (start 0.25 -0.25) (end 0.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b7fa8853-e2ce-433b-8483-dddb91b885d1))
|
||||
(fp_rect (start -2.75 5.25) (end -2.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b8383087-442e-401e-ae46-3c56ee805f14))
|
||||
(fp_rect (start -2.75 6.75) (end -2.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp b8387439-5e1d-4d28-a6cb-0815fc319fb0))
|
||||
(fp_rect (start -3.75 1.25) (end -3.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp b8bdf770-e10b-4f82-bd42-1bc212ee3c93))
|
||||
(fp_rect (start -6.75 5.75) (end -6.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bae903dd-3666-47c9-99a1-6b1ef68ff86f))
|
||||
(fp_rect (start 3.25 -3.25) (end 3.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bb405eaf-1ce9-4177-aff3-b9879fd189f0))
|
||||
(fp_rect (start 7.75 1.75) (end 8.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bc3d777f-8399-440c-8e10-00694ab26210))
|
||||
(fp_rect (start -0.25 5.75) (end 0.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bc6167c1-15d2-4a56-8711-4a601d3e38e5))
|
||||
(fp_rect (start -7.25 -6.75) (end -6.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bcbcad00-018d-4666-81b3-e21ddf36f661))
|
||||
(fp_rect (start -4.25 -3.25) (end -3.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bd0e3490-c4f4-4abf-9b6e-57721abcdf6f))
|
||||
(fp_rect (start -5.75 4.75) (end -5.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bd1aa673-2952-4a97-a9d9-4b5b108a5b0f))
|
||||
(fp_rect (start -3.25 -6.25) (end -2.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bd7bf159-fd0e-44d7-bb42-62093fedbbf6))
|
||||
(fp_rect (start -0.75 -0.75) (end -0.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bda4e16b-9ded-4b60-a2f3-a01e2b06f5cb))
|
||||
(fp_rect (start -5.75 0.75) (end -5.25 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bdab0f8b-5faa-4138-8a2e-4250f8e5ccf5))
|
||||
(fp_rect (start -5.75 -2.25) (end -5.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bdeff5e6-9769-4ccb-96f4-3f500ad06b13))
|
||||
(fp_rect (start 0.75 6.75) (end 1.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp beae6362-13a5-474b-b517-60766133cc6d))
|
||||
(fp_rect (start 2.75 -2.75) (end 3.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bebaa194-8754-4cc1-86e0-4175b30cf2a4))
|
||||
(fp_rect (start -0.25 0.25) (end 0.25 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bf3850de-1b85-4bfc-a17f-94fc80a7e719))
|
||||
(fp_rect (start -0.75 -1.25) (end -0.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bf522abc-e59e-4969-a70a-2b777a902260))
|
||||
(fp_rect (start 7.25 3.25) (end 7.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp bf5e9b31-07e4-4391-85f6-6bb9676d6e79))
|
||||
(fp_rect (start 7.25 0.75) (end 7.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bf8fa3f1-7425-449a-96c7-ec965361dd2c))
|
||||
(fp_rect (start -8.25 -5.75) (end -7.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp bff7117d-da01-40a3-adaf-9c988e479c57))
|
||||
(fp_rect (start 1.75 1.25) (end 2.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c00be96d-d17c-4e2a-83f0-2c238ebbb4e5))
|
||||
(fp_rect (start -1.75 4.75) (end -1.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c03a4e65-270d-4837-96f6-1030154faece))
|
||||
(fp_rect (start -5.25 4.75) (end -4.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c09ddcc9-a56e-4a7a-9ab0-7f3331386d5c))
|
||||
(fp_rect (start 5.25 6.75) (end 5.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c1180f84-6dec-48c2-bdb9-daef366883bb))
|
||||
(fp_rect (start -6.75 2.25) (end -6.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c16fde56-7b53-4495-a456-b6731065921b))
|
||||
(fp_rect (start 1.75 3.25) (end 2.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c1b8991e-0984-44c1-9957-1aa54e8a25c1))
|
||||
(fp_rect (start 0.75 -7.75) (end 1.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c1dd8ea5-4f46-49a5-9369-3fa5dd0a2cd3))
|
||||
(fp_rect (start 5.75 6.75) (end 6.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c1ee23a2-042e-4ee9-8ad8-c8f3cc0b664b))
|
||||
(fp_rect (start -7.75 3.75) (end -7.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c2efa809-e985-421e-88a8-e3d10b4e4606))
|
||||
(fp_rect (start 2.25 6.25) (end 2.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c3b21ec1-00e1-4857-8553-049ebbdc1712))
|
||||
(fp_rect (start -7.25 -7.25) (end -6.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c3bedfe7-e1b3-4c31-9e2c-9d0b14bc7330))
|
||||
(fp_rect (start 1.75 -5.25) (end 2.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c4104581-087e-4915-9836-e01e0eb9ac46))
|
||||
(fp_rect (start -4.25 -4.25) (end -3.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c426504e-b324-495d-920d-3d1aea5e74a0))
|
||||
(fp_rect (start -6.25 0.75) (end -5.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c5373df0-cad6-48e1-92ab-0d87667560bb))
|
||||
(fp_rect (start -0.25 -2.25) (end 0.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c588cd62-c80a-419a-9396-3238a8efa8e9))
|
||||
(fp_rect (start -0.75 -7.25) (end -0.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c5fa19c4-9da8-43b1-a92c-3364992e2bea))
|
||||
(fp_rect (start -8.25 -6.75) (end -7.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c6648b65-3bd8-4b9f-a814-855a66fe4eab))
|
||||
(fp_rect (start -4.25 -1.25) (end -3.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c72b1b8a-bbd7-4893-afd4-acc91cc3edc8))
|
||||
(fp_rect (start -3.25 5.25) (end -2.75 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c7423721-c7a2-4005-ab25-695bf994131c))
|
||||
(fp_rect (start -0.25 -7.75) (end 0.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c78d9dcb-eed0-44ba-b15e-e6524f2d94e2))
|
||||
(fp_rect (start 3.75 4.25) (end 4.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c7d6e1ca-839e-454d-98be-21e1cb005e8b))
|
||||
(fp_rect (start 7.25 0.25) (end 7.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c80fbbb8-09d2-4404-af5e-7d1c6ec11f8b))
|
||||
(fp_rect (start 2.25 -7.25) (end 2.75 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c816cf76-aaf9-4833-b199-c6e74faeb047))
|
||||
(fp_rect (start -7.25 3.75) (end -6.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c81b6a49-70d9-4b5a-a11d-eb6ec667f943))
|
||||
(fp_rect (start 3.75 6.25) (end 4.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c8de6e91-7231-4bcc-9362-60f50c32a237))
|
||||
(fp_rect (start -7.25 -8.25) (end -6.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c8e675f7-f579-480e-beec-f2c6e9c976c6))
|
||||
(fp_rect (start 5.25 -1.75) (end 5.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c8f5bd6a-c673-4da5-8342-9e01920a2eb7))
|
||||
(fp_rect (start -5.25 -7.75) (end -4.75 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c9b87070-0548-4b7f-abdf-5933b239bd45))
|
||||
(fp_rect (start 7.25 4.75) (end 7.75 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp c9c18807-ffd9-4907-accc-83ae6b56f306))
|
||||
(fp_rect (start 2.25 3.25) (end 2.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp c9d612a6-abc2-47e0-9933-80e9ce5bf2a8))
|
||||
(fp_rect (start -3.25 -6.75) (end -2.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ca387643-3400-46bf-9120-fa571d8af417))
|
||||
(fp_rect (start 5.25 -1.25) (end 5.75 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp caa5c6d6-cf03-43ee-9517-0a8a9bc3b898))
|
||||
(fp_rect (start 3.75 1.75) (end 4.25 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cb2cf3e1-c7ea-45c0-b377-9ff4be4ce3df))
|
||||
(fp_rect (start -8.25 -0.25) (end -7.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cb713b57-c538-485f-8074-2b176117b361))
|
||||
(fp_rect (start 1.75 -1.75) (end 2.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cb776452-7942-4023-817b-8e1e92c801da))
|
||||
(fp_rect (start 1.25 5.75) (end 1.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cb841d40-61b2-4bbb-9aa9-d3c0ad74bdfb))
|
||||
(fp_rect (start -0.25 2.75) (end 0.25 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cb90b628-c637-49db-89ad-21c2b74de62e))
|
||||
(fp_rect (start 0.75 7.25) (end 1.25 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp cbc7fba1-c5b5-4752-8c63-e2cc8523598e))
|
||||
(fp_rect (start -0.75 -8.25) (end -0.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp cc520eb5-4e67-4b46-b29c-d16bf41fd164))
|
||||
(fp_rect (start 0.25 -1.75) (end 0.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cd74cee6-0d0d-4d6d-a903-beeb46943746))
|
||||
(fp_rect (start -6.25 -1.75) (end -5.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ce16ed26-baa6-449b-a952-4b76d2f19bbd))
|
||||
(fp_rect (start -3.75 -7.25) (end -3.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ce1774b6-74a4-4807-8a8d-f3f7e9cffbe1))
|
||||
(fp_rect (start 6.25 -3.75) (end 6.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ce610cd8-5136-410d-92ff-096ae2c9a3a8))
|
||||
(fp_rect (start 2.25 3.75) (end 2.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cea61a52-674d-4849-a781-a234d970aa61))
|
||||
(fp_rect (start 1.25 1.25) (end 1.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp cfc7ebfc-264b-42b9-a168-cd11006351d0))
|
||||
(fp_rect (start -5.75 -3.75) (end -5.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp cfe7f770-07c2-438c-ba3a-c3fad674f625))
|
||||
(fp_rect (start -1.25 -7.75) (end -0.75 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d05ae25c-3fbe-42dd-b584-3640122228d7))
|
||||
(fp_rect (start 6.75 4.25) (end 7.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d0a61f34-8522-463f-a5d3-128be0684382))
|
||||
(fp_rect (start 4.75 -7.75) (end 5.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d0c04533-5679-4066-ab09-86204a6b7df3))
|
||||
(fp_rect (start -0.25 2.25) (end 0.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d10cbf54-d85c-4d3a-9fc7-eb4c58d5899b))
|
||||
(fp_rect (start -0.25 4.25) (end 0.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d116c193-d7ce-49db-aaa9-f0f91988eb49))
|
||||
(fp_rect (start -5.25 -5.75) (end -4.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d120ae62-a108-466c-b9fd-7aef8cde0c9a))
|
||||
(fp_rect (start 5.75 5.75) (end 6.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d172ff15-06f4-4472-a88d-6fd24dca3328))
|
||||
(fp_rect (start -5.25 -3.25) (end -4.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d1bf903e-0aaa-4b3d-8abe-905776b09049))
|
||||
(fp_rect (start -5.75 3.75) (end -5.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d1d4b91e-8b1f-484a-9411-966efd3e7435))
|
||||
(fp_rect (start 6.75 -6.25) (end 7.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d1e377ec-41f0-4e13-bdf3-582ab00717c7))
|
||||
(fp_rect (start 3.25 -5.75) (end 3.75 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d1e5675c-46f4-4698-a2b8-ec96e8dac78d))
|
||||
(fp_rect (start -2.75 -4.25) (end -2.25 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d2480f23-cc3c-4d3f-918c-351b3846811f))
|
||||
(fp_rect (start -7.25 2.75) (end -6.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d24cb340-c14f-4c6f-a49b-c8b6164c1650))
|
||||
(fp_rect (start -0.75 -2.75) (end -0.25 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d27fd7f4-d272-453b-8f6b-c38ae274f697))
|
||||
(fp_rect (start 5.75 4.25) (end 6.25 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d36c117f-faf8-4244-baf1-c3ef802e77c0))
|
||||
(fp_rect (start 1.25 -2.75) (end 1.75 -2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d40adda3-9fa1-49b8-a11b-4856f7f44445))
|
||||
(fp_rect (start 7.25 -2.25) (end 7.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d43fd3da-3d1f-4d52-9908-b66b7fccb97e))
|
||||
(fp_rect (start -5.75 3.25) (end -5.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d4aa88ff-c21d-45ce-a5f8-6fd6cc572af3))
|
||||
(fp_rect (start 0.75 -3.25) (end 1.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d58c7a65-b159-45f2-80f7-5e423717aa33))
|
||||
(fp_rect (start 4.75 -6.25) (end 5.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d59a50d8-8ae2-46d6-8ea5-d638399cb5b1))
|
||||
(fp_rect (start -8.25 -1.75) (end -7.75 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d61c7a2d-fbab-4d6e-8e27-d47463f1182e))
|
||||
(fp_rect (start 2.75 -3.75) (end 3.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d6b8bf23-2e32-4dbc-ab40-9d07b7e5b23d))
|
||||
(fp_rect (start -6.75 6.75) (end -6.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d6f128b4-d07b-4043-90fe-a5c388375e77))
|
||||
(fp_rect (start 3.75 7.75) (end 4.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d76b79f1-6bb7-4a9b-9d97-ffd81b5c6300))
|
||||
(fp_rect (start -6.75 -5.25) (end -6.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp d881244e-f0d9-48e2-98b6-1b31520fd8e3))
|
||||
(fp_rect (start -4.25 7.75) (end -3.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp d9dc14df-f602-45c8-baee-18f338dde7b0))
|
||||
(fp_rect (start -1.25 6.25) (end -0.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp da55f8b8-5f4b-4265-a0d8-b4c781fb6a7a))
|
||||
(fp_rect (start 2.75 -8.25) (end 3.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp db0c505a-5fb0-4d8d-9141-387686733cbe))
|
||||
(fp_rect (start -1.25 5.25) (end -0.75 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp db4eec97-a50a-4847-9e87-c1796050c32f))
|
||||
(fp_rect (start 4.75 -0.75) (end 5.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp db66d670-69b7-404f-9541-b549dfae36ab))
|
||||
(fp_rect (start 7.75 7.75) (end 8.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp dbaa33cd-353e-478c-a987-3e8866e19ae9))
|
||||
(fp_rect (start -4.25 -0.75) (end -3.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp dbfd6032-3ba9-4c5e-806a-ce5a5433a665))
|
||||
(fp_rect (start 7.75 -7.25) (end 8.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp dc5ae963-fe21-456d-b1a4-8eb4c651aae6))
|
||||
(fp_rect (start -4.25 2.75) (end -3.75 3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp dc6cd7fc-7bd0-4de6-b25d-8358230cc2b3))
|
||||
(fp_rect (start 4.25 0.75) (end 4.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ddf5044d-271b-4e01-a609-3ba16fdb7050))
|
||||
(fp_rect (start 6.25 -6.75) (end 6.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp de7ffa3a-2037-46f6-a7ae-fd836c4cc46c))
|
||||
(fp_rect (start 3.25 -6.75) (end 3.75 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp df613813-22f2-4bee-b44c-2a2c1633ded3))
|
||||
(fp_rect (start -3.25 -2.25) (end -2.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e054f807-c3ce-4a7e-9d6b-14f0839d4695))
|
||||
(fp_rect (start 6.25 0.75) (end 6.75 1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e09aafd0-d16e-43e8-a0cb-4a539aade959))
|
||||
(fp_rect (start -6.75 6.25) (end -6.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e0d857ee-7b4f-405d-a83a-91235b8e80f1))
|
||||
(fp_rect (start -4.25 3.25) (end -3.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e105b377-04fd-4739-b42d-70b52bf9043e))
|
||||
(fp_rect (start -1.75 -2.25) (end -1.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e109faf2-baea-4512-920c-3e2b43ba897c))
|
||||
(fp_rect (start -7.75 -2.25) (end -7.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e14b6c18-1728-47af-a6a7-e680ece18d44))
|
||||
(fp_rect (start 0.75 -5.75) (end 1.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e14d60e1-db05-4200-8e33-2b635e2d1be9))
|
||||
(fp_rect (start 5.25 2.25) (end 5.75 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e157f239-db58-48f0-a8c9-8ae6164404f2))
|
||||
(fp_rect (start 2.75 -6.25) (end 3.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e172da6a-bcf5-4396-ad65-991c2042bc50))
|
||||
(fp_rect (start 2.25 7.25) (end 2.75 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e1d4a68d-c675-4b4c-b2fe-c31bfbc96c82))
|
||||
(fp_rect (start -8.25 -2.25) (end -7.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e1e77345-b3a1-48c5-af6b-dd74d7941265))
|
||||
(fp_rect (start -5.25 6.75) (end -4.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e25367f3-3ba5-4cb0-bbd9-92139eda38e8))
|
||||
(fp_rect (start -2.25 7.75) (end -1.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e28addd6-9d8e-47f7-abfe-98c30e9ed852))
|
||||
(fp_rect (start 3.75 5.25) (end 4.25 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e2bc1a90-22ff-4b34-8c57-b9c6016801a8))
|
||||
(fp_rect (start -6.25 -5.25) (end -5.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e2defa08-2894-4ee2-bfa6-99118626bbf3))
|
||||
(fp_rect (start 0.25 -3.75) (end 0.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e364a00d-7621-4343-a8d2-d01927959cc0))
|
||||
(fp_rect (start -3.25 -4.25) (end -2.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e3d9ef7b-de42-4b47-a806-f57b85031b34))
|
||||
(fp_rect (start -2.25 1.75) (end -1.75 2.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e44bf520-77c3-42b5-bd67-dd6d86635d05))
|
||||
(fp_rect (start -5.25 -0.25) (end -4.75 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e5d16aea-1454-4b33-a4a4-d62ca305bb7a))
|
||||
(fp_rect (start -6.75 3.75) (end -6.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e605149f-e0dd-4baf-8a5d-9f30663a8aec))
|
||||
(fp_rect (start 6.75 -7.25) (end 7.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e63bb130-ad98-4933-863e-58b2216f7f13))
|
||||
(fp_rect (start -0.25 7.25) (end 0.25 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e63bbbda-fdfe-4e24-9b63-ded53d82a2e9))
|
||||
(fp_rect (start 6.25 0.25) (end 6.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e679d04c-4f61-4486-ab66-608cb7b52661))
|
||||
(fp_rect (start -3.75 -2.25) (end -3.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e6a033c3-2e7f-4285-bfa7-b3cb094a62db))
|
||||
(fp_rect (start -2.25 -5.25) (end -1.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e6dfd0e2-0004-4097-9bb5-61cb2463be0e))
|
||||
(fp_rect (start -1.75 -3.25) (end -1.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e6e74239-eb7c-46be-a737-cd6b287fceea))
|
||||
(fp_rect (start 2.25 4.25) (end 2.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e6f0aeee-3ee2-4aa4-9aab-99ad5b2b3b36))
|
||||
(fp_rect (start -6.75 -8.25) (end -6.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e71066dc-0515-4d49-bc5a-be4459bcd7a6))
|
||||
(fp_rect (start -5.25 7.25) (end -4.75 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e7183110-ea6d-45c2-9982-cd4f62d1bb39))
|
||||
(fp_rect (start 5.75 -6.75) (end 6.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e7699434-0334-4d1c-bafc-478f02c5e11e))
|
||||
(fp_rect (start 7.75 3.75) (end 8.25 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e7804ba0-5e09-4c5d-842b-b3eaab38d0af))
|
||||
(fp_rect (start 0.75 6.25) (end 1.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e7dba29f-5d18-4496-9c7e-5d55cef58cd2))
|
||||
(fp_rect (start -6.75 4.75) (end -6.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp e7fcce1b-eed4-40ef-bedb-01a9dab1ce54))
|
||||
(fp_rect (start -8.25 0.25) (end -7.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e8868ed6-cacd-4e76-8fd3-f8676c9b2994))
|
||||
(fp_rect (start -7.25 -3.25) (end -6.75 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e88f9db6-02f9-4eeb-91c3-59052e22c8ec))
|
||||
(fp_rect (start -1.75 1.25) (end -1.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e923fde8-656b-4b3d-a875-e2b66e4cf1f6))
|
||||
(fp_rect (start -8.25 7.25) (end -7.75 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e9bb58f5-022d-4cc3-87bb-983830e70009))
|
||||
(fp_rect (start 4.75 2.25) (end 5.25 2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e9c06018-f94a-498d-9af0-97d1bc3f2ae8))
|
||||
(fp_rect (start -3.25 1.25) (end -2.75 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp e9f01f1a-44b7-49b6-bde1-9ac19a4d1f43))
|
||||
(fp_rect (start 5.75 -5.25) (end 6.25 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp eaeb1157-d68c-45d2-a9ad-5f263161d840))
|
||||
(fp_rect (start -6.75 -3.75) (end -6.25 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp eb08a993-7bba-4bd2-b482-c99366b57b56))
|
||||
(fp_rect (start 7.75 1.25) (end 8.25 1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp eb2ec285-f158-42b4-af03-0376105ccbd2))
|
||||
(fp_rect (start 4.75 -2.25) (end 5.25 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp eb5e3a90-3b51-43bf-8446-d159dcb28685))
|
||||
(fp_rect (start -6.25 6.25) (end -5.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ec75fc9f-f613-4d00-b93f-5bca9920acd3))
|
||||
(fp_rect (start 4.75 -8.25) (end 5.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ed0d7b10-214a-4a74-a516-7d89de5d8c11))
|
||||
(fp_rect (start -3.75 -0.75) (end -3.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ed742886-c808-4131-837f-e0bfb55adae0))
|
||||
(fp_rect (start 6.25 -8.25) (end 6.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ee2c1ad7-4a69-4089-a6ee-c2c7128ae42a))
|
||||
(fp_rect (start -5.25 -6.25) (end -4.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ee37e74f-8e56-41f6-806a-fb8b70af954f))
|
||||
(fp_rect (start -1.25 -4.75) (end -0.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ee4ca2da-ba87-456f-bf56-676b9192bc5a))
|
||||
(fp_rect (start 3.25 4.25) (end 3.75 4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ef660157-609b-4b9f-958b-0906c558d922))
|
||||
(fp_rect (start -7.25 5.75) (end -6.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp ef772289-828c-46cc-810a-223c4d100a84))
|
||||
(fp_rect (start -7.75 7.75) (end -7.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp efe74f95-0921-495d-92c8-b12b1ae29508))
|
||||
(fp_rect (start 5.75 -1.25) (end 6.25 -0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f092a3c7-4ab3-457d-a711-8b64578f2301))
|
||||
(fp_rect (start 7.25 -5.25) (end 7.75 -4.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f1ceebb8-504b-4498-b8db-4b978ef4f285))
|
||||
(fp_rect (start -5.25 5.25) (end -4.75 5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f215e4f0-056d-476b-b174-abd11377a065))
|
||||
(fp_rect (start -2.25 -4.75) (end -1.75 -4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f314431c-6ad5-4baa-94f7-6360e163cebc))
|
||||
(fp_rect (start -5.25 -8.25) (end -4.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f352260b-3c2a-4664-b125-aaf411f62463))
|
||||
(fp_rect (start 0.75 -7.25) (end 1.25 -6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f3895704-4c3a-4f63-9cb4-ca8f4be32382))
|
||||
(fp_rect (start -4.25 3.75) (end -3.75 4.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f424a655-b30f-41dc-8594-266b44ed0364))
|
||||
(fp_rect (start 6.25 -4.25) (end 6.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f4359816-c455-49c0-a515-b7ec2740e9ac))
|
||||
(fp_rect (start 3.75 6.75) (end 4.25 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f47404b8-d9a2-4237-b106-d475c33e5073))
|
||||
(fp_rect (start -8.25 -6.25) (end -7.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f5c9f831-2ee7-4f7c-a571-fd9be530cc87))
|
||||
(fp_rect (start 5.25 -8.25) (end 5.75 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f5e5ec6b-cfe1-4049-ad78-fa355d69a5b4))
|
||||
(fp_rect (start 6.25 -2.25) (end 6.75 -1.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f6b70556-6821-4b6b-8261-7991f08bddb7))
|
||||
(fp_rect (start -5.75 -8.25) (end -5.25 -7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f7a7f9a9-9428-42be-832a-ab35020d5810))
|
||||
(fp_rect (start -0.25 -6.75) (end 0.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f7c54b41-69ea-4ee2-ac7e-d21357aee8ed))
|
||||
(fp_rect (start 2.25 -0.75) (end 2.75 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f80aea68-781b-42b2-b0f7-ae33342b5e92))
|
||||
(fp_rect (start -0.75 -5.75) (end -0.25 -5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f818c8e8-1a30-4868-ae76-7511be1c41e5))
|
||||
(fp_rect (start -7.25 -3.75) (end -6.75 -3.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f827c9b7-652b-42aa-90f6-e57b7a58d1b1))
|
||||
(fp_rect (start 6.75 -6.75) (end 7.25 -6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp f85ebcbe-9a65-40e0-9a71-9d3d5f57805f))
|
||||
(fp_rect (start 3.25 0.25) (end 3.75 0.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f87f453e-4237-45d3-b736-ff61ff8c9af6))
|
||||
(fp_rect (start 1.75 6.25) (end 2.25 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f8f5fc47-a957-42a9-8cc4-77aa06248ea6))
|
||||
(fp_rect (start -6.25 -4.25) (end -5.75 -3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f964a8bb-84dc-42fc-8190-53d869778e1f))
|
||||
(fp_rect (start 7.75 3.25) (end 8.25 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f9b69381-6d0d-4f82-9780-abbe556cdbe0))
|
||||
(fp_rect (start 1.75 -3.25) (end 2.25 -2.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp f9d56579-4665-4291-8daa-238922297fe9))
|
||||
(fp_rect (start -4.25 -6.25) (end -3.75 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp fa18aea8-6b0a-4dc9-b1e1-d270f10847ce))
|
||||
(fp_rect (start -1.75 -0.75) (end -1.25 -0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fa5174ab-1489-4c82-abe8-a3a015638b1b))
|
||||
(fp_rect (start -2.75 -1.75) (end -2.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fa57f43d-2cbf-4c62-a78e-c6fd96a8d752))
|
||||
(fp_rect (start 0.75 4.75) (end 1.25 5.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fa69521e-0b4a-4a64-8b5a-040f7dde2974))
|
||||
(fp_rect (start -1.75 -7.75) (end -1.25 -7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fac47c45-0a35-4908-8782-abd14c67d40e))
|
||||
(fp_rect (start -2.75 -6.25) (end -2.25 -5.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp fbcdbe7d-f0d4-446e-8ac7-9f70271e27bb))
|
||||
(fp_rect (start 1.75 -0.25) (end 2.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fc51550d-c0e8-422d-b3b9-4c0f3cbdaaff))
|
||||
(fp_rect (start -4.25 5.75) (end -3.75 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fc632d25-fd55-4040-beb6-6efc5fe3122a))
|
||||
(fp_rect (start -1.25 6.75) (end -0.75 7.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fc69c83e-a8f3-4e18-9070-2949d1c0d605))
|
||||
(fp_rect (start 4.75 -1.75) (end 5.25 -1.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fd068fec-627f-4786-b55a-3b0f59bc8090))
|
||||
(fp_rect (start 4.75 7.75) (end 5.25 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fd3c2437-60e6-48de-9221-1e13890bb42e))
|
||||
(fp_rect (start -1.25 7.75) (end -0.75 8.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fd6da314-2040-40c8-8d51-fbf27d5328a2))
|
||||
(fp_rect (start 3.75 5.75) (end 4.25 6.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fd7be013-c791-4b26-a4f6-bc756044558c))
|
||||
(fp_rect (start -8.25 6.25) (end -7.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp fdaf7989-0aca-4b34-8de9-78c0b3ee2a8a))
|
||||
(fp_rect (start -0.75 7.25) (end -0.25 7.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp fdb34042-4fe1-46d2-96d3-2171b09598e5))
|
||||
(fp_rect (start 5.75 -0.25) (end 6.25 0.25) (layer "F.SilkS") (width 0) (fill solid) (tstamp fdfa0f5f-f3dc-48ed-8b1b-d0cbce5a317b))
|
||||
(fp_rect (start -3.25 6.25) (end -2.75 6.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp fe7ad404-1bb3-492d-933d-5d1bf3089b77))
|
||||
(fp_rect (start -6.25 3.25) (end -5.75 3.75) (layer "F.SilkS") (width 0) (fill solid) (tstamp ffaaedd8-e7d2-42f6-99c2-0a0def8b9829))
|
||||
(fp_line (start 8.35 -8.35) (end 8.35 8.35) (layer "F.CrtYd") (width 0.05) (tstamp 1d53c623-dd8c-4272-aa7f-2c68f433a586))
|
||||
(fp_line (start -8.35 -8.35) (end 8.35 -8.35) (layer "F.CrtYd") (width 0.05) (tstamp 64e77b69-9860-4f3b-8e08-c69a5f01219b))
|
||||
(fp_line (start 8.35 8.35) (end -8.35 8.35) (layer "F.CrtYd") (width 0.05) (tstamp 7e99c699-6152-49b5-b1a0-8d37be687ab6))
|
||||
(fp_line (start -8.35 8.35) (end -8.35 -8.35) (layer "F.CrtYd") (width 0.05) (tstamp a268b3ff-87db-49ca-ab02-b8b395242240))
|
||||
)
|
|
@ -0,0 +1,14 @@
|
|||
(module Board (layer F.Cu) (tedit 605A21C1)
|
||||
(descr "Mark board for extraction")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at -4.5 -5) (layer Dwgs.User)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left))
|
||||
)
|
||||
(fp_text value Board (at -7.25 -5) (layer Dwgs.User)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 0 0) (end -1.25 -4) (layer Dwgs.User) (width 0.2))
|
||||
(fp_line (start -1.25 -4) (end -9.25 -4) (layer Dwgs.User) (width 0.2))
|
||||
(fp_line (start 0 0) (end 0.5 -1) (layer Dwgs.User) (width 0.2))
|
||||
(fp_line (start 0 0) (end -1 -0.5) (layer Dwgs.User) (width 0.2))
|
||||
)
|
|
@ -0,0 +1,13 @@
|
|||
(module Fiducial:Fiducial (layer F.Cu) (tedit 5EA93A7C)
|
||||
(descr "Circular Fiducial")
|
||||
(tags fiducial)
|
||||
(attr smd)
|
||||
(fp_text reference REF** (at 0 -1.5) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Fiducial (at 0 1.5) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "" smd circle (at 0 0) (size 0.5 0.5) (layers F.Cu F.Mask)
|
||||
(solder_mask_margin 0.25) (clearance 0.25))
|
||||
)
|
|
@ -0,0 +1,9 @@
|
|||
(module NPTH (layer F.Cu) (tedit 618E7E16)
|
||||
(fp_text reference REF** (at 0 0.5) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value NPTH (at 0 -0.5) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "" np_thru_hole circle (at 0 0) (size 1 1) (drill 1) (layers *.Cu *.Mask))
|
||||
)
|
|
@ -0,0 +1,17 @@
|
|||
(module Tab (layer F.Cu) (tedit 60708B1A)
|
||||
(descr "A symbol representing annotation for tab placement")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at 0 -2) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Tab (at -2.75 -1) (layer Dwgs.User)
|
||||
(effects (font (size 1.2 1.2) (thickness 0.2)))
|
||||
)
|
||||
(fp_line (start 0.25 0) (end -0.75 1) (layer Dwgs.User) (width 0.3))
|
||||
(fp_line (start 0.25 0) (end -0.75 -1) (layer Dwgs.User) (width 0.3))
|
||||
(fp_line (start 0.25 0) (end -2.75 0) (layer Dwgs.User) (width 0.3))
|
||||
(fp_line (start 0.25 1) (end 0.25 -1) (layer Dwgs.User) (width 0.3))
|
||||
(fp_text user "KIKIT: width: 3mm" (at -5.5 0 90) (layer Dwgs.User)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-0.4 -0.8 0,
|
||||
0.4 -0.8 0,
|
||||
0.4 0.8 0,
|
||||
-0.4 0.8 0,
|
||||
-0.4 -0.8 0.92,
|
||||
0.4 -0.8 0.92,
|
||||
0.4 0.8 0.92,
|
||||
-0.4 0.8 0.92
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-7.5 -6.075 0,
|
||||
7.5 -6.075 0,
|
||||
7.5 6.075 0,
|
||||
-7.5 6.075 0,
|
||||
-7.5 -6.075 6.2,
|
||||
7.5 -6.075 6.2,
|
||||
7.5 6.075 6.2,
|
||||
-7.5 6.075 6.2
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-0.6 -1 0,
|
||||
0.6 -1 0,
|
||||
0.6 1 0,
|
||||
-0.6 1 0,
|
||||
-0.6 -1 0.8,
|
||||
0.6 -1 0.8,
|
||||
0.6 1 0.8,
|
||||
-0.6 1 0.8
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-3.05 -8.89 0,
|
||||
3.05 -8.89 0,
|
||||
3.05 8.89 0,
|
||||
-3.05 8.89 0,
|
||||
-3.05 -8.89 3.55,
|
||||
3.05 -8.89 3.55,
|
||||
3.05 8.89 3.55,
|
||||
-3.05 8.89 3.55
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-2.2 -3.25 0,
|
||||
2.2 -3.25 0,
|
||||
2.2 3.25 0,
|
||||
-2.2 3.25 0,
|
||||
-2.2 -3.25 1.2,
|
||||
2.2 -3.25 1.2,
|
||||
2.2 3.25 1.2,
|
||||
-2.2 3.25 1.2
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-0.8 -1.46 0,
|
||||
0.8 -1.46 0,
|
||||
0.8 1.46 0,
|
||||
-0.8 1.46 0,
|
||||
-0.8 -1.46 1.25,
|
||||
0.8 -1.46 1.25,
|
||||
0.8 1.46 1.25,
|
||||
-0.8 1.46 1.25
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#VRML V2.0 utf8
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material Material {
|
||||
diffuseColor 0.37 0.37 0.37
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 1.0 1.0 1.0
|
||||
ambientIntensity 1.0
|
||||
transparency 0.5
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate {
|
||||
point [
|
||||
-0.4 -0.8 0,
|
||||
0.4 -0.8 0,
|
||||
0.4 0.8 0,
|
||||
-0.4 0.8 0,
|
||||
-0.4 -0.8 0.55,
|
||||
0.4 -0.8 0.55,
|
||||
0.4 0.8 0.55,
|
||||
-0.4 0.8 0.55
|
||||
]
|
||||
}
|
||||
coordIndex [
|
||||
0,1,2,3,-1
|
||||
4,5,6,7,-1
|
||||
0,1,5,4,-1
|
||||
2,3,7,6,-1
|
||||
0,3,7,4,-1
|
||||
1,2,6,5,-1
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
EESchema-DOCLIB Version 2.0 Date: 23/06/2022 16:55:23
|
||||
#
|
||||
$CMP HDMI-001S
|
||||
D connector, HDMI, receptacle
|
||||
F https://datasheet.lcsc.com/lcsc/2008152133_XUNPU-HDMI-001S_C720616.pdf
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP FT24C16A-EL
|
||||
D memory, EEPROM, I²C, 16Kbi
|
||||
F http://fremontmicro.com/downfile.aspx?filepath=/upload/2019/0715/1102v2x666.pdf&filename=ft24c16a-exx-rev1.4.pdf
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP R0603
|
||||
D resistor, chip, 1.6x0.8 mm
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP C0603
|
||||
D Chip capacitor 1.6x0.8 mm
|
||||
K Capacitor
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP STM8S003x3
|
||||
D 16-MHz STM8S 8-bit MCU, 8-Kbyte Flash memory, 128-byte data EEPROM, 10-bit ADC, 3 timers, UART, SPI, I2C
|
||||
K IC, MCU, Micro-Controller, STM8S
|
||||
F https://www.st.com/resource/en/datasheet/stm8s003f3.pdf
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP XKB_DSICxxLS
|
||||
D switch, SIP, surface mount
|
||||
F https://datasheet.lcsc.com/lcsc/2110151630_XKB-Connectivity-DSIC07LS-P_C319033.pdf
|
||||
$ENDCMP
|
||||
#
|
||||
$CMP LED0805
|
||||
D diode, LED, chip, 2.0x1.2 mm
|
||||
K LED
|
||||
$ENDCMP
|
||||
#
|
||||
# End Doc Library
|
|
@ -0,0 +1,205 @@
|
|||
EESchema-LIBRARY Version 2.3 Date: 23/06/2022 16:55:23
|
||||
#encoding utf-8
|
||||
#
|
||||
# HDMI-001S
|
||||
#
|
||||
DEF HDMI-001S J 0 140 Y Y 1 L N
|
||||
F0 "J" 0 30 50 H V L BNN
|
||||
F1 "HDMI-001S" 1730 -1130 50 H V L TNN
|
||||
F2 "qeda:CONNECTOR_HDMI-001S" 0 0 0 H I C CNN
|
||||
F3 "https://datasheet.lcsc.com/lcsc/2008152133_XUNPU-HDMI-001S_C720616.pdf" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
CONNECTOR_HDMI-001S
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S 0 0 2400 -1100 1 1 12 f
|
||||
X SCL 15 -200 -200 200 R 50 50 1 1 P
|
||||
C 50 -200 25 1 1 12 F
|
||||
X SDA 16 -200 -300 200 R 50 50 1 1 P
|
||||
C 50 -300 25 1 1 12 F
|
||||
X CEC 13 -200 -500 200 R 50 50 1 1 P
|
||||
C 50 -500 25 1 1 12 F
|
||||
X utility/HEAC+ 14 -200 -700 200 R 50 50 1 1 P
|
||||
C 50 -700 25 1 1 12 F
|
||||
X HPD/HEAC- 19 -200 -900 200 R 50 50 1 1 P
|
||||
C 50 -900 25 1 1 12 F
|
||||
X CK+ 10 2600 -200 200 L 50 50 1 1 P
|
||||
C 2350 -200 25 1 1 12 F
|
||||
X CK- 12 2600 -300 200 L 50 50 1 1 P
|
||||
C 2350 -300 25 1 1 12 F
|
||||
X D0+ 7 2600 -400 200 L 50 50 1 1 P
|
||||
C 2350 -400 25 1 1 12 F
|
||||
X D0- 9 2600 -500 200 L 50 50 1 1 P
|
||||
C 2350 -500 25 1 1 12 F
|
||||
X D1+ 4 2600 -600 200 L 50 50 1 1 P
|
||||
C 2350 -600 25 1 1 12 F
|
||||
X D1- 6 2600 -700 200 L 50 50 1 1 P
|
||||
C 2350 -700 25 1 1 12 F
|
||||
X D2+ 1 2600 -800 200 L 50 50 1 1 P
|
||||
C 2350 -800 25 1 1 12 F
|
||||
X D2- 3 2600 -900 200 L 50 50 1 1 P
|
||||
C 2350 -900 25 1 1 12 F
|
||||
X 5V 18 1200 200 200 D 50 50 1 1 W
|
||||
C 1200 -50 25 1 1 12 F
|
||||
X GND 17 700 -1300 200 U 50 50 1 1 W
|
||||
C 700 -1050 25 1 1 12 F
|
||||
X SHELL S1 900 -1300 200 U 50 50 1 1 P
|
||||
C 900 -1050 25 1 1 12 F
|
||||
X SHELL S2 1000 -1300 200 U 50 50 1 1 P
|
||||
C 1000 -1050 25 1 1 12 F
|
||||
X SHELL S3 1100 -1300 200 U 50 50 1 1 P
|
||||
C 1100 -1050 25 1 1 12 F
|
||||
X SHELL S4 1200 -1300 200 U 50 50 1 1 P
|
||||
C 1200 -1050 25 1 1 12 F
|
||||
X CKS 11 1400 -1300 200 U 50 50 1 1 P
|
||||
C 1400 -1050 25 1 1 12 F
|
||||
X D0S 8 1500 -1300 200 U 50 50 1 1 P
|
||||
C 1500 -1050 25 1 1 12 F
|
||||
X D1S 5 1600 -1300 200 U 50 50 1 1 P
|
||||
C 1600 -1050 25 1 1 12 F
|
||||
X D2S 2 1700 -1300 200 U 50 50 1 1 P
|
||||
C 1700 -1050 25 1 1 12 F
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# FT24C16A-EL
|
||||
#
|
||||
DEF FT24C16A-EL U 0 40 Y Y 1 L N
|
||||
F0 "U" 0 30 50 H V L BNN
|
||||
F1 "FT24C16A-EL" 330 -630 50 H V L TNN
|
||||
F2 "qeda:SOT95P280X125-5N" 0 0 0 H I C CNN
|
||||
F3 "http://fremontmicro.com/downfile.aspx?filepath=/upload/2019/0715/1102v2x666.pdf&filename=ft24c16a-exx-rev1.4.pdf" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
SOT95P280X125-5N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S 0 0 400 -600 1 1 12 f
|
||||
X SCL 1 -200 -100 200 R 50 50 1 1 U
|
||||
X SDA 3 -200 -300 200 R 50 50 1 1 B
|
||||
X WP 5 -200 -500 200 R 50 50 1 1 U
|
||||
X VCC 4 300 200 200 D 50 50 1 1 W
|
||||
X GND 2 300 -800 200 U 50 50 1 1 W
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R0603
|
||||
#
|
||||
DEF R0603 R 0 40 N N 1 L N
|
||||
F0 "R" 0 70 50 H V C BNN
|
||||
F1 "R0603" 0 -70 50 H V C TNN
|
||||
F2 "qeda:UC1608X55N" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
UC1608X55N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -100 40 100 -40 1 1 12 f
|
||||
X L 1 -150 0 50 R 50 50 1 1 P
|
||||
X R 2 150 0 50 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# C0603
|
||||
#
|
||||
DEF C0603 C 0 40 N N 1 L N
|
||||
F0 "C" 0 110 50 H V C BNN
|
||||
F1 "C0603" 0 -110 50 H V C TNN
|
||||
F2 "qeda:CAPC1608X92N" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
CAPC1608X92N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 1 1 12 -15 80 -15 -80 N
|
||||
P 2 1 1 12 15 80 15 -80 N
|
||||
X L 1 -100 0 85 R 50 50 1 1 P
|
||||
X R 2 100 0 85 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# STM8S003x3
|
||||
#
|
||||
DEF STM8S003x3 U 0 40 Y Y 1 L N
|
||||
F0 "U" 0 30 50 H V L BNN
|
||||
F1 "STM8S003x3" 680 -1330 50 H V L TNN
|
||||
F2 "qeda:SOP65P640X120-20N" 0 0 0 H I C CNN
|
||||
F3 "https://www.st.com/resource/en/datasheet/stm8s003f3.pdf" 0 0 0 H I C CNN
|
||||
ALIAS STM8S003F3 STM8S003K3
|
||||
$FPLIST
|
||||
SOP65P640X120-20N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S 0 0 1150 -1300 1 1 12 f
|
||||
X PA1/OSCIN 5 -200 -300 200 R 50 50 1 1 B
|
||||
X PA2/OSCOUT 6 -200 -400 200 R 50 50 1 1 B
|
||||
X PA3 10 -200 -500 200 R 50 50 1 1 B
|
||||
X PB4 12 -200 -700 200 R 50 50 1 1 B
|
||||
X PB5 11 -200 -800 200 R 50 50 1 1 B
|
||||
X NRST 4 -200 -1000 200 R 50 50 1 1 I
|
||||
X PC3 13 1350 -100 200 L 50 50 1 1 B
|
||||
X PC4 14 1350 -200 200 L 50 50 1 1 B
|
||||
X PC5 15 1350 -300 200 L 50 50 1 1 B
|
||||
X PC6 16 1350 -400 200 L 50 50 1 1 B
|
||||
X PC7 17 1350 -500 200 L 50 50 1 1 B
|
||||
X PD1/SWIM 18 1350 -700 200 L 50 50 1 1 B
|
||||
X PD2 19 1350 -800 200 L 50 50 1 1 B
|
||||
X PD3 20 1350 -900 200 L 50 50 1 1 B
|
||||
X PD4 1 1350 -1000 200 L 50 50 1 1 B
|
||||
X PD5 2 1350 -1100 200 L 50 50 1 1 B
|
||||
X PD6 3 1350 -1200 200 L 50 50 1 1 B
|
||||
X VCAP 8 600 200 200 D 50 50 1 1 W
|
||||
X VDD 9 700 200 200 D 50 50 1 1 W
|
||||
X VSS 7 650 -1500 200 U 50 50 1 1 W
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# XKB_DSICxxLS
|
||||
#
|
||||
DEF XKB_DSICxxLS SW 0 40 Y Y 1 L N
|
||||
F0 "SW" 425 30 50 H V C BNN
|
||||
F1 "XKB_DSICxxLS" 425 -830 50 H V C TNN
|
||||
F2 "qeda:SOP254P976X355-14N" 0 0 0 H I C CNN
|
||||
F3 "https://datasheet.lcsc.com/lcsc/2110151630_XKB-Connectivity-DSIC07LS-P_C319033.pdf" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
SOP254P976X355-14N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S 0 0 850 -800 1 1 12 f
|
||||
S 360 -320 440 -400 1 1 12 N
|
||||
S 360 -400 440 -480 1 1 12 F
|
||||
X LEFT 1 -200 -100 200 R 50 50 1 1 P
|
||||
X LEFT 2 -200 -200 200 R 50 50 1 1 P
|
||||
X LEFT 3 -200 -300 200 R 50 50 1 1 P
|
||||
X LEFT 4 -200 -400 200 R 50 50 1 1 P
|
||||
X LEFT 5 -200 -500 200 R 50 50 1 1 P
|
||||
X LEFT 6 -200 -600 200 R 50 50 1 1 P
|
||||
X LEFT 7 -200 -700 200 R 50 50 1 1 P
|
||||
X RIGHT 8 1050 -100 200 L 50 50 1 1 P
|
||||
X RIGHT 9 1050 -200 200 L 50 50 1 1 P
|
||||
X RIGHT 10 1050 -300 200 L 50 50 1 1 P
|
||||
X RIGHT 11 1050 -400 200 L 50 50 1 1 P
|
||||
X RIGHT 12 1050 -500 200 L 50 50 1 1 P
|
||||
X RIGHT 13 1050 -600 200 L 50 50 1 1 P
|
||||
X RIGHT 14 1050 -700 200 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# LED0805
|
||||
#
|
||||
DEF LED0805 D 0 40 N N 1 L N
|
||||
F0 "D" 0 80 50 H V C BNN
|
||||
F1 "LED0805" 0 -80 50 H V C TNN
|
||||
F2 "qeda:LEDC2012X80N" 0 0 0 H I C CNN
|
||||
$FPLIST
|
||||
LEDC2012X80N
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 4 1 1 12 -40 50 40 0 -40 -50 -40 50 f
|
||||
P 2 1 1 12 40 50 40 -50 N
|
||||
P 2 1 1 12 50 75 100 125 N
|
||||
P 4 1 1 12 68 107 100 125 82 93 68 107 F
|
||||
P 2 1 1 12 75 50 125 100 N
|
||||
P 4 1 1 12 93 82 125 100 107 68 93 82 F
|
||||
X A 2 -100 0 60 R 50 50 1 1 P
|
||||
X C 1 100 0 60 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
# End Library
|
|
@ -0,0 +1,38 @@
|
|||
(module CAPC1608X92N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at 0.000 -0.750) (size 1.250 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 2 smd rect (at 0.000 0.750) (size 1.250 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -0.925 -0.900) (end -0.925 0.900) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 0.925 -0.900) (end 0.925 0.900) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value CAPC1608X92N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 0.528 0.528) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 0.528 0.528) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -0.400 -0.800) (end 0.400 -0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.400 -0.800) (end 0.400 0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.400 0.800) (end -0.400 0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.400 0.800) (end -0.400 -0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.875 -1.550) (end -0.875 -1.050) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.875 -1.050) (end -0.875 1.050) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.875 1.050) (end -0.875 1.550) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.875 1.550) (end 0.875 1.550) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.875 1.550) (end 0.875 1.050) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.875 1.050) (end 0.875 -1.050) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.875 -1.050) (end 0.875 -1.550) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.875 -1.550) (end -0.875 -1.550) (layer F.CrtYd) (width 0.050))
|
||||
(model CAPC1608X92N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,85 @@
|
|||
(module CONNECTOR_HDMI-001S (layer F.Cu)
|
||||
(pad 1 smd rect (at -4.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 2 smd rect (at -4.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 3 smd rect (at -3.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 4 smd rect (at -3.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 5 smd rect (at -2.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 6 smd rect (at -2.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 7 smd rect (at -1.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 8 smd rect (at -1.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 9 smd rect (at -0.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 10 smd rect (at 0.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 11 smd rect (at 0.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 12 smd rect (at 1.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 13 smd rect (at 1.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 14 smd rect (at 2.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 15 smd rect (at 2.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 16 smd rect (at 3.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 17 smd rect (at 3.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 18 smd rect (at 4.000 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 19 smd rect (at 4.500 4.235) (size 0.300 2.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad S1 thru_hole oval (at -7.250 -2.485) (size 1.500 2.300) (layers F.Cu F.Mask *.Cu B.Cu B.Mask)
|
||||
(drill oval 0.900 1.600)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad S2 thru_hole oval (at 7.250 -2.485) (size 1.500 2.300) (layers F.Cu F.Mask *.Cu B.Cu B.Mask)
|
||||
(drill oval 0.900 1.600)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad S3 thru_hole oval (at -7.250 3.475) (size 1.500 3.400) (layers F.Cu F.Mask *.Cu B.Cu B.Mask)
|
||||
(drill oval 0.900 2.700)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad S4 thru_hole oval (at 7.250 3.475) (size 1.500 3.400) (layers F.Cu F.Mask *.Cu B.Cu B.Mask)
|
||||
(drill oval 0.900 2.700)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -7.600 -6.175) (end 7.600 -6.175) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 7.600 -6.175) (end 7.600 -3.935) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 7.600 -1.035) (end 7.600 1.475) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 7.600 5.475) (end 7.600 6.175) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 7.600 6.175) (end -7.600 6.175) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -7.600 -6.175) (end -7.600 -3.935) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -7.600 -1.035) (end -7.600 1.475) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -7.600 5.475) (end -7.600 6.175) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value CONNECTOR_HDMI-001S (at 0.000 0.000 0) (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 0) hide (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -7.500 -6.075) (end 7.500 -6.075) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 7.500 -6.075) (end 7.500 6.075) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 7.500 6.075) (end -7.500 6.075) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -7.500 6.075) (end -7.500 -6.075) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -8.250 -6.325) (end 8.250 -6.325) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 8.250 -6.325) (end 8.250 6.325) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 8.250 6.325) (end -8.250 6.325) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -8.250 6.325) (end -8.250 -6.325) (layer F.CrtYd) (width 0.050))
|
||||
(model CONNECTOR_HDMI-001S.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,42 @@
|
|||
(module LEDC2012X80N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at 0.000 -0.900) (size 1.600 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 2 smd rect (at 0.000 0.900) (size 1.600 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -1.100 -1.100) (end -1.100 1.100) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 1.100 -1.100) (end 1.100 1.100) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -1.100 -1.100) (end -1.100 -1.750) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -1.100 -1.750) (end 1.100 -1.750) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 1.100 -1.750) (end 1.100 -1.100) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value LEDC2012X80N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 0.792 0.792) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 0.792 0.792) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start 0.000 -1.000) (end 0.600 -1.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.600 -1.000) (end 0.600 1.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.600 1.000) (end -0.600 1.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.600 1.000) (end -0.600 -0.400) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.600 -0.400) (end 0.000 -1.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -1.050 -1.700) (end -1.050 -1.250) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 -1.250) (end -1.050 1.250) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 1.250) (end -1.050 1.700) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 1.700) (end 1.050 1.700) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 1.700) (end 1.050 1.250) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 1.250) (end 1.050 -1.250) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 -1.250) (end 1.050 -1.700) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 -1.700) (end -1.050 -1.700) (layer F.CrtYd) (width 0.050))
|
||||
(model LEDC2012X80N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,61 @@
|
|||
(module MECHANICAL_XKB_DSICXXLS (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad NC1 smd rect (at -7.620 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC2 smd rect (at -5.080 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC3 smd rect (at -2.540 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC4 smd rect (at 0.000 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC5 smd rect (at 2.540 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC6 smd rect (at 5.080 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC7 smd rect (at 7.620 -4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC8 smd rect (at -7.620 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC9 smd rect (at -5.080 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC10 smd rect (at -2.540 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC11 smd rect (at 0.000 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC12 smd rect (at 2.540 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC13 smd rect (at 5.080 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad NC14 smd rect (at 7.620 4.650) (size 1.100 1.700) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -8.990 -3.150) (end 8.990 -3.150) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 8.990 -3.150) (end 8.990 3.150) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 8.990 3.150) (end -8.990 3.150) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -8.990 3.150) (end -8.990 -3.150) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value MECHANICAL_XKB_DSICXXLS (at 0.000 0.000 0) (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 0) hide (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -7.890 -3.050) (end 8.890 -3.050) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 8.890 -3.050) (end 8.890 3.050) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 8.890 3.050) (end -8.890 3.050) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -8.890 3.050) (end -8.890 -2.050) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -8.890 -2.050) (end -7.890 -3.050) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -9.140 -5.750) (end 9.140 -5.750) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 9.140 -5.750) (end 9.140 5.750) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 9.140 5.750) (end -9.140 5.750) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -9.140 5.750) (end -9.140 -5.750) (layer F.CrtYd) (width 0.050))
|
||||
(model MECHANICAL_XKB_DSICXXLS.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,71 @@
|
|||
(module SOP254P976X355-14N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at -4.650 -7.620) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 2 smd rect (at -4.650 -5.080) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 3 smd rect (at -4.650 -2.540) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 4 smd rect (at -4.650 0.000) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 5 smd rect (at -4.650 2.540) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 6 smd rect (at -4.650 5.080) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 7 smd rect (at -4.650 7.620) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 14 smd rect (at 4.650 -7.620) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 13 smd rect (at 4.650 -5.080) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 12 smd rect (at 4.650 -2.540) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 11 smd rect (at 4.650 0.000) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 10 smd rect (at 4.650 2.540) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 9 smd rect (at 4.650 5.080) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 8 smd rect (at 4.650 7.620) (size 1.700 1.100) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -3.150 -8.990) (end 3.150 -8.990) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 3.150 -8.990) (end 3.150 8.990) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 3.150 8.990) (end -3.150 8.990) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -3.150 8.990) (end -3.150 -8.990) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -3.150 -8.470) (end -5.800 -8.470) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -5.800 -8.470) (end -5.800 -7.070) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value SOP254P976X355-14N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -2.050 -8.890) (end 3.050 -8.890) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 3.050 -8.890) (end 3.050 8.890) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 3.050 8.890) (end -3.050 8.890) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -3.050 8.890) (end -3.050 -7.890) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -3.050 -7.890) (end -2.050 -8.890) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -5.750 -8.420) (end -3.300 -8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -3.300 -8.420) (end -3.300 -9.140) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -3.300 -9.140) (end 3.300 -9.140) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.300 -9.140) (end 3.300 -8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.300 -8.420) (end 5.750 -8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 5.750 -8.420) (end 5.750 8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 5.750 8.420) (end 3.300 8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.300 8.420) (end 3.300 9.140) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.300 9.140) (end -3.300 9.140) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -3.300 9.140) (end -3.300 8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -3.300 8.420) (end -5.750 8.420) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -5.750 8.420) (end -5.750 -8.420) (layer F.CrtYd) (width 0.050))
|
||||
(model SOP254P976X355-14N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,81 @@
|
|||
(module SOP65P640X120-20N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at -2.950 -2.925) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 2 smd rect (at -2.950 -2.275) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 3 smd rect (at -2.950 -1.625) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 4 smd rect (at -2.950 -0.975) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 5 smd rect (at -2.950 -0.325) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 6 smd rect (at -2.950 0.325) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 7 smd rect (at -2.950 0.975) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 8 smd rect (at -2.950 1.625) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 9 smd rect (at -2.950 2.275) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 10 smd rect (at -2.950 2.925) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 20 smd rect (at 2.950 -2.925) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 19 smd rect (at 2.950 -2.275) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 18 smd rect (at 2.950 -1.625) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 17 smd rect (at 2.950 -0.975) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 16 smd rect (at 2.950 -0.325) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 15 smd rect (at 2.950 0.325) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 14 smd rect (at 2.950 0.975) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 13 smd rect (at 2.950 1.625) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 12 smd rect (at 2.950 2.275) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(pad 11 smd rect (at 2.950 2.925) (size 1.525 0.450) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.001))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -2.300 -3.450) (end 2.300 -3.450) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 2.300 3.450) (end -2.300 3.450) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -2.300 -3.450) (end -4.013 -3.450) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -4.013 -3.450) (end -4.013 -2.700) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value SOP65P640X120-20N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -1.200 -3.250) (end 2.200 -3.250) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 2.200 -3.250) (end 2.200 3.250) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 2.200 3.250) (end -2.200 3.250) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -2.200 3.250) (end -2.200 -2.250) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -2.200 -2.250) (end -1.200 -3.250) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -3.963 -3.400) (end -2.450 -3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -2.450 -3.400) (end -2.450 -3.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -2.450 -3.500) (end 2.450 -3.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.450 -3.500) (end 2.450 -3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.450 -3.400) (end 3.963 -3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.963 -3.400) (end 3.963 3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 3.963 3.400) (end 2.450 3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.450 3.400) (end 2.450 3.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.450 3.500) (end -2.450 3.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -2.450 3.500) (end -2.450 3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -2.450 3.400) (end -3.963 3.400) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -3.963 3.400) (end -3.963 -3.400) (layer F.CrtYd) (width 0.050))
|
||||
(model SOP65P640X120-20N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,52 @@
|
|||
(module SOT95P280X125-5N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at -1.300 -0.950) (size 1.100 0.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 2 smd rect (at -1.300 0.000) (size 1.100 0.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 3 smd rect (at -1.300 0.950) (size 1.100 0.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 4 smd rect (at 1.300 0.950) (size 1.100 0.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 5 smd rect (at 1.300 -0.950) (size 1.100 0.600) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -0.900 -1.560) (end 0.900 -1.560) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 0.900 -0.350) (end 0.900 0.350) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 0.900 1.560) (end -0.900 1.560) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -0.900 -1.550) (end -2.150 -1.550) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start -2.150 -1.550) (end -2.150 -0.650) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value SOT95P280X125-5N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 1.000 1.000) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start 0.000 -1.460) (end 0.800 -1.460) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.800 -1.460) (end 0.800 1.460) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.800 1.460) (end -0.800 1.460) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.800 1.460) (end -0.800 -0.660) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.800 -0.660) (end 0.000 -1.460) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -2.100 -1.500) (end -1.050 -1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 -1.500) (end -1.050 -1.710) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 -1.710) (end 1.050 -1.710) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 -1.710) (end 1.050 -1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 -1.500) (end 2.100 -1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.100 -1.500) (end 2.100 1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 2.100 1.500) (end 1.050 1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 1.500) (end 1.050 1.710) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 1.050 1.710) (end -1.050 1.710) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 1.710) (end -1.050 1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -1.050 1.500) (end -2.100 1.500) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -2.100 1.500) (end -2.100 -1.500) (layer F.CrtYd) (width 0.050))
|
||||
(model SOT95P280X125-5N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,38 @@
|
|||
(module UC1608X55N (layer F.Cu)
|
||||
(attr smd)
|
||||
(pad 1 smd rect (at 0.000 -0.700) (size 1.100 0.750) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(pad 2 smd rect (at 0.000 0.700) (size 1.100 0.750) (layers F.Cu F.Mask F.Paste)
|
||||
(solder_mask_margin 0.050))
|
||||
(fp_text reference REF** (at 0.000 0.000) (layer F.SilkS)
|
||||
(effects (font (size 1.200 1.200) (thickness 0.200)))
|
||||
)
|
||||
(fp_line (start -0.850 -0.900) (end -0.850 0.900) (layer F.SilkS) (width 0.200))
|
||||
(fp_line (start 0.850 -0.900) (end 0.850 0.900) (layer F.SilkS) (width 0.200))
|
||||
(fp_circle (center 0.000 0.000) (end 0.000 0.500) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.700 0.000) (end 0.700 0.000) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.000 -0.700) (end 0.000 0.700) (layer F.Fab) (width 0.100))
|
||||
(fp_text value UC1608X55N (at 0.000 0.000 90) (layer F.Fab)
|
||||
(effects (font (size 0.528 0.528) (thickness 0.100)))
|
||||
)
|
||||
(fp_text user REF** (at 0.000 0.000 90) hide (layer F.Fab)
|
||||
(effects (font (size 0.528 0.528) (thickness 0.100)))
|
||||
)
|
||||
(fp_line (start -0.400 -0.800) (end 0.400 -0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.400 -0.800) (end 0.400 0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start 0.400 0.800) (end -0.400 0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.400 0.800) (end -0.400 -0.800) (layer F.Fab) (width 0.100))
|
||||
(fp_line (start -0.730 -1.255) (end -0.730 -0.980) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.730 -0.980) (end -0.730 0.980) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.730 0.980) (end -0.730 1.255) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start -0.730 1.255) (end 0.730 1.255) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.730 1.255) (end 0.730 0.980) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.730 0.980) (end 0.730 -0.980) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.730 -0.980) (end 0.730 -1.255) (layer F.CrtYd) (width 0.050))
|
||||
(fp_line (start 0.730 -1.255) (end -0.730 -1.255) (layer F.CrtYd) (width 0.050))
|
||||
(model UC1608X55N.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.3937 0.3937 0.3937))
|
||||
(rotate (xyz 0 0 0 ))
|
||||
)
|
||||
)
|
2
library
2
library
|
@ -1 +1 @@
|
|||
Subproject commit 939ae5450bb586bea02e4c7bb27aaf4f8920e5e8
|
||||
Subproject commit 00e9790a224eb9add19e01e9095b80b05f6cf944
|
58
mass_prop.sh
58
mass_prop.sh
|
@ -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"
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 518 KiB |
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
Binary file not shown.
After Width: | Height: | Size: 194 KiB |
Binary file not shown.
After Width: | Height: | Size: 448 KiB |
Binary file not shown.
After Width: | Height: | Size: 234 KiB |
Binary file not shown.
After Width: | Height: | Size: 262 KiB |
|
@ -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;
|
|
@ -0,0 +1,9 @@
|
|||
import pcbnew
|
||||
import sys
|
||||
|
||||
board = pcbnew.LoadBoard(sys.argv[1])
|
||||
for fp in board.GetFootprints():
|
||||
fp.Value().SetVisible(False)
|
||||
fp.Reference().SetLayer(board.GetLayerID('F.Fab'))
|
||||
|
||||
board.Save(sys.argv[1])
|
|
@ -0,0 +1,3 @@
|
|||
(sym_lib_table
|
||||
(lib (name "qeda")(type "Legacy")(uri "${KIPRJMOD}/kicad/qeda.lib")(options "")(descr ""))
|
||||
)
|
2532
template.lht
2532
template.lht
File diff suppressed because it is too large
Load Diff
22
template.sch
22
template.sch
|
@ -1,22 +0,0 @@
|
|||
v 20210626 2
|
||||
C 0 0 1 0 0 title.sym
|
||||
{
|
||||
T 1000 700 5 10 1 1 0 0 1
|
||||
date=$date$
|
||||
T 4300 700 5 10 1 1 0 0 1
|
||||
org=CuVoodoo
|
||||
T 4300 400 5 10 1 1 0 0 1
|
||||
authors=King Kévin
|
||||
T 3000 1200 5 14 1 1 0 4 1
|
||||
title=TITLE
|
||||
T 1000 400 5 10 1 1 0 0 1
|
||||
version=$version$
|
||||
T 1000 100 5 10 1 1 0 0 1
|
||||
revision=$revision$
|
||||
T 4300 100 5 10 1 1 0 0 1
|
||||
licence=CERN-OHL-S
|
||||
T 0 1800 5 10 0 0 0 0 1
|
||||
device=none
|
||||
T 0 2000 5 10 0 0 0 0 1
|
||||
footprint=none
|
||||
}
|
Loading…
Reference in New Issue