Compare commits

...

4 Commits

17 changed files with 12663 additions and 612 deletions

View File

@ -5,5 +5,10 @@ config:
lineWidth:
silkscreen: 0.2
preferManufacturer: false
smoothPadCorners: false
smoothPadCorners: true
library:
- connector/usb-a-2.0-receptacle
- connector/connector_usb-micro-b-2.0_ali_32910334970
- connector/connector_battery_cr2032
- resistor/r0603
- diode/led0603

View File

@ -1,11 +1,63 @@
these are the hardware design files for **insert project name here**.
The micro-USB cable tester verifies if a USB 2.0 cable with micro-B plug can be used to transfer data, or just for charging.
purpose
=======
Have you ever plugged in a device using a micro-USB cable and wondered why you can't see it on your computer?
Especially when you are developing the USB stack of a micro-controller.
This tiny gadget will test the cable and confirm if it can be used to transfer data.
Now you can be sure your USB implementation needs some tweaking, and not waste time because this cable was only for charging.
usage
=====
Ensure a CR2032 or CR2025 coin cell is present in the holder on the back of the board.
A CR2032 coin cell is provided with the tester.
Plug in the USB type A of the cable at the top, and the USB type micro-B at the bottom:
- when the red POWER LED lights up, the cable can be used to power a device (with up to 500 mA, according to USB 2.0 specification)
- when the blue DATA LED lights up, the cable can be used to transfer data
- when the red B.CHG (battery charging) LED lights up, the cable can be used to charge a device (with up to 1.5 A, according to USB Battery Charging 1.2 specification). This cable can not be used to transfer data. If the POWER LED is not on at the same time, the cable is defective
- when the green SHIELD LED lights up, the cable can be used for data transfer with High Speed devices (480 Mbit/s), else this cable should only be used for Full Speed devices (12 Mbit/s). If the DATA LED is not on at the same time, the cable is defective
- when the blue OTG LED lights up, this is a On-The-Go cable meant to connect a device (i.e. a memory stick) to a host with micro-B port (e.g. a phone). Such adapters can be tested without plugging in the type-A side
battery charging
================
Normally USB cables capable of data transfer should always be used (USB specification compliant cables), and the charger port the cable is plugged into indicates the device can draw up to 1.5 A by shorting the data lines (D+ and D-).
This is known as a Dedicated Charging Port (DCP).
Because most USB ports capable of providing more than 500 mA are common practice now, some penny pincher though it was a good idea to short the data lines directly in the micro-B plug, and save the cost of the two additional wires for data transfer (along with shielding and controlled impedance).
Such cables are often provided to charge battery operated devices.
As described in **purpose**, I built the tester mainly to identify such cables and avoid using them for data transfer.
tip
===
After identifying the cable with this tester, I write the result using a marker on the cable with a letter: P for power only, C for battery charging, D for data without shield, S for shields cables, and O oft OTG adapter.
This allows me to immediately know what the cable is capable of next time I use it.
mode of operation
=================
Here the methods used to test the different capabilities of the cable:
- POWER: ensures the VBUS and GND wires are present in the cable, required to power a device. Signal path: VCC -> micro-B_VBUS -> A_VBUS -> LED -> A_GND -> micro-B_GND -> GND.
- DATA: ensures the D- wire is present in the cable, required to transfer data. The D+ is also required, but when D- is present, I expect D+ to also be. This is not the case if the cable is broken though, but this is not in the scope of this tester. Signal path: VCC -> micro-B_D- -> A_D- -> LED -> A_GND -> micro-B_GND -> GND.
- B.CHG: checks if D+ and D- are shorted in the micro-B plug. Signal path: VCC -> micro-B_D- -> micro-B_D+ -> LED -> GND.
- SHIELD: ensures the shell of the plugs are connected on both sides of the cable. This does not ensure if there is really a shield in the cable, or just a wire. It also can't ensure the shell is simply shorted to GND. These limitations are outside of the scope of this tester since I haven't seen any cable cheating this way. Signal path: VCC -> micro-B_VBUS -> A_VBUS -> LED -> A_GND -> micro-B_GND -> GND.
- OTG: checks if the ID pin is connected to ground, indicating the "device" that it should act as host. Signal path: VCC -> LED -> micro-B_ID -> micro-B_GND -> GND.
All details are in the schematic.
design choice
=============
- the connectors need to have through hole mounting tabs to ensure they don't break from the board, particularly the micro-B receptacle.
- to power the LEDs I used small batteries I had around: CR2032. They are plenty sufficient to power LEDs, especially because I provide them with less than 0.5 mA. Thus the battery should last testing cables for years, unless you leave them plugged in.
- to keep the board small, I decided to put the battery holder on the back of the board. This requires you to solder it last, else it would cover the hole for the USB-A receptacle.
- I did not specify the colors of the LEDs, or the value of the resistors, in the schematic, since I wanted to try out alternatives while assembling them.
requirements
============

View File

@ -14,7 +14,7 @@ require 'csv' # to export BOM and costs
# =================
# common name used for file names
name = "template"
name = "micro-usb_cable_tester"
# project version, read from "version" file
raise "define project version in 'version' file" unless File.exist? "version"
version = IO.read("version").split("\n")[0]

View File

