]> git.gag.com Git - hw/altusmetrum/blob - packages/cubesatshield.5c
we don't actually use the reverse-side version of this connector!
[hw/altusmetrum] / packages / cubesatshield.5c
1 /*
2  * Copyright © 2013 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 /*
19  * This is a footprint for a fotofab shield mean for boards in the Fox-1
20  * satellite, which a cubesat.  The boards are 95mm square with corner 
21  * cutouts, the shield is 92mm square with similar cutouts.  To be able to
22  * "sweat solder" the shield down to the board, we're going to create what
23  * amounts to a 2mm wide opening in the solder mask over what is presumed to
24  * be ground plane with plenty of vias to whatever the real ground layer is
25  * in the stack.  The shield is intended to sit right on the center-line of
26  * the exposed surfaces.
27  */
28
29 load "footprint.5c";
30 import Footprint;
31
32 real pad_width = 2.00;          /* mm */
33 real shield_width = 92.0;
34 real edge_width = 61.0;
35 real corner_inset = 8.0;
36
37 element_start("cubesatshield");
38
39 /* 4 outer edges */
40 pad_mm(-shield_width / 2, 0,
41        pad_width, edge_width + pad_width,
42        "1", "1");
43
44 pad_mm( shield_width / 2, 0,
45        pad_width, edge_width + pad_width,
46        "1", "1");
47
48 pad_mm(0, -shield_width / 2, 
49        edge_width + pad_width, pad_width,
50        "1", "1");
51
52 pad_mm(0, shield_width / 2, 
53        edge_width + pad_width, pad_width,
54        "1", "1");
55
56 /* NW corner */
57 pad_mm((-shield_width + corner_inset) / 2, -edge_width /2,
58        corner_inset + pad_width, pad_width,
59        "1", "1");
60
61 pad_mm(-edge_width / 2, (-shield_width + corner_inset) / 2, 
62        pad_width, corner_inset + pad_width,
63        "1", "1");
64
65 /* NE corner */
66 pad_mm((shield_width - corner_inset) / 2, -edge_width /2,
67        corner_inset + pad_width, pad_width,
68        "1", "1");
69
70 pad_mm(edge_width / 2, (-shield_width + corner_inset) / 2, 
71        pad_width, corner_inset + pad_width,
72        "1", "1");
73
74 /* SW corner */
75 pad_mm((-shield_width + corner_inset) / 2, edge_width /2,
76        corner_inset + pad_width, pad_width,
77        "1", "1");
78
79 pad_mm(-edge_width / 2, (shield_width - corner_inset) / 2, 
80        pad_width, corner_inset + pad_width,
81        "1", "1");
82
83 /* SE corner */
84 pad_mm((shield_width - corner_inset) / 2, edge_width /2,
85        corner_inset + pad_width, pad_width,
86        "1", "1");
87
88 pad_mm(edge_width / 2, (shield_width - corner_inset) / 2, 
89        pad_width, corner_inset + pad_width,
90        "1", "1");
91
92
93 element_end();
94