footprint generator for NINA-W131 believed to be complete
authorBdale Garbee <bdale@gag.com>
Fri, 25 Nov 2022 05:24:35 +0000 (22:24 -0700)
committerBdale Garbee <bdale@gag.com>
Fri, 25 Nov 2022 05:24:35 +0000 (22:24 -0700)
packages/NINA-W131.py

index cf2d6dcdbe0c48df7d20073fcedab3398b93fa0f..2e0f67230752620ecf0791ae67409c93aad6bf6c 100755 (executable)
@@ -15,9 +15,12 @@ KerfTab = 0.10               # (G) depanelizing residual
 OuterPitch = 1.00      # (H) lateral and antenna row pin pitch
 OuterWidth = 0.70      # (I)
 OuterHeight = 1.15     # (J)
-OuterEdge2pin1 = 0.45  # (D)
-
-InnerPitch = 1.15      # (P) central area pin pitch
+OuterEdgeD = 0.45      # (D)
+OuterEdgeE = 0.30      # (E)
+InnerEdgeM = 1.45      # (M)
+InnerEdgeK = 2.78      # (K)
+InnerPitch = 1.1       # (Q) 
+GndPitch = 1.15                # (P) central area pin pitch
 InnerSize = 0.70       # (O)
 
 import sys
@@ -34,21 +37,104 @@ print('# use-license: unlimited')
 print('Element[0x0 "NINA-W131" "" "" 0 0 11000 0 0 100 0x0]')
 print("(")
 
-#rows = ['A','B','C','D','E','F','G','H','J']
-#for row in rows:
-#  rownum = rows.index(row)    # rownum will run 0..8
-#  for col in range (1,10):    # col wil run 1..9
-#    ThisPin = row+str(col)
-#    if ThisPin in ValidPin:
-#      print('   Pad[',\
-#        mm2mils100((col-5) * PadSpacing), \
-#        mm2mils100((rownum-4) * PadSpacing), \
-#        mm2mils100((col-5) * PadSpacing), \
-#        mm2mils100((rownum-4) * PadSpacing), \
-#        mm2mils100(PadDiam), \
-#        mm2mils100(Clearance), \
-#        mm2mils100(Mask), \
-#        '"%s"' % ThisPin, '"%s"' % ThisPin, '""]')
+# outer 2 long rows
+for pin in range (0,10):
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + OuterWidth/2 + pin*OuterPitch), \
+        mm2mils100(-BodyWidth/2 + OuterEdgeE + OuterWidth/2), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + OuterWidth/2 + pin*OuterPitch), \
+        mm2mils100(-BodyWidth/2 + OuterEdgeE + OuterHeight - OuterWidth/2), \
+        mm2mils100(OuterWidth), \
+        mm2mils100(OuterPitch - OuterWidth), \
+        mm2mils100(OuterWidth)+600, \
+        '"pin%i"' % (25 - pin), '"%i"' % (25 - pin), '"square"]')
+
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + OuterWidth/2 + pin*OuterPitch), \
+        mm2mils100(BodyWidth/2 - OuterEdgeE - OuterWidth/2), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + OuterWidth/2 + pin*OuterPitch), \
+        mm2mils100(BodyWidth/2 - OuterEdgeE - OuterHeight + OuterWidth/2), \
+        mm2mils100(OuterWidth), \
+        mm2mils100(OuterPitch - OuterWidth), \
+        mm2mils100(OuterWidth)+600, \
+        '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]')
+
+# outer 2 short rows
+for pin in range (0,5):
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeE + OuterWidth/2), \
+        mm2mils100((pin-2) * OuterPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeE + OuterHeight - OuterWidth/2), \
+        mm2mils100((pin-2) * OuterPitch), \
+        mm2mils100(OuterWidth), \
+        mm2mils100(OuterPitch - OuterWidth), \
+        mm2mils100(OuterWidth)+600, \
+        '"pin%i"' % (26 + pin), '"%i"' % (26 + pin), '"square"]')
+
+    print('   Pad[',\
+        mm2mils100(BodyLength/2 - OuterEdgeE - OuterWidth/2), \
+        mm2mils100((pin-2) * OuterPitch), \
+        mm2mils100(BodyLength/2 - OuterEdgeE - OuterHeight + OuterWidth/2), \
+        mm2mils100((pin-2) * OuterPitch), \
+        mm2mils100(OuterWidth), \
+        mm2mils100(OuterPitch - OuterWidth), \
+        mm2mils100(OuterWidth)+600, \
+        '"pin%i"' % (15 - pin), '"%i"' % (15 - pin), '"square"]')
+
+# active inner row
+for pin in range (0,6):
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeM + InnerSize/2), \
+        mm2mils100((pin-2.5) * InnerPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeM + InnerSize/2), \
+        mm2mils100((pin-2.5) * InnerPitch), \
+        mm2mils100(InnerSize), \
+        mm2mils100(InnerPitch - InnerSize), \
+        mm2mils100(InnerSize)+600, \
+        '"pin%i"' % (36 - pin), '"%i"' % (36 - pin), '"square"]')
+
+# gnd pads
+for pin in range (0,2):
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + InnerSize/2), \
+        mm2mils100((pin-0.5) * GndPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + InnerSize/2), \
+        mm2mils100((pin-0.5) * GndPitch), \
+        mm2mils100(InnerSize), \
+        mm2mils100(InnerPitch - InnerSize), \
+        mm2mils100(InnerSize)+600, \
+        '"pin37"', '"37"', '"square"]')
+
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch*2 + InnerSize/2), \
+        mm2mils100((pin-0.5) * GndPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch*2 + InnerSize/2), \
+        mm2mils100((pin-0.5) * GndPitch), \
+        mm2mils100(InnerSize), \
+        mm2mils100(InnerPitch - InnerSize), \
+        mm2mils100(InnerSize)+600, \
+        '"pin37"', '"37"', '"square"]')
+
+for pin in range (0,4):
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch + InnerSize/2), \
+        mm2mils100((pin-1.5) * GndPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch + InnerSize/2), \
+        mm2mils100((pin-1.5) * GndPitch), \
+        mm2mils100(InnerSize), \
+        mm2mils100(InnerPitch - InnerSize), \
+        mm2mils100(InnerSize)+600, \
+        '"pin37"', '"37"', '"square"]')
+
+    print('   Pad[',\
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch*3 + InnerSize/2), \
+        mm2mils100((pin-1.5) * GndPitch), \
+        mm2mils100(-BodyLength/2 + OuterEdgeD + InnerEdgeK + GndPitch*3 + InnerSize/2), \
+        mm2mils100((pin-1.5) * GndPitch), \
+        mm2mils100(InnerSize), \
+        mm2mils100(InnerPitch - InnerSize), \
+        mm2mils100(InnerSize)+600, \
+        '"pin37"', '"37"', '"square"]')
 
 print('   ElementLine[',\
         mm2mils100(-BodyLength/2), \