@ -0,0 +1,602 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_CR2032........
ha:attributes {
footprint = CONNECTOR_CR2032
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 1.300mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.700mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.750mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.700mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.700mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.750mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.56 {
proto = 2
rot = 0
x = 10.950mm
y = 0.000mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.57 {
proto = 2
rot = 0
x = -9.050mm
y = 0.000mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
}
li:layers {
ha:subc-aux {
lid = 0
ha:type {
top = 1
misc = 1
virtual = 1
}
li:objects {
ha:line.58 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.59 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.60 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 1.000mm
}
}
}
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:text.61 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.62 {
x1 = 12.150mm
y1 = -3.950mm
x2 = 12.150mm
y2 = 3.950mm
thickness = 0.200mm
clearance = 0
}
ha:line.63 {
x1 = 12.150mm
y1 = 3.950mm
x2 = 9.220mm
y2 = 3.950mm
thickness = 0.200mm
clearance = 0
}
ha:line.64 {
x1 = 9.220mm
y1 = 3.950mm
x2 = 8.470mm
y2 = 5.525mm
thickness = 0.200mm
clearance = 0
}
ha:line.65 {
x1 = 8.470mm
y1 = 5.525mm
x2 = 7.365mm
y2 = 7.103mm
thickness = 0.200mm
clearance = 0
}
ha:line.66 {
x1 = 7.365mm
y1 = 7.103mm
x2 = 6.003mm
y2 = 8.465mm
thickness = 0.200mm
clearance = 0
}
ha:line.67 {
x1 = 6.003mm
y1 = 8.465mm
x2 = 4.425mm
y2 = 9.570mm
thickness = 0.200mm
clearance = 0
}
ha:line.68 {
x1 = 4.425mm
y1 = 9.570mm
x2 = 2.679mm
y2 = 10.384mm
thickness = 0.200mm
clearance = 0
}
ha:line.69 {
x1 = 2.679mm
y1 = 10.384mm
x2 = 0.819mm
y2 = 10.882mm
thickness = 0.200mm
clearance = 0
}
ha:line.70 {
x1 = 0.819mm
y1 = 10.882mm
x2 = -1.100mm
y2 = 11.050mm
thickness = 0.200mm
clearance = 0
}
ha:line.71 {
x1 = -1.100mm
y1 = 11.050mm
x2 = -3.019mm
y2 = 10.882mm
thickness = 0.200mm
clearance = 0
}
ha:line.72 {
x1 = -3.019mm
y1 = 10.882mm
x2 = -4.879mm
y2 = 10.384mm
thickness = 0.200mm
clearance = 0
}
ha:line.73 {
x1 = -4.879mm
y1 = 10.384mm
x2 = -6.625mm
y2 = 9.570mm
thickness = 0.200mm
clearance = 0
}
ha:line.74 {
x1 = -6.625mm
y1 = 9.570mm
x2 = -8.203mm
y2 = 8.465mm
thickness = 0.200mm
clearance = 0
}
ha:line.75 {
x1 = -8.203mm
y1 = 8.465mm
x2 = -9.565mm
y2 = 7.103mm
thickness = 0.200mm
clearance = 0
}
ha:line.76 {
x1 = -9.565mm
y1 = 7.103mm
x2 = -10.670mm
y2 = 5.525mm
thickness = 0.200mm
clearance = 0
}
ha:line.77 {
x1 = -10.670mm
y1 = 5.525mm
x2 = -11.484mm
y2 = 3.779mm
thickness = 0.200mm
clearance = 0
}
ha:line.78 {
x1 = -11.484mm
y1 = 3.779mm
x2 = -11.982mm
y2 = 1.919mm
thickness = 0.200mm
clearance = 0
}
ha:line.79 {
x1 = -11.982mm
y1 = 1.919mm
x2 = -12.150mm
y2 = 0.000mm
thickness = 0.200mm
clearance = 0
}
ha:line.80 {
x1 = -12.150mm
y1 = 0.000mm
x2 = -11.982mm
y2 = -1.919mm
thickness = 0.200mm
clearance = 0
}
ha:line.81 {
x1 = -11.982mm
y1 = -1.919mm
x2 = -11.484mm
y2 = -3.779mm
thickness = 0.200mm
clearance = 0
}
ha:line.82 {
x1 = -11.484mm
y1 = -3.779mm
x2 = -10.670mm
y2 = -5.525mm
thickness = 0.200mm
clearance = 0
}
ha:line.83 {
x1 = -10.670mm
y1 = -5.525mm
x2 = -9.565mm
y2 = -7.103mm
thickness = 0.200mm
clearance = 0
}
ha:line.84 {
x1 = -9.565mm
y1 = -7.103mm
x2 = -8.203mm
y2 = -8.465mm
thickness = 0.200mm
clearance = 0
}
ha:line.85 {
x1 = -8.203mm
y1 = -8.465mm
x2 = -6.625mm
y2 = -9.570mm
thickness = 0.200mm
clearance = 0
}
ha:line.86 {
x1 = -6.625mm
y1 = -9.570mm
x2 = -4.879mm
y2 = -10.384mm
thickness = 0.200mm
clearance = 0
}
ha:line.87 {
x1 = -4.879mm
y1 = -10.384mm
x2 = -3.019mm
y2 = -10.882mm
thickness = 0.200mm
clearance = 0
}
ha:line.88 {
x1 = -3.019mm
y1 = -10.882mm
x2 = -1.100mm
y2 = -11.050mm
thickness = 0.200mm
clearance = 0
}
ha:line.89 {
x1 = -1.100mm
y1 = -11.050mm
x2 = 0.819mm
y2 = -10.882mm
thickness = 0.200mm
clearance = 0
}
ha:line.90 {
x1 = 0.819mm
y1 = -10.882mm
x2 = 2.679mm
y2 = -10.384mm
thickness = 0.200mm
clearance = 0
}
ha:line.91 {
x1 = 2.679mm
y1 = -10.384mm
x2 = 4.425mm
y2 = -9.570mm
thickness = 0.200mm
clearance = 0
}
ha:line.92 {
x1 = 4.425mm
y1 = -9.570mm
x2 = 6.003mm
y2 = -8.465mm
thickness = 0.200mm
clearance = 0
}
ha:line.93 {
x1 = 6.003mm
y1 = -8.465mm
x2 = 7.365mm
y2 = -7.103mm
thickness = 0.200mm
clearance = 0
}
ha:line.94 {
x1 = 7.365mm
y1 = -7.103mm
x2 = 8.470mm
y2 = -5.525mm
thickness = 0.200mm
clearance = 0
}
ha:line.95 {
x1 = 8.470mm
y1 = -5.525mm
x2 = 9.220mm
y2 = -3.950mm
thickness = 0.200mm
clearance = 0
}
ha:line.96 {
x1 = 9.220mm
y1 = -3.950mm
x2 = 12.150mm
y2 = -3.950mm
thickness = 0.200mm
clearance = 0
}
ha:line.97 {
x1 = -12.250mm
y1 = -11.150mm
x2 = 12.250mm
y2 = -11.150mm
thickness = 0.200mm
clearance = 0
}
ha:line.98 {
x1 = 12.250mm
y1 = -11.150mm
x2 = 12.250mm
y2 = 11.150mm
thickness = 0.200mm
clearance = 0
}
ha:line.99 {
x1 = 12.250mm
y1 = 11.150mm
x2 = -12.250mm
y2 = 11.150mm
thickness = 0.200mm
clearance = 0
}
ha:line.100 {
x1 = -12.250mm
y1 = 11.150mm
x2 = -12.250mm
y2 = -11.150mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.101 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.102 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.103 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.104 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = CONNECTOR_CR2032
fid = 0
ha:flags {
floater = 1
}
}
ha:line.105 {
x1 = -12.150mm
y1 = -11.050mm
x2 = 12.150mm
y2 = -11.050mm
thickness = 0.100mm
clearance = 0
}
ha:line.106 {
x1 = 12.150mm
y1 = -11.050mm
x2 = 12.150mm
y2 = 11.050mm
thickness = 0.100mm
clearance = 0
}
ha:line.107 {
x1 = 12.150mm
y1 = 11.050mm
x2 = -12.150mm
y2 = 11.050mm
thickness = 0.100mm
clearance = 0
}
ha:line.108 {
x1 = -12.150mm
y1 = 11.050mm
x2 = -12.150mm
y2 = -11.050mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.109 {
li:geometry {
ta:contour {
{ -12.400mm; -11.300mm }
{ 12.400mm; -11.300mm }
{ 12.400mm; 11.300mm }
{ -12.400mm; 11.300mm }
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,476 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_USB20_RECEPTAC
ha:attributes {
footprint = CONNECTOR_USB20_RECEPTACLE
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 0.900mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.350mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.400mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.350mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 1.350mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 1.400mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
ha:ps_proto_v6.3 {
htop = 0
hbottom = 0
hdia = 2.100mm
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.150mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 3.200mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.150mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 3.150mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 3.200mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.24 {
proto = 2
rot = 0
x = -3.500mm
y = -5.860mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.25 {
proto = 2
rot = 0
x = -1.000mm
y = -5.860mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.26 {
proto = 2
rot = 0
x = 1.000mm
y = -5.860mm
ha:attributes {
term = 3
name = 3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.27 {
proto = 2
rot = 0
x = 3.500mm
y = -5.860mm
ha:attributes {
term = 4
name = 4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 3
rot = 0
x = -7.000mm
y = -3.150mm
ha:attributes {
term = 5
name = 5
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 3
rot = 0
x = 7.000mm
y = -3.150mm
ha:attributes {
term = 6
name = 6
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
}
li:layers {
ha:subc-aux {
lid = 0
ha:type {
top = 1
misc = 1
virtual = 1
}
li:objects {
ha:line.30 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.150mm
y2 = -3.150mm
}
ha:line.31 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = -3.150mm
y2 = -3.150mm
}
ha:line.32 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -3.150mm
y2 = -2.150mm
}
}
}
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:text.33 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.34 {
x1 = -7.300mm
y1 = -7.100mm
x2 = 7.300mm
y2 = -7.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.35 {
x1 = 7.300mm
y1 = -7.100mm
x2 = 7.300mm
y2 = -5.025mm
thickness = 0.200mm
clearance = 0
}
ha:line.36 {
x1 = 7.300mm
y1 = -1.275mm
x2 = 7.300mm
y2 = 7.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.37 {
x1 = 7.300mm
y1 = 7.100mm
x2 = -7.300mm
y2 = 7.100mm
thickness = 0.200mm
clearance = 0
}
ha:line.38 {
x1 = -7.300mm
y1 = -7.100mm
x2 = -7.300mm
y2 = -5.025mm
thickness = 0.200mm
clearance = 0
}
ha:line.39 {
x1 = -7.300mm
y1 = -1.275mm
x2 = -7.300mm
y2 = 7.100mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.40 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.41 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.42 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.43 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = CONNECTOR_USB20_RECEPTACLE
fid = 0
ha:flags {
floater = 1
}
}
ha:line.44 {
x1 = -7.200mm
y1 = -7.000mm
x2 = 7.200mm
y2 = -7.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.45 {
x1 = 7.200mm
y1 = -7.000mm
x2 = 7.200mm
y2 = 7.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.46 {
x1 = 7.200mm
y1 = 7.000mm
x2 = -7.200mm
y2 = 7.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.47 {
x1 = -7.200mm
y1 = 7.000mm
x2 = -7.200mm
y2 = -7.000mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.48 {
li:geometry {
ta:contour {
{ -8.825mm; -7.250mm }
{ 8.825mm; -7.250mm }
{ 8.825mm; 7.250mm }
{ -8.825mm; 7.250mm }
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,878 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = CONNECTOR_USB_2_MICRO-B.
ha:attributes {
footprint = CONNECTOR_USB_2_MICRO-B
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 0
hplated = 0
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
li:ps_poly {
0.200mm
-0.825mm
0.198mm
-0.842mm
0.194mm
-0.859mm
0.187mm
-0.875mm
0.177mm
-0.889mm
0.164mm
-0.902mm
0.150mm
-0.912mm
0.134mm
-0.919mm
0.117mm
-0.923mm
0.100mm
-0.925mm
-0.100mm
-0.925mm
-0.117mm
-0.923mm
-0.134mm
-0.919mm
-0.150mm
-0.912mm
-0.164mm
-0.902mm
-0.177mm
-0.889mm
-0.187mm
-0.875mm
-0.194mm
-0.859mm
-0.198mm
-0.842mm
-0.200mm
-0.825mm
-0.200mm
0.825mm
-0.198mm
0.842mm
-0.194mm
0.859mm
-0.187mm
0.875mm
-0.177mm
0.889mm
-0.164mm
0.902mm
-0.150mm
0.912mm
-0.134mm
0.919mm
-0.117mm
0.923mm
-0.100mm
0.925mm
0.100mm
0.925mm
0.117mm
0.923mm
0.134mm
0.919mm
0.150mm
0.912mm
0.164mm
0.902mm
0.177mm
0.889mm
0.187mm
0.875mm
0.194mm
0.859mm
0.198mm
0.842mm
0.200mm
0.825mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.225mm
-0.838mm
0.223mm
-0.857mm
0.218mm
-0.876mm
0.210mm
-0.894mm
0.199mm
-0.910mm
0.185mm
-0.924mm
0.169mm
-0.935mm
0.151mm
-0.943mm
0.132mm
-0.948mm
0.113mm
-0.950mm
-0.113mm
-0.950mm
-0.132mm
-0.948mm
-0.151mm
-0.943mm
-0.169mm
-0.935mm
-0.185mm
-0.924mm
-0.199mm
-0.910mm
-0.210mm
-0.894mm
-0.218mm
-0.876mm
-0.223mm
-0.857mm
-0.225mm
-0.838mm
-0.225mm
0.838mm
-0.223mm
0.857mm
-0.218mm
0.876mm
-0.210mm
0.894mm
-0.199mm
0.910mm
-0.185mm
0.924mm
-0.169mm
0.935mm
-0.151mm
0.943mm
-0.132mm
0.948mm
-0.113mm
0.950mm
0.112mm
0.950mm
0.132mm
0.948mm
0.151mm
0.943mm
0.169mm
0.935mm
0.185mm
0.924mm
0.199mm
0.910mm
0.210mm
0.894mm
0.218mm
0.876mm
0.223mm
0.857mm
0.225mm
0.838mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.200mm
-0.825mm
0.198mm
-0.842mm
0.194mm
-0.859mm
0.187mm
-0.875mm
0.177mm
-0.889mm
0.164mm
-0.902mm
0.150mm
-0.912mm
0.134mm
-0.919mm
0.117mm
-0.923mm
0.100mm
-0.925mm
-0.100mm
-0.925mm
-0.117mm
-0.923mm
-0.134mm
-0.919mm
-0.150mm
-0.912mm
-0.164mm
-0.902mm
-0.177mm
-0.889mm
-0.187mm
-0.875mm
-0.194mm
-0.859mm
-0.198mm
-0.842mm
-0.200mm
-0.825mm
-0.200mm
0.825mm
-0.198mm
0.842mm
-0.194mm
0.859mm
-0.187mm
0.875mm
-0.177mm
0.889mm
-0.164mm
0.902mm
-0.150mm
0.912mm
-0.134mm
0.919mm
-0.117mm
0.923mm
-0.100mm
0.925mm
0.100mm
0.925mm
0.117mm
0.923mm
0.134mm
0.919mm
0.150mm
0.912mm
0.164mm
0.902mm
0.177mm
0.889mm
0.187mm
0.875mm
0.194mm
0.859mm
0.198mm
0.842mm
0.200mm
0.825mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
ha:ps_proto_v6.3 {
htop = 0
hbottom = 0
hdia = 0
hplated = 1
li:shape {
ha:ps_shape_v4 {
clearance = 0
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 0.650mm
square = 0
}
ha:layer_mask {
mech = 1
}
ha:combining {
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 0.950mm
square = 0
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 1.050mm
square = 0
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 0.950mm
square = 0
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 0.950mm
square = 0
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_line {
x1 = 0.000mm
y1 = -0.600mm
x2 = 0.000mm
y2 = 0.600mm
thickness = 1.050mm
square = 0
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
ha:ps_proto_v6.4 {
htop = 0
hbottom = 0
hdia = 0.800mm
hplated = 0
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.800mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.850mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.800mm
}
ha:layer_mask {
intern = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0.200mm
ha:ps_circ {
x = 0
y = 0
dia = 0.800mm
}
ha:layer_mask {
bottom = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
ha:ps_circ {
x = 0
y = 0
dia = 0.850mm
}
ha:layer_mask {
bottom = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.27 {
proto = 2
rot = 0
x = -1.300mm
y = -2.470mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.28 {
proto = 2
rot = 0
x = -0.650mm
y = -2.470mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 2
rot = 0
x = 0.000mm
y = -2.470mm
ha:attributes {
term = 3
name = 3
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.30 {
proto = 2
rot = 0
x = 0.650mm
y = -2.470mm
ha:attributes {
term = 4
name = 4
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.31 {
proto = 2
rot = 0
x = 1.300mm
y = -2.470mm
ha:attributes {
term = 5
name = 5
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.32 {
proto = 3
rot = 0
x = -3.575mm
y = -2.900mm
ha:attributes {
term = 6
name = 6
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.33 {
proto = 3
rot = 0
x = 3.575mm
y = -2.900mm
ha:attributes {
term = 7
name = 7
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.34 {
proto = 3
rot = 0
x = -3.575mm
y = 0.550mm
ha:attributes {
term = 8
name = 8
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.35 {
proto = 3
rot = 0
x = 3.575mm
y = 0.550mm
ha:attributes {
term = 9
name = 9
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.36 {
proto = 4
rot = 0
x = -2.000mm
y = -1.750mm
ha:attributes {
term = MH1
name = MH1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.37 {
proto = 4
rot = 0
x = 2.000mm
y = -1.750mm
ha:attributes {
term = MH2
name = MH2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
}
li:layers {
ha:subc-aux {
lid = 0
ha:type {
top = 1
misc = 1
virtual = 1
}
li:objects {
ha:line.38 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -1.750mm
y2 = -1.750mm
}
ha:line.39 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = -1.750mm
y2 = -1.750mm
}
ha:line.40 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = -1.750mm
y2 = -0.750mm
}
}
}
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:text.41 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.42 {
x1 = -3.575mm
y1 = 2.700mm
x2 = 3.575mm
y2 = 2.700mm
thickness = 0.200mm
clearance = 0
}
ha:line.43 {
x1 = -2.800mm
y1 = -3.400mm
x2 = -1.800mm
y2 = -3.400mm
thickness = 0.200mm
clearance = 0
}
ha:line.44 {
x1 = 1.800mm
y1 = -3.400mm
x2 = 2.800mm
y2 = -3.400mm
thickness = 0.200mm
clearance = 0
}
ha:line.45 {
x1 = 4.100mm
y1 = -1.525mm
x2 = 4.100mm
y2 = -0.825mm
thickness = 0.200mm
clearance = 0
}
ha:line.46 {
x1 = 4.100mm
y1 = 1.925mm
x2 = 4.100mm
y2 = 3.400mm
thickness = 0.200mm
clearance = 0
}
ha:line.47 {
x1 = 4.100mm
y1 = 3.400mm
x2 = -4.100mm
y2 = 3.400mm
thickness = 0.200mm
clearance = 0
}
ha:line.48 {
x1 = -4.100mm
y1 = -1.525mm
x2 = -4.100mm
y2 = -0.825mm
thickness = 0.200mm
clearance = 0
}
ha:line.49 {
x1 = -4.100mm
y1 = 1.925mm
x2 = -4.100mm
y2 = 3.400mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.50 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.51 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.52 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.53 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = CONNECTOR_USB_2_MICRO-B
fid = 0
ha:flags {
floater = 1
}
}
ha:line.54 {
x1 = -4.000mm
y1 = -3.300mm
x2 = 4.000mm
y2 = -3.300mm
thickness = 0.100mm
clearance = 0
}
ha:line.55 {
x1 = 4.000mm
y1 = -3.300mm
x2 = 4.000mm
y2 = 3.300mm
thickness = 0.100mm
clearance = 0
}
ha:line.56 {
x1 = 4.000mm
y1 = 3.300mm
x2 = -4.000mm
y2 = 3.300mm
thickness = 0.100mm
clearance = 0
}
ha:line.57 {
x1 = -4.000mm
y1 = 3.300mm
x2 = -4.000mm
y2 = -3.300mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.58 {
li:geometry {
ta:contour {
{ -4.300mm; -4.225mm }
{ 4.300mm; -4.225mm }
{ 4.300mm; 3.550mm }
{ -4.300mm; 3.550mm }
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,591 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = LEDC1608X90N............
ha:attributes {
footprint = LEDC1608X90N
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 0
hplated = 0
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
li:ps_poly {
0.600mm
-0.250mm
0.597mm
-0.285mm
0.588mm
-0.318mm
0.573mm
-0.350mm
0.553mm
-0.379mm
0.529mm
-0.403mm
0.500mm
-0.423mm
0.468mm
-0.438mm
0.435mm
-0.447mm
0.400mm
-0.450mm
-0.400mm
-0.450mm
-0.435mm
-0.447mm
-0.468mm
-0.438mm
-0.500mm
-0.423mm
-0.529mm
-0.403mm
-0.553mm
-0.379mm
-0.573mm
-0.350mm
-0.588mm
-0.318mm
-0.597mm
-0.285mm
-0.600mm
-0.250mm
-0.600mm
0.250mm
-0.597mm
0.285mm
-0.588mm
0.318mm
-0.573mm
0.350mm
-0.553mm
0.379mm
-0.529mm
0.403mm
-0.500mm
0.423mm
-0.468mm
0.438mm
-0.435mm
0.447mm
-0.400mm
0.450mm
0.400mm
0.450mm
0.435mm
0.447mm
0.468mm
0.438mm
0.500mm
0.423mm
0.529mm
0.403mm
0.553mm
0.379mm
0.573mm
0.350mm
0.588mm
0.318mm
0.597mm
0.285mm
0.600mm
0.250mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.650mm
-0.300mm
0.647mm
-0.335mm
0.638mm
-0.368mm
0.623mm
-0.400mm
0.603mm
-0.429mm
0.579mm
-0.453mm
0.550mm
-0.473mm
0.518mm
-0.488mm
0.485mm
-0.497mm
0.450mm
-0.500mm
-0.450mm
-0.500mm
-0.485mm
-0.497mm
-0.518mm
-0.488mm
-0.550mm
-0.473mm
-0.579mm
-0.453mm
-0.603mm
-0.429mm
-0.623mm
-0.400mm
-0.638mm
-0.368mm
-0.647mm
-0.335mm
-0.650mm
-0.300mm
-0.650mm
0.300mm
-0.647mm
0.335mm
-0.638mm
0.368mm
-0.623mm
0.400mm
-0.603mm
0.429mm
-0.579mm
0.453mm
-0.550mm
0.473mm
-0.518mm
0.488mm
-0.485mm
0.497mm
-0.450mm
0.500mm
0.450mm
0.500mm
0.485mm
0.497mm
0.518mm
0.488mm
0.550mm
0.473mm
0.579mm
0.453mm
0.603mm
0.429mm
0.623mm
0.400mm
0.638mm
0.368mm
0.647mm
0.335mm
0.650mm
0.300mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.600mm
-0.250mm
0.597mm
-0.285mm
0.588mm
-0.318mm
0.573mm
-0.350mm
0.553mm
-0.379mm
0.529mm
-0.403mm
0.500mm
-0.423mm
0.468mm
-0.438mm
0.435mm
-0.447mm
0.400mm
-0.450mm
-0.400mm
-0.450mm
-0.435mm
-0.447mm
-0.468mm
-0.438mm
-0.500mm
-0.423mm
-0.529mm
-0.403mm
-0.553mm
-0.379mm
-0.573mm
-0.350mm
-0.588mm
-0.318mm
-0.597mm
-0.285mm
-0.600mm
-0.250mm
-0.600mm
0.250mm
-0.597mm
0.285mm
-0.588mm
0.318mm
-0.573mm
0.350mm
-0.553mm
0.379mm
-0.529mm
0.403mm
-0.500mm
0.423mm
-0.468mm
0.438mm
-0.435mm
0.447mm
-0.400mm
0.450mm
0.400mm
0.450mm
0.435mm
0.447mm
0.468mm
0.438mm
0.500mm
0.423mm
0.529mm
0.403mm
0.553mm
0.379mm
0.573mm
0.350mm
0.588mm
0.318mm
0.597mm
0.285mm
0.600mm
0.250mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.28 {
proto = 2
rot = 0
x = 0.000mm
y = -0.800mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.29 {
proto = 2
rot = 0
x = 0.000mm
y = 0.800mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
}
li:layers {
ha:subc-aux {
lid = 0
ha:type {
top = 1
misc = 1
virtual = 1
}
li:objects {
ha:line.30 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.31 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.32 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 1.000mm
}
}
}
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:text.33 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.34 {
x1 = -0.900mm
y1 = -0.900mm
x2 = -0.900mm
y2 = 0.900mm
thickness = 0.200mm
clearance = 0
}
ha:line.35 {
x1 = 0.900mm
y1 = -0.900mm
x2 = 0.900mm
y2 = 0.900mm
thickness = 0.200mm
clearance = 0
}
ha:line.36 {
x1 = -0.900mm
y1 = -0.900mm
x2 = -0.900mm
y2 = -1.550mm
thickness = 0.200mm
clearance = 0
}
ha:line.37 {
x1 = -0.900mm
y1 = -1.550mm
x2 = 0.900mm
y2 = -1.550mm
thickness = 0.200mm
clearance = 0
}
ha:line.38 {
x1 = 0.900mm
y1 = -1.550mm
x2 = 0.900mm
y2 = -0.900mm
thickness = 0.200mm
clearance = 0
}
ha:arc.39 {
x = 0.000mm
y = -2.100mm
width = 0.125mm
height = 0.125mm
thickness = 0.250mm
astart = 0
adelta = 360
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.40 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.41 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.42 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.43 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 53
string = LEDC1608X90N
fid = 0
ha:flags {
floater = 1
}
}
ha:arc.44 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.45 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.46 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.47 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 53
string = LEDC1608X90N
fid = 0
ha:flags {
floater = 1
}
}
ha:line.48 {
x1 = 0.000mm
y1 = -0.800mm
x2 = 0.400mm
y2 = -0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.49 {
x1 = 0.400mm
y1 = -0.800mm
x2 = 0.400mm
y2 = 0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.50 {
x1 = 0.400mm
y1 = 0.800mm
x2 = -0.400mm
y2 = 0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.51 {
x1 = -0.400mm
y1 = 0.800mm
x2 = -0.400mm
y2 = -0.400mm
thickness = 0.100mm
clearance = 0
}
ha:line.52 {
x1 = -0.400mm
y1 = -0.400mm
x2 = 0.000mm
y2 = -0.800mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.53 {
li:geometry {
ta:contour {
{ -0.850mm; -1.500mm }
{ -0.850mm; -1.050mm }
{ -0.850mm; 1.050mm }
{ -0.850mm; 1.500mm }
{ 0.850mm; 1.500mm }
{ 0.850mm; 1.050mm }
{ 0.850mm; -1.050mm }
{ 0.850mm; -1.500mm }
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,512 @@
# subcircuit generated using QEDA
li:pcb-rnd-subcircuit-v6 {
ha:subc.1 {
uid = RESC1608X55N............
ha:attributes {
footprint = RESC1608X55N
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.2 {
htop = 0
hbottom = 0
hdia = 0
hplated = 0
li:shape {
ha:ps_shape_v4 {
clearance = 0.200mm
li:ps_poly {
0.550mm
-0.188mm
0.547mm
-0.220mm
0.539mm
-0.252mm
0.525mm
-0.281mm
0.506mm
-0.308mm
0.483mm
-0.331mm
0.456mm
-0.350mm
0.427mm
-0.364mm
0.395mm
-0.372mm
0.363mm
-0.375mm
-0.363mm
-0.375mm
-0.395mm
-0.372mm
-0.427mm
-0.364mm
-0.456mm
-0.350mm
-0.483mm
-0.331mm
-0.506mm
-0.308mm
-0.525mm
-0.281mm
-0.539mm
-0.252mm
-0.547mm
-0.220mm
-0.550mm
-0.188mm
-0.550mm
0.187mm
-0.547mm
0.220mm
-0.539mm
0.252mm
-0.525mm
0.281mm
-0.506mm
0.308mm
-0.483mm
0.331mm
-0.456mm
0.350mm
-0.427mm
0.364mm
-0.395mm
0.372mm
-0.363mm
0.375mm
0.362mm
0.375mm
0.395mm
0.372mm
0.427mm
0.364mm
0.456mm
0.350mm
0.483mm
0.331mm
0.506mm
0.308mm
0.525mm
0.281mm
0.539mm
0.252mm
0.547mm
0.220mm
0.550mm
0.188mm
}
ha:layer_mask {
top = 1
copper = 1
}
ha:combining {
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.600mm
-0.225mm
0.597mm
-0.260mm
0.588mm
-0.293mm
0.573mm
-0.325mm
0.553mm
-0.354mm
0.529mm
-0.378mm
0.500mm
-0.398mm
0.468mm
-0.413mm
0.435mm
-0.422mm
0.400mm
-0.425mm
-0.400mm
-0.425mm
-0.435mm
-0.422mm
-0.468mm
-0.413mm
-0.500mm
-0.398mm
-0.529mm
-0.378mm
-0.553mm
-0.354mm
-0.573mm
-0.325mm
-0.588mm
-0.293mm
-0.597mm
-0.260mm
-0.600mm
-0.225mm
-0.600mm
0.225mm
-0.597mm
0.260mm
-0.588mm
0.293mm
-0.573mm
0.325mm
-0.553mm
0.354mm
-0.529mm
0.378mm
-0.500mm
0.398mm
-0.468mm
0.413mm
-0.435mm
0.422mm
-0.400mm
0.425mm
0.400mm
0.425mm
0.435mm
0.422mm
0.468mm
0.413mm
0.500mm
0.398mm
0.529mm
0.378mm
0.553mm
0.354mm
0.573mm
0.325mm
0.588mm
0.293mm
0.597mm
0.260mm
0.600mm
0.225mm
}
ha:layer_mask {
top = 1
mask = 1
}
ha:combining {
sub = 1
auto = 1
}
}
ha:ps_shape_v4 {
clearance = 0
li:ps_poly {
0.550mm
-0.188mm
0.547mm
-0.220mm
0.539mm
-0.252mm
0.525mm
-0.281mm
0.506mm
-0.308mm
0.483mm
-0.331mm
0.456mm
-0.350mm
0.427mm
-0.364mm
0.395mm
-0.372mm
0.363mm
-0.375mm
-0.363mm
-0.375mm
-0.395mm
-0.372mm
-0.427mm
-0.364mm
-0.456mm
-0.350mm
-0.483mm
-0.331mm
-0.506mm
-0.308mm
-0.525mm
-0.281mm
-0.539mm
-0.252mm
-0.547mm
-0.220mm
-0.550mm
-0.188mm
-0.550mm
0.187mm
-0.547mm
0.220mm
-0.539mm
0.252mm
-0.525mm
0.281mm
-0.506mm
0.308mm
-0.483mm
0.331mm
-0.456mm
0.350mm
-0.427mm
0.364mm
-0.395mm
0.372mm
-0.363mm
0.375mm
0.362mm
0.375mm
0.395mm
0.372mm
0.427mm
0.364mm
0.456mm
0.350mm
0.483mm
0.331mm
0.506mm
0.308mm
0.525mm
0.281mm
0.539mm
0.252mm
0.547mm
0.220mm
0.550mm
0.188mm
}
ha:layer_mask {
top = 1
paste = 1
}
ha:combining {
auto = 1
}
}
}
}
}
li:objects {
ha:padstack_ref.23 {
proto = 2
rot = 0
x = 0.000mm
y = -0.700mm
ha:attributes {
term = 1
name = 1
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
ha:padstack_ref.24 {
proto = 2
rot = 0
x = 0.000mm
y = 0.700mm
ha:attributes {
term = 2
name = 2
}
clearance = 0.200mm
ha:flags {
clearline = 1
}
}
}
li:layers {
ha:subc-aux {
lid = 0
ha:type {
top = 1
misc = 1
virtual = 1
}
li:objects {
ha:line.25 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = origin
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.26 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = x
}
x1 = 0.000mm
x2 = 1.000mm
y1 = 0.000mm
y2 = 0.000mm
}
ha:line.27 {
clearance = 0
thickness = 0.1mm
ha:attributes {
subc-role = y
}
x1 = 0.000mm
x2 = 0.000mm
y1 = 0.000mm
y2 = 1.000mm
}
}
}
ha:top-silkscreen {
lid = 1
ha:type {
top = 1
silk = 1
}
li:objects {
ha:text.28 {
x = 0.000mm
y = 0.000mm
rot = 0
scale = 100
string = %a.parent.refdes%
fid = 0
ha:flags {
floater = 1
dyntext = 1
}
}
ha:line.29 {
x1 = -0.850mm
y1 = -0.900mm
x2 = -0.850mm
y2 = 0.900mm
thickness = 0.200mm
clearance = 0
}
ha:line.30 {
x1 = 0.850mm
y1 = -0.900mm
x2 = 0.850mm
y2 = 0.900mm
thickness = 0.200mm
clearance = 0
}
}
}
ha:top-assembly {
lid = 2
ha:type {
top = 1
doc = 1
}
purpose = assy
li:objects {
ha:arc.31 {
x = 0.000mm
y = 0.000mm
width = 0.500mm
height = 0.500mm
thickness = 0.100mm
astart = 0
adelta = 360
clearance = 0
}
ha:line.32 {
x1 = -0.700mm
y1 = 0.000mm
x2 = 0.700mm
y2 = 0.000mm
thickness = 0.100mm
clearance = 0
}
ha:line.33 {
x1 = 0.000mm
y1 = -0.700mm
x2 = 0.000mm
y2 = 0.700mm
thickness = 0.100mm
clearance = 0
}
ha:text.34 {
x = 0.000mm
y = 0.000mm
rot = 90
scale = 53
string = RESC1608X55N
fid = 0
ha:flags {
floater = 1
}
}
ha:line.35 {
x1 = -0.400mm
y1 = -0.800mm
x2 = 0.400mm
y2 = -0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.36 {
x1 = 0.400mm
y1 = -0.800mm
x2 = 0.400mm
y2 = 0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.37 {
x1 = 0.400mm
y1 = 0.800mm
x2 = -0.400mm
y2 = 0.800mm
thickness = 0.100mm
clearance = 0
}
ha:line.38 {
x1 = -0.400mm
y1 = 0.800mm
x2 = -0.400mm
y2 = -0.800mm
thickness = 0.100mm
clearance = 0
}
}
}
ha:top-courtyard {
lid = 3
ha:type {
top = 1
doc = 1
}
purpose = ko.courtyard
li:objects {
ha:polygon.39 {
li:geometry {
ta:contour {
{ -0.730mm; -1.255mm }
{ -0.730mm; -0.980mm }
{ -0.730mm; 0.980mm }
{ -0.730mm; 1.255mm }
{ 0.730mm; 1.255mm }
{ 0.730mm; 0.980mm }
{ 0.730mm; -0.980mm }
{ 0.730mm; -1.255mm }
}
}
}
}
}
}
}
}
}

32
geda/symbols/CR2032.sym Normal file
View File

@ -0,0 +1,32 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
datasheet=https://insom.github.io/img/BTH2032-3.jpg
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_CR2032.fp
B 0 1600 700 -1200 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 500 2000 500 1600 1 0 0
{
T 500 1520 9 8 1 1 90 6 1
pinlabel=BAT+
T 500 1520 5 8 0 0 90 8 1
pintype=pwr
T 500 1680 5 8 1 1 90 0 1
pinnumber=1
T 500 1680 5 8 0 0 90 2 1
pinseq=1
}
P 500 0 500 400 1 0 0
{
T 500 480 9 8 1 1 90 0 1
pinlabel=BAT-
T 500 480 5 8 0 0 90 2 1
pintype=pwr
T 500 320 5 8 1 1 90 6 1
pinnumber=2
T 500 320 5 8 0 0 90 8 1
pinseq=2
}
T 0 1660 5 10 1 1 0 0 1
refdes=U?
T 560 340 9 10 1 1 0 2 1
device=CR2032

52
geda/symbols/LED0603.sym Normal file
View File

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

32
geda/symbols/R0603.sym Normal file
View File

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

View File

@ -0,0 +1,84 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
datasheet=https://datasheet.lcsc.com/szlcsc/1903251102_Jing-Extension-of-the-Electronic-Co-USB-A-F-900-Ordinary-buckle-Cracked-feet-Not-high-temperature_C2345.pdf
T 0 0 5 8 0 0 0 0 1
keywords=connector, USB
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_USB20_RECEPTACLE.fp
B 0 1900 1800 -1500 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 2200 1700 1800 1700 1 0 0
{
T 1520 1700 9 8 1 1 0 6 1
pinlabel=VBUS
T 1520 1700 5 8 0 0 0 8 1
pintype=pwr
T 2080 1700 5 8 1 1 0 0 1
pinnumber=1
T 2080 1700 5 8 0 0 0 2 1
pinseq=1
}
V 1700 1700 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2200 1500 1800 1500 1 0 0
{
T 1520 1500 9 8 1 1 0 6 1
pinlabel=D-
T 1520 1500 5 8 0 0 0 8 1
pintype=io
T 2080 1500 5 8 1 1 0 0 1
pinnumber=2
T 2080 1500 5 8 0 0 0 2 1
pinseq=2
}
V 1700 1500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2200 1300 1800 1300 1 0 0
{
T 1520 1300 9 8 1 1 0 6 1
pinlabel=D+
T 1520 1300 5 8 0 0 0 8 1
pintype=io
T 2080 1300 5 8 1 1 0 0 1
pinnumber=3
T 2080 1300 5 8 0 0 0 2 1
pinseq=3
}
V 1700 1300 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2200 1100 1800 1100 1 0 0
{
T 1520 1100 9 8 1 1 0 6 1
pinlabel=GND
T 1520 1100 5 8 0 0 0 8 1
pintype=pwr
T 2080 1100 5 8 1 1 0 0 1
pinnumber=4
T 2080 1100 5 8 0 0 0 2 1
pinseq=4
}
V 1700 1100 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 800 0 800 400 1 0 0
{
T 800 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 800 680 5 8 0 0 90 2 1
pintype=pas
T 800 120 5 8 1 1 90 6 1
pinnumber=5
T 800 120 5 8 0 0 90 8 1
pinseq=5
}
V 800 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1000 0 1000 400 1 0 0
{
T 1000 680 9 8 1 1 90 0 1
pinlabel=SHIELD
T 1000 680 5 8 0 0 90 2 1
pintype=pas
T 1000 120 5 8 1 1 90 6 1
pinnumber=6
T 1000 120 5 8 0 0 90 8 1
pinseq=6
}
V 1000 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
T 900 1960 5 10 1 1 0 3 1
refdes=J?
T 1060 340 9 10 1 1 0 2 1
device=USB20_RECEPTACLE

View File

@ -0,0 +1,120 @@
v 20150930 2
T 0 0 5 8 0 0 0 0 1
datasheet=https://www.aliexpress.com/item/32910334970.html
T 0 0 5 8 0 0 0 0 1
keywords=connector, usb
T 0 0 5 8 0 0 0 0 1
footprint=CONNECTOR_USB_2_MICRO-B.fp
B 0 2600 2200 -2200 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1
P 2600 2400 2200 2400 1 0 0
{
T 1920 2400 9 8 1 1 0 6 1
pinlabel=VBUS
T 1920 2400 5 8 0 0 0 8 1
pintype=pwr
T 2480 2400 5 8 1 1 0 0 1
pinnumber=1
T 2480 2400 5 8 0 0 0 2 1
pinseq=1
}
V 2100 2400 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2600 2200 2200 2200 1 0 0
{
T 1920 2200 9 8 1 1 0 6 1
pinlabel=D-
T 1920 2200 5 8 0 0 0 8 1
pintype=io
T 2480 2200 5 8 1 1 0 0 1
pinnumber=2
T 2480 2200 5 8 0 0 0 2 1
pinseq=2
}
V 2100 2200 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2600 2000 2200 2000 1 0 0
{
T 1920 2000 9 8 1 1 0 6 1
pinlabel=D+
T 1920 2000 5 8 0 0 0 8 1
pintype=io
T 2480 2000 5 8 1 1 0 0 1
pinnumber=3
T 2480 2000 5 8 0 0 0 2 1
pinseq=3
}
V 2100 2000 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2600 1800 2200 1800 1 0 0
{
T 1920 1800 9 8 1 1 0 6 1
pinlabel=ID
T 1920 1800 5 8 0 0 0 8 1
pintype=in
T 2480 1800 5 8 1 1 0 0 1
pinnumber=4
T 2480 1800 5 8 0 0 0 2 1
pinseq=4
}
V 2100 1800 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 2600 1600 2200 1600 1 0 0
{
T 1920 1600 9 8 1 1 0 6 1
pinlabel=GND
T 1920 1600 5 8 0 0 0 8 1
pintype=pwr
T 2480 1600 5 8 1 1 0 0 1
pinnumber=5
T 2480 1600 5 8 0 0 0 2 1
pinseq=5
}
V 2100 1600 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 800 0 800 400 1 0 0
{
T 800 680 9 8 1 1 90 0 1
pinlabel=MOUNTING_TAB
T 800 680 5 8 0 0 90 2 1
pintype=pas
T 800 120 5 8 1 1 90 6 1
pinnumber=6
T 800 120 5 8 0 0 90 8 1
pinseq=6
}
V 800 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1000 0 1000 400 1 0 0
{
T 1000 680 9 8 1 1 90 0 1
pinlabel=MOUNTING_TAB
T 1000 680 5 8 0 0 90 2 1
pintype=pas
T 1000 120 5 8 1 1 90 6 1
pinnumber=7
T 1000 120 5 8 0 0 90 8 1
pinseq=7
}
V 1000 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1200 0 1200 400 1 0 0
{
T 1200 680 9 8 1 1 90 0 1
pinlabel=MOUNTING_TAB
T 1200 680 5 8 0 0 90 2 1
pintype=pas
T 1200 120 5 8 1 1 90 6 1
pinnumber=8
T 1200 120 5 8 0 0 90 8 1
pinseq=8
}
V 1200 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 1400 0 1400 400 1 0 0
{
T 1400 680 9 8 1 1 90 0 1
pinlabel=MOUNTING_TAB
T 1400 680 5 8 0 0 90 2 1
pintype=pas
T 1400 120 5 8 1 1 90 6 1
pinnumber=9
T 1400 120 5 8 0 0 90 8 1
pinseq=9
}
V 1400 500 50 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
T 1100 2660 5 10 1 1 0 3 1
refdes=J?
T 1460 340 9 10 1 1 0 2 1
device=USB_2_MICRO-B

9030
micro-usb_cable_tester.lht Normal file

File diff suppressed because it is too large Load Diff

194
micro-usb_cable_tester.sch Normal file
View File

@ -0,0 +1,194 @@
v 20191003 2
C 40000 44500 1 0 0 title.sym
{
T 41000 45200 5 10 1 1 0 0 1
date=$date$
T 44300 45200 5 10 1 1 0 0 1
org=CuVoodoo
T 44300 44900 5 10 1 1 0 0 1
authors=King Kévin
T 43000 45700 5 14 1 1 0 4 1
title=micro-USB cable tester
T 41000 44900 5 10 1 1 0 0 1
version=$version$
T 41000 44600 5 10 1 1 0 0 1
revision=$revision$
T 44300 44600 5 10 1 1 0 0 1
licence=CERN OHL v.1.2
T 40000 46300 5 10 0 0 0 0 1
device=none
T 40000 46500 5 10 0 0 0 0 1
footprint=none
}
C 41200 47300 1 0 0 USB20_RECEPTACLE.sym
{
T 41200 47300 5 8 0 0 0 0 1
footprint=CONNECTOR_USB20_RECEPTACLE.lht
T 41300 47460 5 10 1 1 0 3 1
refdes=J2
T 43240 49260 5 10 1 1 180 2 1
device=USB_2_A_RECEPTACLE
T 41200 47300 5 10 0 0 0 0 1
lcsc-id=C2345
}
C 40800 46600 1 0 1 USB_2_MICRO-B.sym
{
T 40800 46600 5 8 0 0 0 6 1
footprint=CONNECTOR_USB_2_MICRO-B.lht
T 38800 46760 5 10 1 1 0 3 1
refdes=J1
T 41040 49260 5 10 1 1 180 2 1
device=USB_2_MICRO-B_RECEPTACLE
T 40800 46600 5 10 0 0 0 0 1
lcsc-id=C319170
}
C 36800 45900 1 270 0 battery-1.sym
{
T 37700 45600 5 10 0 0 270 0 1
device=BATTERY
T 37300 45700 5 10 1 1 0 0 1
refdes=B1
T 36800 45900 5 10 0 0 270 0 1
footprint=CONNECTOR_CR2032.lht
T 37300 45400 5 10 1 1 0 0 1
value=CR2032
T 36800 45900 5 10 0 0 0 0 1
lcsc-id=C70376
}
C 36900 44800 1 0 0 gnd-1.sym
C 36800 45800 1 0 0 vcc-1.sym
C 38100 47900 1 0 0 gnd-1.sym
C 38000 49000 1 0 0 vcc-1.sym
N 38200 49000 38200 48800 4
C 37300 48500 1 0 1 led-2.sym
{
T 36700 48600 5 10 1 1 0 6 1
refdes=D1
T 37200 49100 5 10 0 0 0 6 1
device=LED
T 37300 48500 5 10 0 0 0 6 1
footprint=LEDC1608X90M.lht
T 36700 48900 5 10 1 1 0 0 1
value=BC
}
C 36400 48500 1 180 1 led-2.sym
{
T 36700 48400 5 10 1 1 0 6 1
refdes=D2
T 36500 47900 5 10 0 0 180 6 1
device=LED
T 36400 48500 5 10 0 0 180 6 1
footprint=LEDC1608X90M.lht
T 36700 48000 5 10 1 1 0 0 1
value=OTG
}
C 37300 48500 1 0 0 resistor-1.sym
{
T 37600 48900 5 10 0 0 0 0 1
device=RESISTOR
T 37200 48600 5 10 1 1 0 0 1
refdes=R1
T 37300 48500 5 10 0 0 0 0 1
footprint=RESC1608X55M.lht
}
C 37300 48300 1 0 0 resistor-1.sym
{
T 37600 48700 5 10 0 0 0 0 1
device=RESISTOR
T 37200 48400 5 10 1 1 0 0 1
refdes=R2
T 37300 48300 5 10 0 0 0 0 1
footprint=RESC1608X55M.lht
}
C 36100 48700 1 270 0 gnd-1.sym
C 36400 48200 1 90 0 vcc-1.sym
C 39300 46300 1 0 0 gnd-1.sym
N 39400 46600 40000 46600 4
C 43100 47200 1 0 1 led-2.sym
{
T 42500 47300 5 10 1 1 0 6 1
refdes=D4
T 43000 47800 5 10 0 0 0 6 1
device=LED
T 43100 47200 5 10 0 0 0 6 1
footprint=LEDC1608X90M.lht
T 42300 47000 5 10 1 1 0 0 1
value=SHIELD
}
C 43100 47200 1 0 0 resistor-1.sym
{
T 43400 47600 5 10 0 0 0 0 1
device=RESISTOR
T 43000 47300 5 10 1 1 0 0 1
refdes=R4
T 43100 47200 5 10 0 0 0 0 1
footprint=RESC1608X55M.lht
}
C 44900 48500 1 180 0 led-2.sym
{
T 44300 48400 5 10 1 1 0 6 1
refdes=D5
T 44800 47900 5 10 0 0 180 0 1
device=LED
T 44900 48500 5 10 0 0 180 0 1
footprint=LEDC1608X90M.lht
T 44000 48100 5 10 1 1 180 6 1
value=POWER
}
C 44900 48300 1 0 0 resistor-1.sym
{
T 45200 48700 5 10 0 0 0 0 1
device=RESISTOR
T 44800 48400 5 10 1 1 0 0 1
refdes=R5
T 44900 48300 5 10 0 0 0 0 1
footprint=RESC1608X55M.lht
}
N 43400 49000 45800 49000 4
N 44000 47300 45800 47300 4
C 43400 48700 1 0 0 led-2.sym
{
T 43700 48800 5 10 1 1 0 6 1
refdes=D3
T 43500 49300 5 10 0 0 0 0 1
device=LED
T 43400 48700 5 10 0 0 0 0 1
footprint=LEDC1608X90M.lht
T 44000 49100 5 10 1 1 0 6 1
value=DATA
}
C 44300 48700 1 0 0 resistor-1.sym
{
T 44600 49100 5 10 0 0 0 0 1
device=RESISTOR
T 44200 48800 5 10 1 1 0 0 1
refdes=R3
T 44300 48700 5 10 0 0 0 0 1
footprint=RESC1608X55M.lht
}
C 43400 48500 1 0 0 nc-right-1.sym
{
T 43500 49000 5 10 0 0 0 0 1
value=NoConnection
T 43500 49200 5 10 0 0 0 0 1
device=DRC_Directive
T 43500 49800 5 10 0 0 0 0 1
symversion=1.1
}
N 44000 48400 43400 48400 4
N 45200 48800 45200 48600 4
N 45200 48600 44000 48600 4
N 44000 48600 44000 48400 4
N 45800 47300 45800 49000 4
B 36000 44500 10000 5500 3 10 1 0 -1 -1 0 -1 -1 -1 -1 -1
C 41800 46900 1 0 0 nc-bottom-1.sym
{
T 41800 47500 5 10 0 0 0 0 1
value=NoConnection
T 41800 47900 5 10 0 0 0 0 1
device=DRC_Directive
T 41800 48300 5 10 0 0 0 0 1
symversion=1.1
}
N 37000 45900 37000 45800 4
N 37000 45200 37000 45100 4

View File

@ -1,587 +0,0 @@
ha:pcb-rnd-board-v8 {
li:styles {
ha:Signal {
via_proto = 0
thickness = 6.0mil
text_thick = 0.0
text_scale = 100
clearance = 6.0mil
}
ha:Power {
via_proto = 1
thickness = 10.0mil
text_thick = 0.0
text_scale = 100
clearance = 10.0mil
}
ha:Fat {
via_proto = 2
thickness = 80.0mil
text_thick = 0.0
text_scale = 100
clearance = 25.0mil
}
ha:Sig-tight {
via_proto = 3
thickness = 10.0mil
text_thick = 0.0
text_scale = 100
clearance = 12.0mil
}
}
ha:meta {
ha:size {
thermal_scale = 0.500000
x = 100.0mm
y = 100.0mm
}
ha:grid {
spacing = 0.5mm
offs_x = 0.0
offs_y = 0.0
}
}
ha:data {
li:padstack_prototypes {
ha:ps_proto_v6.0 {
hdia=0.3mm; hplated=1; htop=0; hbottom=0;
li:shape {
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.6mm; }
ha:combining { }
ha:layer_mask {
copper = 1
top = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.6mm; }
ha:combining { }
ha:layer_mask {
bottom = 1
copper = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.6mm; }
ha:combining { }
ha:layer_mask {
copper = 1
intern = 1
}
clearance=0.0
}
}
}
ha:ps_proto_v6.1 {
hdia=0.5mm; hplated=1; htop=0; hbottom=0;
li:shape {
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.8mm; }
ha:combining { }
ha:layer_mask {
copper = 1
top = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.8mm; }
ha:combining { }
ha:layer_mask {
bottom = 1
copper = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=0.8mm; }
ha:combining { }
ha:layer_mask {
copper = 1
intern = 1
}
clearance=0.0
}
}
}
ha:ps_proto_v6.2 {
hdia=1.2mm; hplated=1; htop=0; hbottom=0;
li:shape {
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=3.5mm; }
ha:combining { }
ha:layer_mask {
copper = 1
top = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=3.5mm; }
ha:combining { }
ha:layer_mask {
bottom = 1
copper = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=3.5mm; }
ha:combining { }
ha:layer_mask {
copper = 1
intern = 1
}
clearance=0.0
}
}
}
ha:ps_proto_v6.3 {
hdia=0.8mm; hplated=1; htop=0; hbottom=0;
li:shape {
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=64.0mil; }
ha:combining { }
ha:layer_mask {
copper = 1
top = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=64.0mil; }
ha:combining { }
ha:layer_mask {
bottom = 1
copper = 1
}
clearance=0.0
}
ha:ps_shape_v4 {
ha:ps_circ { x=0.0; y=0.0; dia=64.0mil; }
ha:combining { }
ha:layer_mask {
copper = 1
intern = 1
}
clearance=0.0
}
}
}
}
li:objects {
}
li:layers {
ha:top-sig {
lid=0
group=3
ha:combining { }
ha:attributes {
{pcb-rnd::key::vis}={<Key>l; Shift<Key>t}
{pcb-rnd::key::select}={<Key>l; <Key>t}
}
li:objects {
}
color = {#238b27}
}
ha:bottom-sig {
lid=1
group=10
ha:combining { }
ha:attributes {
{pcb-rnd::key::vis}={<Key>l; Shift<Key>b}
{pcb-rnd::key::select}={<Key>l; <Key>b}
}
li:objects {
}
color = {#38ee39}
}
ha:top-gnd {
lid=2
group=3
ha:combining { }
li:objects {
}
color = {#104e8b}
}
ha:bottom-gnd {
lid=3
group=10
ha:combining { }
li:objects {
}
color = {#6164ff}
}
ha:outline {
lid=4
group=7
ha:combining { }
li:objects {
}
color = {#00868b}
}
ha:bottom-silk {
lid=5
group=12
ha:combining { auto=1; }
ha:attributes {
{pcb-rnd::key::vis}={<Key>l; Shift<Key>x}
{pcb-rnd::key::select}={<Key>l; <Key>x}
}
li:objects {
}
color = {#000000}
}
ha:top-silk {
lid=6
group=1
ha:combining { auto=1; }
ha:attributes {
{pcb-rnd::key::vis}={<Key>l; Shift<Key>s}
{pcb-rnd::key::select}={<Key>l; <Key>s}
}
li:objects {
}
color = {#000000}
}
ha:top-paste {
lid=7
group=0
ha:combining { auto=1; }
li:objects {
}
color = {#cd00cd}
}
ha:top-mask {
lid=8
group=2
ha:combining { sub=1; auto=1; }
li:objects {
}
color = {#ff0000}
}
ha:bottom-mask {
lid=9
group=11
ha:combining { sub=1; auto=1; }
li:objects {
}
color = {#ff0000}
}
ha:bottom-paste {
lid=10
group=13
ha:combining { auto=1; }
li:objects {
}
color = {#cd00cd}
}
ha:slot-plated {
lid=11
group=14
ha:combining { auto=1; }
li:objects {
}
color = {#8b7355}
}
ha:slot-unplated {
lid=12
group=15
ha:combining { auto=1; }
li:objects {
}
color = {#00868b}
}
ha:top-assy {
lid=13
group=16
ha:combining { }
li:objects {
}
color = {#444444}
}
ha:bot-assy {
lid=14
group=17
ha:combining { }
li:objects {
}
color = {#444444}
}
ha:fab {
lid=15
group=18
ha:combining { auto=1; }
li:objects {
}
color = {#222222}
}
ha:top-courtyard {
lid=16
group=8
ha:combining { }
li:objects {
}
color = {#104e8b}
}
ha:bot-courtyard {
lid=17
group=9
ha:combining { }
li:objects {
}
color = {#cd3700}
}
ha:top-pwr {
lid=18
group=3
ha:combining { }
li:objects {
}
color = {#c24744}
}
ha:bottom-pwr {
lid=19
group=10
ha:combining { }
li:objects {
}
color = {#ff5759}
}
}
}
ha:layer_stack {
li:groups {
ha:0 {
name = top_paste
ha:type { top=1; paste=1; }
li:layers { 7; }
}
ha:1 {
name = top_silk
ha:type { silk=1; top=1; }
li:layers { 6; }
}
ha:2 {
name = top_mask
ha:type { top=1; mask=1; }
li:layers { 8; }
}
ha:3 {
name = top_copper
ha:type { copper=1; top=1; }
li:layers { 0; 18; 2; }
}
ha:4 {
name = grp_4
ha:type { substrate=1; intern=1; }
li:layers { }
ha:attributes {
thickness={0.7375mm }
}
}
ha:5 {
name = grp_6
ha:type { substrate=1; intern=1; }
li:layers { }
ha:attributes {
thickness={0.125mm }
}
}
ha:6 {
name = grp_8
ha:type { substrate=1; intern=1; }
li:layers { }
ha:attributes {
thickness={0.7375mm }
}
}
ha:7 {
name = global_outline
ha:type { boundary=1; }
li:layers { 4; }
purpose = uroute
}
ha:8 {
name = top-courtyard
ha:type { top=1; doc=1; }
li:layers { 16; }
ha:attributes {
init-invis=true
}
purpose = ko.courtyard
}
ha:9 {
name = bot-courtyard
ha:type { bottom=1; doc=1; }
li:layers { 17; }
ha:attributes {
init-invis=true
}
purpose = ko.courtyard
}
ha:10 {
name = bottom_copper
ha:type { bottom=1; copper=1; }
li:layers { 1; 19; 3; }
}
ha:11 {
name = bottom_mask
ha:type { bottom=1; mask=1; }
li:layers { 9; }
}
ha:12 {
name = bottom_silk
ha:type { silk=1; bottom=1; }
li:layers { 5; }
}
ha:13 {
name = bottom_paste
ha:type { bottom=1; paste=1; }
li:layers { 10; }
}
ha:14 {
name = pmech
ha:type { mech=1; }
li:layers { 11; }
purpose = proute
}
ha:15 {
name = umech
ha:type { mech=1; }
li:layers { 12; }
purpose = uroute
}
ha:16 {
name = top_assy
ha:type { top=1; doc=1; }
li:layers { 13; }
ha:attributes {
init-invis=1
}
purpose = assy
}
ha:17 {
name = bot_assy
ha:type { bottom=1; doc=1; }
li:layers { 14; }
ha:attributes {
init-invis=1
}
purpose = assy
}
ha:18 {
name = fab
ha:type { top=1; doc=1; }
li:layers { 15; }
ha:attributes {
init-invis=1
}
purpose = fab
}
}
}
li:pcb-rnd-conf-v1 {
ha:overwrite {
ha:design {
via_proto = 1
text_font_id = 0
text_scale = 100
min_slk = 0.15240000 mm
text_thickness = 0
line_thickness = 10.00 mil
ha:drc {
min_ring = 0.15 mm
min_copper_overlap = 6.0 mil
min_drill = 0.3 mm
}
min_wid = 0.15240000 mm
bloat = 0.15240000 mm
clearance = 10.00 mil
}
ha:editor {
grid_unit = mm
grids_idx = 11
grid = 500.00 um
}
ha:rc {
li:library_search_paths {
$(rc.path.design)/coraleda/subc
$(rc.path.design)/coraleda/subc
?../pcblib
?~/pcblib/
$(rc.path.share)/pcblib
}
}
}
}
ha:pixmaps {
}
}

View File

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