r4998 - in developers/werner: . gta02-core gta02-core/components
werner at docs.openmoko.org
werner at docs.openmoko.org
Wed May 20 02:42:27 CEST 2009
Author: werner
Date: 2009-05-20 02:42:26 +0200 (Wed, 20 May 2009)
New Revision: 4998
Added:
developers/werner/gta02-core/
developers/werner/gta02-core/components/
developers/werner/gta02-core/components/device_sot.lib
developers/werner/gta02-core/components/dual_diode.lib
developers/werner/gta02-core/components/dual_trans.lib
developers/werner/gta02-core/components/kifps.pl
Log:
A few components and a footprint generator that may be useful for gta02-core.
The SOT symbols duplicate items in the KiCad library, but have a different
pin assignment. (Different between through-hole and SMT.)
Added: developers/werner/gta02-core/components/device_sot.lib
===================================================================
--- developers/werner/gta02-core/components/device_sot.lib (rev 0)
+++ developers/werner/gta02-core/components/device_sot.lib 2009-05-20 00:42:26 UTC (rev 4998)
@@ -0,0 +1,48 @@
+EESchema-LIBRARY Version 2.3 Date: 5/11/2006-01:52:43
+#
+# DIODE-SOT-AXC
+#
+DEF DIODE-SOT-AXC D 0 40 N N 1 F N
+F0 "D" 0 100 40 H V C C
+F1 "DIODE-SOT-AXC" 0 -100 40 H V C C
+DRAW
+P 3 0 1 0 -50 50 50 0 -50 -50 F
+P 2 0 1 0 50 50 50 -50 N
+X K 3 200 0 150 L 40 40 1 1 P
+X A 1 -200 0 150 R 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# NPN-SOT-BEC
+#
+DEF NPN-SOT-BEC Q 0 0 Y Y 1 F N
+F0 "Q" 150 0 50 H V C C
+F1 "NPN-SOT-BEC" -250 150 50 H V C C
+DRAW
+P 5 0 1 0 50 -100 100 -100 100 -50 50 -100 50 -100 N
+P 2 0 1 0 0 0 75 -75 N
+P 2 0 1 0 0 0 100 100 N
+P 2 0 1 0 0 100 0 -100 N
+X C 3 100 200 100 D 40 40 1 1 P
+X B 1 -200 0 200 R 40 40 1 1 I
+X E 2 100 -200 100 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# PNP-SOT-BEC
+#
+DEF PNP-SOT-BEC Q 0 0 Y Y 1 F N
+F0 "Q" 150 0 50 H V C C
+F1 "PNP-SOT-BEC" -250 150 50 H V C C
+DRAW
+P 2 0 1 0 25 -25 100 -100 N
+P 2 0 1 0 0 0 100 100 N
+P 2 0 1 0 0 100 0 -100 N
+P 4 0 1 0 0 0 50 0 0 -50 0 0 N
+X C 3 100 200 100 D 40 40 1 1 P
+X B 1 -200 0 200 R 40 40 1 1 I
+X E 2 100 -200 100 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+#End Library
Added: developers/werner/gta02-core/components/dual_diode.lib
===================================================================
--- developers/werner/gta02-core/components/dual_diode.lib (rev 0)
+++ developers/werner/gta02-core/components/dual_diode.lib 2009-05-20 00:42:26 UTC (rev 4998)
@@ -0,0 +1,157 @@
+EESchema-LIBRARY Version 2.3 Date: 28/6/2006-10:49:33
+#
+# DDCA
+#
+DEF DDCA D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDCA" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 51 50 151 0 51 -50 F
+P 3 0 1 0 -50 50 -150 0 -50 -50 F
+P 2 0 1 0 -200 0 -150 0 N
+P 2 0 1 0 -150 50 -150 -50 N
+P 3 0 1 0 50 0 -50 0 -50 0 N
+P 2 0 1 0 150 50 150 -50 N
+P 2 0 1 0 150 0 200 0 N
+S -250 100 250 -100 0 1 0 N
+X A 3 0 250 250 D 40 40 1 1 P
+X C1 1 -200 -250 250 U 40 40 1 1 P
+X C2 2 200 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DDCC
+#
+DEF DDCC D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDCC" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 149 50 49 0 149 -50 F
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+P 2 0 1 0 -50 50 -50 -50 N
+S -250 100 250 -100 0 1 0 N
+P 2 0 1 0 150 0 200 0 N
+P 2 0 1 0 -200 0 -150 0 N
+P 2 0 1 0 -50 0 50 0 N
+P 2 0 1 0 50 50 50 -50 N
+X CC 3 0 250 250 D 40 40 1 1 P
+X A1 1 -200 -250 250 U 40 40 1 1 P
+X A2 2 200 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DDSCHCA
+#
+DEF DDSCHCA D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDSCHCA" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 51 50 151 0 51 -50 F
+P 3 0 1 0 -50 50 -150 0 -50 -50 F
+S -250 100 250 -100 0 1 0 N
+P 2 0 1 0 200 0 150 0 N
+P 6 0 1 0 -125 25 -125 50 -150 50 -150 -50 -175 -50 -175 -25 N
+P 6 0 1 0 125 -25 125 -50 150 -50 150 50 175 50 175 25 N
+P 3 0 1 0 50 0 -50 0 -50 0 N
+P 2 0 1 0 -200 0 -150 0 N
+X A 3 0 250 250 D 40 40 1 1 P
+X C1 1 -200 -250 250 U 40 40 1 1 P
+X C2 2 199 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DDSCHCC
+#
+DEF DDSCHCC D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDSCHCC" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 149 50 49 0 149 -50 F
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+P 2 0 1 0 -50 0 50 0 N
+P 2 0 1 0 150 0 200 0 N
+P 6 0 1 0 25 -25 25 -50 50 -50 50 50 75 50 75 25 N
+P 6 0 1 0 -25 25 -25 50 -50 50 -50 -50 -75 -50 -75 -25 N
+P 2 0 1 0 -200 0 -150 0 N
+S -250 100 250 -100 0 1 0 N
+X CC 3 0 250 250 D 40 40 1 1 P
+X A1 1 -200 -250 250 U 40 40 1 1 P
+X A2 2 200 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DDSCHSER
+#
+DEF DDSCHSER D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDSCHSER" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 51 50 151 0 51 -50 F
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+S -250 100 250 -100 0 1 0 N
+P 2 0 1 0 200 0 150 0 N
+P 2 0 1 0 -200 0 -150 0 N
+P 6 0 1 0 -25 25 -25 50 -50 50 -50 -50 -75 -50 -75 -25 N
+P 6 0 1 0 125 -25 125 -50 150 -50 150 50 175 50 175 25 N
+P 2 0 1 0 50 0 -50 0 N
+X C1A2 3 0 250 250 D 40 40 1 1 P
+X A1 1 -200 -250 250 U 40 40 1 1 P
+X C2 2 200 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DDSER
+#
+DEF DDSER D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DDSER" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 51 50 151 0 51 -50 F
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+S -250 100 250 -100 0 1 0 N
+P 2 0 1 0 150 50 150 -50 N
+P 2 0 1 0 -50 50 -50 -50 N
+P 2 0 1 0 -200 0 -150 0 N
+P 2 0 1 0 -50 0 50 0 N
+P 2 0 1 0 150 0 200 0 N
+X C1A2 3 0 250 250 D 40 40 1 1 P
+X A1 1 -200 -250 250 U 40 40 1 1 P
+X C2 2 200 -250 250 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DS
+#
+DEF DS D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DS" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+P 2 0 1 0 -50 0 0 0 N
+P 2 0 1 0 -200 0 -150 0 N
+P 2 0 1 0 -50 50 -50 -50 N
+S -250 100 250 -100 0 1 0 N
+X CC 3 0 250 250 D 40 40 1 1 P
+X A 1 -200 -250 250 U 40 40 1 1 P
+X NC 2 200 -250 150 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# DSSCH
+#
+DEF DSSCH D 0 40 N N 1 F N
+F0 "D" -200 150 40 H V C C
+F1 "DSSCH" 0 -150 40 H V C C
+DRAW
+P 3 0 1 0 -150 50 -50 0 -150 -50 F
+P 2 0 1 0 0 0 -50 0 N
+P 6 0 1 0 -25 25 -25 50 -50 50 -50 -50 -75 -50 -75 -25 N
+P 2 0 1 0 -200 0 -150 0 N
+S -250 100 250 -100 0 1 0 N
+X CC 3 0 250 250 D 40 40 1 1 P
+X A 1 -200 -250 250 U 40 40 1 1 P
+X NC 2 200 -250 150 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+#End Library
Added: developers/werner/gta02-core/components/dual_trans.lib
===================================================================
--- developers/werner/gta02-core/components/dual_trans.lib (rev 0)
+++ developers/werner/gta02-core/components/dual_trans.lib 2009-05-20 00:42:26 UTC (rev 4998)
@@ -0,0 +1,223 @@
+EESchema-LIBRARY Version 2.3 Date: 28/6/2006-10:05:23
+#
+# XP01111
+#
+DEF XP01111 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01111" -300 -490 60 H V C C
+F7 "10k" -120 -150 40 V V C C
+F6 "10k" -120 150 40 V V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 2 0 0 0 -120 70 -120 -70 N
+S -160 -70 -80 -230 0 0 0 N
+P 2 0 0 0 -360 0 100 0 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 1 0 0 -300 60 -240 N
+P 4 0 1 0 80 -180 120 -220 60 -240 80 -180 N
+P 2 0 1 0 0 400 0 200 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 300 60 240 N
+P 5 0 1 0 60 240 120 220 80 180 60 240 60 240 N
+P 2 0 1 0 0 -200 0 -400 N
+P 2 0 1 0 100 -400 0 -300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 0 0 0 300 -200 300 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+S -160 230 -80 70 0 0 0 N
+P 2 0 0 0 -120 300 -120 230 N
+P 2 0 0 0 -120 -230 -120 -300 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+# XP01114
+#
+DEF XP01114 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01114" -300 -490 60 H V C C
+F7 "47k" -120 -150 40 V V C C
+F6 "47k" -120 150 40 V V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 2 0 0 0 -120 70 -120 -70 N
+S -160 -70 -80 -230 0 0 0 N
+P 2 0 0 0 -360 0 100 0 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 1 0 0 -300 60 -240 N
+P 4 0 1 0 80 -180 120 -220 60 -240 80 -180 N
+P 2 0 1 0 0 400 0 200 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 300 60 240 N
+P 5 0 1 0 60 240 120 220 80 180 60 240 60 240 N
+P 2 0 1 0 0 -200 0 -400 N
+P 2 0 1 0 100 -400 0 -300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 0 0 0 300 -200 300 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+S -160 230 -80 70 0 0 0 N
+P 2 0 0 0 -120 300 -120 230 N
+P 2 0 0 0 -120 -230 -120 -300 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+# XP01115
+#
+DEF XP01115 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01115" -300 -490 60 H V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 2 0 0 0 0 300 -200 300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 1 0 100 -400 0 -300 N
+P 2 0 1 0 0 -200 0 -400 N
+P 5 0 1 0 60 240 120 220 80 180 60 240 60 240 N
+P 2 0 1 0 0 300 60 240 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 400 0 200 N
+P 4 0 1 0 80 -180 120 -220 60 -240 80 -180 N
+P 2 0 1 0 0 -300 60 -240 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -360 0 100 0 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+# XP01211
+#
+DEF XP01211 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01211" -300 -490 60 H V C C
+F7 "10k" -120 -150 40 V V C C
+F6 "10k" -120 150 40 V V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 4 0 0 0 40 220 80 260 100 200 40 220 N
+P 2 0 0 0 -120 70 -120 -70 N
+S -160 -70 -80 -230 0 0 0 N
+P 2 0 0 0 -360 0 100 0 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 1 0 0 -300 60 -240 N
+P 2 0 1 0 0 400 0 200 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 300 60 240 N
+P 2 0 1 0 0 -200 0 -400 N
+P 2 0 1 0 100 -400 0 -300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 0 0 0 300 -200 300 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+S -160 230 -80 70 0 0 0 N
+P 2 0 0 0 -120 300 -120 230 N
+P 2 0 0 0 -120 -230 -120 -300 N
+P 4 0 0 0 40 -220 80 -260 100 -200 40 -220 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+# XP01214
+#
+DEF XP01214 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01214" -300 -490 60 H V C C
+F7 "47k" -120 -150 40 V V C C
+F6 "47k" -120 150 40 V V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 4 0 0 0 40 220 80 260 100 200 40 220 N
+P 2 0 0 0 -120 70 -120 -70 N
+S -160 -70 -80 -230 0 0 0 N
+P 2 0 0 0 -360 0 100 0 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 1 0 0 -300 60 -240 N
+P 2 0 1 0 0 400 0 200 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 300 60 240 N
+P 2 0 1 0 0 -200 0 -400 N
+P 2 0 1 0 100 -400 0 -300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 0 0 0 300 -200 300 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+S -160 230 -80 70 0 0 0 N
+P 2 0 0 0 -120 300 -120 230 N
+P 2 0 0 0 -120 -230 -120 -300 N
+P 4 0 0 0 40 -220 80 -260 100 -200 40 -220 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+# XP01215
+#
+DEF XP01215 U 0 0 Y Y 1 F N
+F0 "U" -500 510 60 H V C C
+F1 "XP01215" -300 -490 60 H V C C
+F4 "10k" -280 300 40 H V C C
+F5 "10k" -280 -300 40 H V C C
+DRAW
+P 4 0 0 0 40 220 80 260 100 200 40 220 N
+P 2 0 0 0 -360 0 100 0 N
+P 2 0 0 0 100 200 100 -200 N
+P 2 0 0 0 -200 -300 0 -300 N
+P 5 0 1 0 -360 -340 -360 -260 -200 -260 -200 -340 -360 -340 N
+P 2 0 1 0 0 -300 60 -240 N
+P 2 0 1 0 0 400 0 200 N
+P 2 0 1 0 0 300 100 400 N
+P 2 0 1 0 0 300 60 240 N
+P 2 0 1 0 0 -200 0 -400 N
+P 2 0 1 0 100 -400 0 -300 N
+P 5 0 1 0 -360 260 -360 340 -200 340 -200 260 -360 260 N
+P 2 0 0 0 0 300 -200 300 N
+P 3 0 0 0 100 400 100 500 180 500 N
+P 3 0 0 0 100 -400 100 -500 180 -500 N
+P 4 0 0 0 40 -220 80 -260 100 -200 40 -220 N
+X C2 4 300 -500 120 L 40 40 1 1 P
+X C1 5 300 500 120 L 40 40 1 1 P
+X B2 3 -550 -300 190 R 40 40 1 1 I
+X E 2 -550 0 190 R 40 40 1 1 P
+X B1 1 -550 300 190 R 40 40 1 1 I
+ENDDRAW
+ENDDEF
+#
+#End Library
Added: developers/werner/gta02-core/components/kifps.pl
===================================================================
--- developers/werner/gta02-core/components/kifps.pl (rev 0)
+++ developers/werner/gta02-core/components/kifps.pl 2009-05-20 00:42:26 UTC (rev 4998)
@@ -0,0 +1,936 @@
+#!/usr/bin/perl
+#
+# kifps.pl - Footprints for kicad
+#
+# Written 2006-2008 by Werner Almesberger
+# Copyright 2006-2008 Werner Almesberger
+#
+
+
+#
+# General parameters, in kicad units (1/10 mil)
+#
+# $LINE_WIDTH is the width of silk screen lines
+# $OUTER_MARGIN is the distance between pads and a silk screen surrounding the
+# package
+#
+
+$LINE_WIDTH = 50;
+$OUTER_MARGIN = 100;
+
+# The radio between the diameter of a hole and the copper ring surrounding it.
+# Recommended values are > 2 for epoxy, > 2.5. for pertinax.
+
+$COPPER_RATIO = 2.5;
+
+#
+# Units.
+#
+# Invoke &mm or &mil before issuing dimensions.
+# Low-level functions use &unit to make the appropriate conversion.
+# &unit_inv converts internal kicad units to the current unit.
+#
+
+sub mm
+{
+ $unit = 1000/2.54;
+}
+
+
+sub mil
+{
+ $unit = 10;
+}
+
+
+sub unit
+{
+ return $_[0]*$unit;
+}
+
+
+sub unit_inv
+{
+ return $_[0]/$unit;
+}
+
+
+#
+# Module assembly.
+#
+# &begin starts a new module.
+# &add adds a string to the current module.
+# &end closes the module.
+#
+
+
+sub add
+{
+ $modules{$current} .= "$_[0]\n";
+}
+
+
+sub begin
+{
+ local ($name,$descr) = @_;
+
+ $current = $name;
+ $pad = 1;
+ &add("\$MODULE $name");
+ &add(sprintf('Po 0 0 0 15 %08X 00000000 ~~',time));
+ &add("Li $name");
+ &add("Cd $descr");
+ &add("Sc 00000000");
+ &add("Op 0 0 0");
+ &add("At SMD");
+ &add("T0 0 0 200 200 0 40 N V 21 \"$name\"");
+ &add('T1 0 0 200 200 0 40 N I 21 "Val*"');
+}
+
+
+sub end
+{
+ &add("\$EndMODULE $current");
+}
+
+
+#
+# Pad and hole creation.
+#
+# &pad adds the next pad to the current module.
+# &pads adds a row of pads, specified by the number of pads in this row, the
+# pad geometry, the center of the row, and the vector from one pad center to
+# the next.
+# &pads4 adds four symmetric rows with counter-clockwise pin numbering.
+# &hole adds a circular hole.
+# &same decrements the pin number, such that the next pin will have the same
+# number as the previous pin.
+#
+# $x and $y are the coordinates of the pads's center.
+# $h and $w are the pads' height and width. They get translated to $px and $y,
+# which are the x and y size in the given orientation.
+# $cx and $cy specify the center of a row of pads.
+# $dx and $dy is the vector from one pad center to the next.
+# $d is the the hole diameter. The copper area is $d*$COPPER_RATIO.
+#
+
+
+sub pad_shape
+{
+ local ($px,$py,$x,$y,$shape) = @_;
+
+ &add('$PAD');
+ &add(sprintf("Sh \"$pad\" $shape %d %d 0 0 0",&unit($px),&unit($py)));
+ &add("At SMD N 00888000");
+ &add('Ne 0 ""');
+ &add(sprintf("Po %d %d",&unit($x),-&unit($y)));
+ &add('$EndPAD');
+ $pad++;
+}
+
+
+sub pad
+{
+ local ($px,$py,$x,$y) = @_;
+
+ &pad_shape($px,$py,$x,$y,"R");
+}
+
+
+sub pads
+{
+ local ($n,$px,$py,$cx,$cy,$dx,$dy) = @_;
+ local ($x,$y,$i);
+
+ $x = $cx-($n-1)/2*$dx;
+ $y = $cy-($n-1)/2*$dy;
+ for ($i = 0; $i != $n; $i++) {
+ &pad($px,$py,$x,$y);
+ $x += $dx;
+ $y += $dy;
+ }
+}
+
+
+sub pads4
+{
+ local ($n,$w,$h,$cx,$cy,$dx,$dy) = @_;
+
+ &pads($n,$h,$w,$cx,$cy,$dx,$dy);
+ &pads($n,$w,$h,-$cy,$cx,-$dy,$dx);
+ &pads($n,$h,$w,-$cx,-$cy,-$dx,-$dy);
+ &pads($n,$w,$h,$cy,-$cx,$dy,-$dx);
+}
+
+
+sub hole_ratio
+{
+ local ($d,$x,$y,$ratio) = @_;
+ local ($c) = $ratio*$d;
+
+ &add('$PAD');
+ &add(sprintf("Sh \"$pad\" C %d %d 0 0 0",&unit($c),&unit($c)));
+ &add(sprintf("Dr %d 0 0",&unit($d)));
+ &add("At STD N 00448001");
+ &add('Ne 0 ""');
+ &add(sprintf("Po %d %d",&unit($x),-&unit($y)));
+ &add('$EndPAD');
+ $pad++;
+}
+
+
+sub hole
+{
+ local ($d,$x,$y) = @_;
+
+ &hole_ratio($d,$x,$y,$COPPER_RATIO);
+}
+
+
+sub same
+{
+ $pad--;
+}
+
+
+#
+# Silk elements
+#
+# &line draws a line
+# &rect draws a rectangle
+# &circle draws a circle
+#
+
+
+sub line
+{
+ local ($x0,$y0,$x1,$y1) = @_;
+
+ &add(sprintf("DS %d %d %d %d $LINE_WIDTH 21",
+ &unit($x0),&unit(-$y0),&unit($x1),&unit(-$y1)));
+}
+
+
+sub rect
+{
+ local ($x0,$y0,$x1,$y1) = @_;
+
+ &line($x0,$y0,$x1,$y0);
+ &line($x1,$y0,$x1,$y1);
+ &line($x1,$y1,$x0,$y1);
+ &line($x0,$y1,$x0,$y0);
+}
+
+
+sub circle
+{
+ local ($x,$y,$r) = @_;
+
+ &add(sprintf("DC %d %d %d %d $LINE_WIDTH 21",
+ &unit($x),&unit(-$y),&unit($x+$r),&unit(-$y)));
+}
+
+
+#
+# Make chip components
+#
+
+sub chip
+{
+ local ($w,$h,$edge_dist) = @_;
+ local ($xpad);
+
+ &mm;
+ $xpad = ($edge_dist-$h)/2;
+ &rect(-$edge_dist/2-&unit_inv($OUTER_MARGIN),
+ -$w/2-&unit_inv($OUTER_MARGIN),
+ $edge_dist/2+&unit_inv($OUTER_MARGIN),
+ $w/2+&unit_inv($OUTER_MARGIN));
+ &pad($h,$w,-$xpad,0);
+ &pad($h,$w,$xpad,0);
+}
+
+
+#
+# Make SOT components
+#
+# &sot makes a SOT component
+# &sot_sq is like &sot, but the middle pad(s) are squeezed
+#
+
+sub sot_vec
+{
+ local ($h,$d,$edge_dist,$pkg_width, at w) = @_;
+ local ($x,$y);
+ local ($i);
+
+ &mm;
+ &rect(-$pkg_width/2,-$edge_dist/2-&unit_inv($OUTER_MARGIN),
+ $pkg_width/2,$edge_dist/2+&unit_inv($OUTER_MARGIN));
+
+ $x = -$d;
+ $y = -($edge_dist-$h)/2;
+ for ($i = 0; $i != 6; $i++) {
+ local $w = shift @w;
+ local $xoff = shift @w;
+
+ &pad($w,$h,$x+$xoff,$y) if $w;
+ if ($i < 2) {
+ $x += $d;
+ }
+ elsif ($i > 2) {
+ $x -= $d;
+ }
+ else {
+ $y = -$y;
+ }
+ }
+}
+
+
+sub sot
+{
+ local ($n,$w,$h,$d,$edge_dist,$pkg_width) = @_;
+ local (@vec);
+
+ if ($n == 3) {
+ @vec = ($w,0,0,0,$w,0,0,0,$w,0,0,0);
+ }
+ elsif ($n == 4) {
+ @vec = ($w,0,0,0,$w,0,$w,0,0,0,$w,0);
+ }
+ elsif ($n == 5) {
+ @vec = ($w,0,$w,0,$w,0,$w,0,0,0,$w,0);
+ }
+ elsif ($n == 6) {
+ @vec = ($w,0,$w,0,$w,0,$w,0,$w,0,$w,0);
+ }
+ else {
+ die;
+ }
+ &sot_vec($h,$d,$edge_dist,$pkg_width, at vec);
+}
+
+
+sub sod
+{
+ local ($len, $pad_len, $pad_width, $pkg_width) = @_;
+ local ($x, $y);
+
+ &mm;
+ $x = ($len+$pad_len)/2+&unit_inv($OUTER_MARGIN);
+ $y = $pkg_width/2;
+ &rect(-$x, -$y, $x, $y);
+ &pad($pad_len, $pad_width, -$len/2, 0);
+ &pad($pad_len, $pad_width, $len/2, 0);
+}
+
+
+#
+# Make QFN components
+#
+# &qfn makes a QFN component (with a center pad)
+#
+# $n is the number of pads
+# $d is the distance between pad centers
+# $edge_dist is the distance from one edge of the footprint to the opposite
+# edge.
+# $center_width is the width of the (quadratic) center pad
+#
+
+
+sub qfn
+{
+ local ($n,$w,$h,$d,$edge_dist,$center_width) = @_;
+ local ($boundary,$row_center);
+
+ &mm;
+
+ $boundary = $edge_dist/2+&unit_inv($OUTER_MARGIN);
+ $row_center = ($edge_dist-$h)/2;
+
+ &rect(-$boundary,-$boundary,$boundary,$boundary);
+ &circle(-$row_center,$row_center,$h/2);
+
+ &pads4($n/4,$w,$h,-$row_center,0,0,-$d);
+ &pad($center_width,$center_width,0,0);
+}
+
+
+#
+# The Keystone 1059, 1060, and 3003 battery holders
+#
+
+
+sub keystone_1059
+{
+ local ($epad) = (10); # enlarge pads by that many mils
+ local ($cd) = (70); # cut corner, distance from edge
+ local ($pr,$pd) = (40,50); # polarity markers, radius and distance
+ local ($x,$y);
+
+ &mil;
+
+ &hole(38,1060/2,100/2);
+ &same;
+ &hole(38,1060/2,-100/2);
+ &hole(38,-1060/2,0);
+
+ # zone for adhesive
+ &rect(-433/2,-275/2,433/2,275/2);
+
+ # the case
+ &rect(-866/2,-630/2,866/2,630/2);
+ &line(866/2,630/2-$cd,866/2-$cd,630/2);
+
+ foreach $x (-1,1) {
+ foreach $y (-1,1) {
+ &line($x*1118/2,$y*275/2,$x*866/2,$y*275/2);
+ }
+ }
+
+ # polarity markers
+ ($x,$y) = (866/2-$pd,-630/2+$pd);
+ &circle($x,$y,$pr);
+ &line($x-$pr,$y,$x+$pr,$y);
+ &line($x,$y-$pr,$x,$y+$pr);
+ ($x,$y) = (-$x,-$y);
+ &circle($x,$y,$pr);
+ &line($x,$y-$pr,$x,$y+$pr);
+
+ # the battery
+ &mm;
+ &circle(0,0,10);
+}
+
+
+sub keystone_1060
+{
+ local ($epad) = (10); # enlarge pads by that many mils
+ local ($cd) = (70); # cut corner, distance from edge
+ local ($pr,$pd) = (40,50); # polarity markers, radius and distance
+ local ($x,$y);
+
+ &mil;
+
+ &pad(102+$epad,142+$epad,1154/2,0)
+ &pad(102+$epad,142+$epad,-1154/2,0)
+
+ # zone for adhesive
+ &rect(-433/2,-275/2,433/2,275/2);
+
+ # the case
+ &rect(-866/2,-630/2,866/2,630/2);
+ &line(866/2,630/2-$cd,866/2-$cd,630/2);
+
+ foreach $x (-1,1) {
+ foreach $y (-1,1) {
+ &line($x*1118/2,$y*275/2,$x*866/2,$y*275/2);
+ }
+ }
+
+ # polarity markers
+ ($x,$y) = (866/2-$pd,-630/2+$pd);
+ &circle($x,$y,$pr);
+ &line($x-$pr,$y,$x+$pr,$y);
+ &line($x,$y-$pr,$x,$y+$pr);
+ ($x,$y) = (-$x,-$y);
+ &circle($x,$y,$pr);
+ &line($x,$y-$pr,$x,$y+$pr);
+
+ # the battery
+ &mm;
+ &circle(0,0,10);
+}
+
+
+sub keystone_3003
+{
+ local ($epad) = (2); # enlarge pads by that many mm
+ local ($pw) = 0.8; # width of the projection pads
+ local ($dh) = 1.85; # diameter of holes
+ local ($A,$B,$G) = (21.11,9.42,19.69); # see data sheet
+ local $back = 7.7; # width of the back holder
+ local ($x,$y);
+
+ &mm;
+
+ &hole_ratio($dh,-$A/2,0,2);
+ &same;
+ &hole_ratio($dh,$A/2,0,2);
+ &same;
+ &pad($back,$pw,0,-$A/2);
+
+ foreach $x (-1,1) {
+ foreach $y (-1,1) {
+ &same;
+ &pad($pw,($B-$dh)/2,$x*$A/2,$y*($B+$dh)/4);
+ }
+ }
+
+ &pad(3.96+$epad,3.96+$epad,0,0);
+
+ # the case
+ foreach $x (-1,1) {
+ &line(0,-$A/2,$x*$back/2,-$A/2);
+ &line($x*$back/2,-$A/2,$x*$A/2,-$B/2);
+ &line($x*$A/2,-$B/2,$x*$A/2,$B/2);
+ &line($x*$A/2,$B/2,$x*$A/2,$G-$A/2);
+ &line($x*$A/2,$G-$A/2,0,$G-$A/2);
+ }
+
+ # the battery
+ &circle(0,0,10);
+}
+
+
+sub probe_pad
+{
+ local ($px,$py) = @_;
+
+ &mil;
+ &pad_shape($px,$py,0,0,$px == $py ? "C" : "O");
+}
+
+
+sub probe_pad_mm
+{
+ local ($px,$py) = @_;
+
+ &mm;
+ &pad_shape($px,$py,0,0,$px == $py ? "C" : "O");
+}
+
+
+#
+# Hirose Mini-USB B receptacles.
+#
+
+
+sub ux60_mb_st
+{
+ local ($first, $x, $y, $n) = 1;
+ &mm;
+
+ # contacts
+ for ($n = 0; $n != 5; $n++) {
+ &pad(0.5, 2, $n*0.8-1.6, 8.65);
+ }
+
+ # case feet
+ foreach $x (-4.2, 4.2) {
+ foreach $y (3.1, 8.4) {
+ &same unless $first;
+ undef $first;
+ &pad(2.5, 2.2, $x, $y);
+ }
+ }
+
+ # keep-out area
+ &rect(-7.7/2, 0, 7.7/2, 6);
+}
+
+
+sub ux60ra_mb_st
+{
+ local ($first, $x, $y, $n) = 1;
+ &mm;
+
+ # contacts
+ for ($n = 0; $n != 5; $n++) {
+ &pad(0.5, 1.5, 1.6-$n*0.8, 6.4-0.75);
+ }
+
+ # case feet
+ foreach $x (-4.55, 4.55) {
+ &same unless $first;
+ undef $first;
+ &pad(2.4, 1.95, $x, 1.35);
+ &same;
+ &pad(2.4, 2.2, $x, 4.45);
+ }
+
+ # keep-out area
+ &rect(-6.7/2, 0, 6.7/2, 3.75);
+ &rect(-1, 3.75, 1, 4.9);
+
+ # case
+ &rect(-7.7/2, -2.25, 7.7/2, 8.4-2.25);
+}
+
+
+#
+# Hirose Micro-USB B receptacles.
+#
+
+
+sub zx62_b_pa
+{
+ local ($first, $x, $y, $n) = 1;
+ &mm;
+
+ # contacts
+ for ($n = 0; $n != 5; $n++) {
+ &pad(0.4, 1.35, 1.3-$n*0.65, 1.45+3.35-1.35/2);
+ }
+
+ # case feet
+ foreach $x (-1, 1) {
+ &same unless $first;
+ undef $first;
+ &pad(2.1, 1.6, $x*(8.3-2.1)/2, 1.45+3.35-0.8);
+ &same;
+ &pad(1.8, 1.9, $x*(9.8-1.8)/2, 1.45);
+ &same;
+ &pad(1.9, 1.9, $x*(4.3-1.9)/2, 1.45);
+ }
+
+ # keep-out area
+ &rect(-7.5/2, 0, 7.5/2, 1.45+3.35-1.35);
+
+ # case
+ &rect(-7.5/2, 1.45-2.15, 7.5/2, 1.45+(5-2.15));
+}
+
+
+sub zx62r_b_p
+{
+ local ($first, $x, $y, $n) = 1;
+ &mm;
+
+ # contacts
+ for ($n = 0; $n != 5; $n++) {
+ &pad(0.4, 1.35, 1.3-$n*0.65, 1.45+3.35-1.35/2);
+ }
+
+ # case feet
+ foreach $x (-1, 1) {
+ &same unless $first;
+ undef $first;
+ &pad(2.1, 2, $x*(8.3-2.1)/2, 1.45+3.35-1);
+ &same;
+ &pad(1.6, 1.9, $x*(9.8-1.6)/2, 1.45);
+ &same;
+ &pad(1.2, 1.9, $x*(2.9-1.2)/2, 1.45);
+ }
+
+ # keep-out area
+ &rect(-7.5/2, 0, 7.5/2, 1.45+3.35-1.35);
+
+ # case
+ &rect(-7.5/2, 1.45-2.15, 7.5/2, 1.45+(5-2.15));
+}
+
+
+sub zx62m_b_p
+{
+ local ($first, $x, $y, $n) = 1;
+ &mm;
+
+ # contacts
+ for ($n = 0; $n != 5; $n++) {
+ &pad(0.4, 1.05, 1.3-$n*0.65, 1.9+5.15-1.05/2);
+ }
+
+ # case feet
+ foreach $x (-1, 1) {
+ &same unless $first;
+ undef $first;
+ &pad(2, 1.5, $x*4.7/2, 1.9+7.15-1.5/2);
+ &same;
+ $w = (12-6.9)/2;
+ &pad($w, 2.4, $x*(12-$w)/2, 1.9+4.3);
+ &same;
+ $w = (12-8.8)/2;
+ &pad($w, 2.4, $x*(12-$w)/2, 1.9);
+ }
+
+ # hole
+ &rect(-7.8/2, 0, 7.8/2, 1.9+3.6);
+}
+
+
+#
+# SOT-143 is a little weird, with an asymmetric wide pin one.
+#
+
+
+sub sot_143
+{
+ local ($edge_dist) = 3.5;
+ local ($pkg_width) = 3.04;
+ local ($x,$y);
+ local ($i);
+
+ &mm;
+ &rect(-$pkg_width/2,-$edge_dist/2-&unit_inv($OUTER_MARGIN),
+ $pkg_width/2,$edge_dist/2+&unit_inv($OUTER_MARGIN));
+
+ &pad(1.1, 1.4, -1.9/2+0.2, -2.2/2);
+ &pad(0.9, 1.4, 1.9/2, -2.2/2);
+ &pad(0.9, 1.4, -1.9/2, 2.2/2);
+ &pad(0.9, 1.4, 1.9/2, 2.2/2);
+}
+
+
+sub relay_js_1c
+{
+ &mm;
+
+ &rect(-2.3, -8, 22-2.3, 8);
+ &hole(1, 0, 0);
+ &hole(1, 2, -6);
+ &hole(1, 2+12.2, -6);
+ &hole(1, 2+12.2, 6);
+ &hole(1, 2, 6);
+}
+
+
+#
+# Helper functions
+#
+
+
+sub module
+{
+ local ($name,$descr,$fn, at args) = @_;
+
+ &begin($name,$descr);
+ &$fn(@args);
+ &end;
+}
+
+
+sub dump
+{
+ print "PCBNEW-LibModule-V1 date\n";
+ print "\$INDEX\n";
+ print join("\n",sort keys %modules)."\n";
+ print "\$EndINDEX\n";
+ for (sort keys %modules) {
+ print $modules{$_};
+ }
+ print "\$EndLIBRARY\n";
+}
+
+
+###############################################################################
+#
+# The components
+#
+
+#
+# Most of the data is based on information from Philips Semiconductors,
+# http://www.semiconductors.philips.com/package/
+# Unless indicated otherwise, the land patterns are for reflow soldering.
+#
+
+#
+# Chip components
+#
+# We use the respective maximum values from
+# http://www.niccomp.com/Products/smt/NRC-LP0402.pdf
+# (C, D, and B)
+#
+# The dimensions are chosen for reflow soldering, with the maximum tolerated
+# pad size, which should also allow for manual soldering. For wave ("flow")
+# soldering, alterations may be necessary, see also:
+# http://download.siliconexpert.com/pdfs/Source/Passive/Resistor/PNS/Rev3/AOA0000CE1.pdf
+#
+
+# 0201
+&module("0201","20x10 mil chip component, for reflow",
+ *chip,0.35,0.3,0.9);
+
+# 0402
+&module("0402","40x20 mil chip component, for reflow",
+ *chip,0.6,0.5,1.6);
+
+# 0603
+&module("0603","60x30 mil chip component, for reflow",
+ *chip,0.8,0.7,2.2);
+
+# 0805
+&module("0805","80x50 mil chip component, for reflow",
+ *chip,1.2,0.8,2.9);
+
+# 1206
+&module("1206","120x60 mil chip component, for reflow",
+ *chip,1.4,1,4.4);
+
+# 1210
+&module("1210","120x100 mil chip component, for reflow",
+ *chip,2.4,1.2,4.4);
+
+# 2010
+&module("2010","200x100 mil chip component, for reflow",
+ *chip,2.6,1.5,6.6);
+
+# 2512
+&module("2512","250x120 mil chip component, for reflow",
+ *chip,3.2,2,8.4);
+
+# Epson FC-135 32.7680 kHz crystal
+# http://www.eea.epson.com/go/Prod_Admin/Categories/EEA/QD/Crystals/kHzSMD_Crystals/go/Resources/TestC2/FC135_145_255
+&module("FC-135","Epson FC-135 32.7680 kHz crystal, for reflow",
+ *chip,1.8,1,3.5);
+
+#
+# SOT (transistors, diodes, etc.)
+#
+
+# SOT-23, 2.9mm wide, 3 terminals, TO-236AB
+# http://www.nxp.com/acrobat/packages/footprint/SOT23-REFLOW-WAVE.pdf
+&module("SOT-23",
+ "Small Outline Transistor package, 3 pins, 0.95 mm pin pitch, for reflow",
+ *sot,3,0.7,0.6,0.95,2.7,3.3);
+
+# SOT-323, 2mm wide, 3 terminals, SC-70
+# http://www.semiconductors.philips.com/acrobat/packages/footprint/SOT323-(SC-70)-REFLOW-WAVE.pdf
+&module("SOT-323",
+ "Small Outline Transistor package, 3 pins, 0.65 mm pin pitch, for reflow",
+ *sot,3,0.6,0.55,0.65,2.4,2.35);
+
+# SOT-353, 2mm wide, 5 terminals, SC-70-5, SC-88A, S-Mini, UMT5
+# http://www.semiconductors.philips.com/acrobat/packages/footprint/SOT353-(SC-88A)-REFLOW.pdf
+&module("SOT-353",
+ "Small Outline Transistor package, 5 pins, 0.65 mm pin pitch, for reflow",
+ *sot_vec,0.6,0.65,2.4,2.35,
+ 0.6,-0.1,0.4,0,0.6,0.1,0.6,0.1,0,0,0.6,-0.1);
+
+# SOT-523, 1.6mm wide, 3 terminals, SC-75/SC-89
+# http://www.semiconductors.philips.com/acrobat/packages/footprint/FOOTPRINT-SC75-SC89-REFLOW.pdf
+&module("SOT-523",
+ "Small Outline Transistor package, 3 pins, 0.5 mm pin pitch, for reflow",
+ *sot,3,0.5,0.6,0.5,1.9,2);
+
+# SOT-553, 1.6mm wide, 5 terminals, SS-Mini
+# http://www.semiconductors.philips.com/acrobat/packages/footprint/FOOTPRINT-SOT665-REFLOW.pdf
+&module("SOT-553",
+ "Small Outline Transistor package, 5 pins, 0.5 mm pin pitch, for reflow",
+ *sot_vec,0.6,0.5,2.2,2,
+ 0.375,-0.0375,0.3,0,0.375,0.0375,0.45,0,0,0,0.45,0);
+
+# SC-89-6, 1.6mm wide, 6 terminals (SOT-563)
+# http://www.aosmd.com/pdfs/datasheet/AOZ8205.pdf
+&module("SC-89-6",
+ "Small Outline Transistor package, 6 pins, 0.5 mm pin pitch",
+ *sot,6,0.3,0.45,0.5,1.7,1.6);
+
+# SOD-323, 50mil long, 2 terminals
+# http://www.zetex.com/3.0/pdf/ZLLS400.pdf
+&module("SOD-323",
+ "Small Outline Diode package, 2 pins",
+ *sod, 2.3, 0.5, 1, 1.37)
+
+# VMD3/SSS-Mini, 1.2mm wide, 3 terminals
+# http://www.rohm.com/products/databook/di/pdf/rb715z.pdf
+&module("VMD3",
+ "Extra small power mold, 3 pins",
+ *sot_vec,0.45,0.4,1.6,1.2,
+ 0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.5, 0, 0, 0);
+
+# SOT-143, ~3mm wide, 4 terminals
+# http://littelfuse.com/data/en/Data_Sheets/SP05x_LeadFree.pdf
+&module("SOT-143",
+ "SOT-143, 4 pins",
+ *sot_143);
+
+#
+# QFN/MLF
+#
+
+# 16QFN, 4x4, HVQNF16, reflow only
+# Freescale MMA6231Q
+# http://www.semiconductors.philips.com/acrobat/packages/footprint/SOT629-1_fp_reflow.pdf
+&module("QFN16_4","QFN/MLF, 16 pins, 4x4 mm, center pad is 2x2 mm, reflow",
+ *qfn,16,0.3,1.1,0.65,5,2);
+
+# 16QFN, 6x6
+# Freescale MMA6231Q
+# http://www.freescale.com/files/sensors/doc/data_sheet/MMA6231Q.pdf
+&module("QFN16_6",
+ "QFN/MLF, 16 pins, 6x6 mm, center pad is 4.25x4.25 mm, reflow",
+ *qfn,16,0.5,0.55,1,6,4.25);
+
+# 24QFN, 4x4, HVQFN24, small center pad, reflow only
+# http://www.semiconductors.philips.com/package/SOT616-1.html
+&module("QFN24_4_21",
+ "QFN/MLF, 24 pins, 4x4 mm, center pad is 2.1x2.1 mm, reflow",
+ *qfn,24,0.24,0.9,0.5,5,2.1);
+
+# 28QFN, 5x5, medium center pad, Si Labs
+&module("QFN28_5_315",
+ "QFN/MLF, 28 pins, 5x5 mm, center pad is 3.15x3.15 mm",
+ *qfn,28,0.29,0.9,0.5,6,3.15);
+
+# 32QFN, 5x5, HVQFN32, large center pad, reflow only
+# http://www.semiconductors.philips.com/package/SOT617-3.html
+&module("QFN32_5_35",
+ "QFN/MLF, 32 pins, 5x5 mm, center pad is 3.5x3.5 mm, reflow",
+ *qfn,32,0.29,0.9,0.5,6,3.5);
+
+#
+# Battery holders
+#
+
+# Keystone 1059 and 1060
+# CR2032 battery holders, through-hole and SMT
+# http://www.keyelco.com/products/specs/spec138a.asp
+&module("Keystone_1059",
+ "Keystone CR2032 battery holder, isolated, through-hole",
+ *keystone_1059);
+&module("Keystone_1060",
+ "Keystone CR2032 battery holder, isolated, SMT, for reflow",
+ *keystone_1060);
+
+# Keystone 3003
+# CR2032 battery holder, through-hole
+# http://www.keyelco.com/products/specs/spec04.asp
+&module("Keystone_3003",
+ "Keystone CR2032 battery clip, negative terminal on PCB, through-hole",
+ *keystone_3003);
+
+#
+# Probe pads
+#
+&module("Pad_60x60",
+ "Rounded pad for probe clips, 60x60 mil",
+ *probe_pad,60,60);
+&module("Pad_120x60",
+ "Rounded pad for probe clips, 120x60 mil",
+ *probe_pad,120,60);
+&module("Pad_2mm",
+ "Rounded pad for probe clips, 2x0.5 mm",
+ *probe_pad_mm,2,0.5);
+
+#
+# Mini-USB connector
+#
+&module("UX60_MB_5ST",
+ "USB Mini-B SMT",
+ *ux60_mb_st);
+&module("UX60RA_MB_5ST",
+ "USB Mini-B SMT, reversed",
+ *ux60ra_mb_st);
+
+#
+# Micro-USB connector
+#
+&module("ZX62_B_5PA",
+ "USB Micro-B SMT, bottom",
+ *zx62_b_pa);
+&module("ZX62R_B_5P",
+ "USB Micro-B SMT, reversed",
+ *zx62r_b_p);
+&module("ZX62M_B_5P",
+ "USB Micro-B SMT, drop-in",
+ *zx62m_b_p);
+
+#
+# Relays
+#
+&module("JS_1C",
+ "SPDT relay, JS (22x16mm)",
+ *relay_js_1c);
+&dump;
Property changes on: developers/werner/gta02-core/components/kifps.pl
___________________________________________________________________
Name: svn:executable
+ *
More information about the commitlog
mailing list