pull in a 40-pin DIP footprint from old pcb library
[hw/altusmetrum] / packages / 11071.5c
1 /*
2  * Copyright © 2018 Bdale Garbee <bdale@gag.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 2 of the License.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
16  */
17
18 /* 4ucon 11071 USB micro B with solder tangs. Y origin is the board edge */
19
20 load "footprint.5c"
21 import Footprint;
22
23 real pad_width = 0.4;
24 real pad_height = 1.35;
25 real pad_spacing = 0.65;
26 real pad_y = 1.45 + 3.35 - pad_height/2;
27
28 real tab_width = 1.9;
29 real tab_height = 1.9;
30 real tab_x = 0.2 + tab_width / 2;
31 real tab_y = 1.45;
32
33 real tang_y = 1.45;
34 real tang_width = 0.45;
35 real tang_radius = tang_width / 2;
36 real tang_length = 1.55 - tang_width;
37 real tang_x = 6.4/2;
38 real tang_copper = (2.15 - 1.55) / 2;
39 real tang_clearance = 0.13;
40
41 real wing_width = 1.6;
42 real wing_height = 1.4;
43 real wing_x = 3.2;
44 real wing_y = 1.45 + 2.25;
45
46 element_start("11071");
47
48 pad_mm(pad_spacing* 2, pad_y, pad_width, pad_height, "VBUS", "1");
49 pad_mm(pad_spacing* 1, pad_y, pad_width, pad_height, "D-", "2");
50 pad_mm(pad_spacing* 0, pad_y, pad_width, pad_height, "D+", "3");
51 pad_mm(pad_spacing*-1, pad_y, pad_width, pad_height, "HS", "4");
52 pad_mm(pad_spacing*-2, pad_y, pad_width, pad_height, "GND", "5");
53
54 /* "Wings", which are next to the signal pads */
55
56 pad_mm_space(-wing_x, wing_y, wing_width, wing_height, 0, "", "G");
57 pad_mm_space( wing_x, wing_y, wing_width, wing_height, 0, "", "G");
58
59 /* Tabs under package */
60
61 pad_mm_space(-tab_x, tab_y, tab_width, tab_height, 0, "", "G");
62 pad_mm_space( tab_x, tab_y, tab_width, tab_height, 0, "", "G");
63
64 /* tangs at edges of package */
65
66 pin_mm_space(-tang_x, tang_y - tang_length / 2, tang_radius * 2, tang_copper, tang_clearance * 2, "GND", "5");
67 pin_mm_space(-tang_x, tang_y + tang_length / 2, tang_radius * 2, tang_copper, tang_clearance * 2, "GND", "5");
68 pad_mm_space_options(-tang_x, tang_y, tang_radius * 2 + tang_copper * 2, tang_length + tang_radius * 2 + tang_copper * 2, tang_clearance * 2, "GND", "5", "");
69 pad_mm_space_options(-tang_x, tang_y, tang_radius * 2 + tang_copper * 2, tang_length + tang_radius * 2 + tang_copper * 2, tang_clearance * 2, "GND", "5", "onsolder");
70
71 pin_mm_space( tang_x, tang_y - tang_length / 2, tang_radius * 2, tang_copper, tang_clearance * 2, "GND", "5");
72 pin_mm_space( tang_x, tang_y + tang_length / 2, tang_radius * 2, tang_copper, tang_clearance * 2, "GND", "5");
73 pad_mm_space_options(tang_x, tang_y, tang_radius * 2 + tang_copper * 2, tang_length + tang_radius * 2 + tang_copper * 2, tang_clearance * 2, "GND", "5", "");
74 pad_mm_space_options(tang_x, tang_y, tang_radius * 2 + tang_copper * 2, tang_length + tang_radius * 2 + tang_copper * 2, tang_clearance * 2, "GND", "5", "onsolder");
75
76 element_end();