2 # Copyright 2022 by Bdale Garbee <bdale@gag.com>. GPLv3
4 # Program to emit PCB footprint for U-Blox NINA-W131 WIFI module
7 # dimensions in mm from:
8 # NINA_W13_Datasheet_UBX_17006694-2324218.pdf
10 BodyLength = 10.6 # (A)
11 BodyWidth = 10.0 # (B)
13 KerfTab = 0.10 # (G) depanelizing residual
15 OuterPitch = 1.00 # (H) lateral and antenna row pin pitch
16 OuterWidth = 0.70 # (I)
17 OuterHeight = 1.15 # (J)
18 OuterEdge2pin1 = 0.45 # (D)
20 InnerPitch = 1.15 # (P) central area pin pitch
21 InnerSize = 0.70 # (O)
25 # we're going to use the 1/100 of a mil fundamental unit form
27 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
29 print('# author: Bdale Garbee')
30 print('# email: bdale@gag.com')
31 print('# dist-license: GPL 3')
32 print('# use-license: unlimited')
34 print('Element[0x0 "NINA-W131" "" "" 0 0 11000 0 0 100 0x0]')
37 #rows = ['A','B','C','D','E','F','G','H','J']
39 # rownum = rows.index(row) # rownum will run 0..8
40 # for col in range (1,10): # col wil run 1..9
41 # ThisPin = row+str(col)
42 # if ThisPin in ValidPin:
44 # mm2mils100((col-5) * PadSpacing), \
45 # mm2mils100((rownum-4) * PadSpacing), \
46 # mm2mils100((col-5) * PadSpacing), \
47 # mm2mils100((rownum-4) * PadSpacing), \
48 # mm2mils100(PadDiam), \
49 # mm2mils100(Clearance), \
51 # '"%s"' % ThisPin, '"%s"' % ThisPin, '""]')
53 print(' ElementLine[',\
54 mm2mils100(-BodyLength/2), \
55 mm2mils100(-BodyWidth/2), \
56 mm2mils100(-BodyLength/2), \
57 mm2mils100( BodyWidth/2), \
60 print(' ElementLine[',\
61 mm2mils100(-BodyLength/2), \
62 mm2mils100( BodyWidth/2), \
63 mm2mils100( BodyLength/2), \
64 mm2mils100( BodyWidth/2), \
67 print(' ElementLine[',\
68 mm2mils100( BodyLength/2), \
69 mm2mils100( BodyWidth/2), \
70 mm2mils100( BodyLength/2), \
71 mm2mils100(-BodyWidth/2), \
74 print(' ElementLine[',\
75 mm2mils100( BodyLength/2), \
76 mm2mils100(-BodyWidth/2), \
77 mm2mils100(-BodyLength/2), \
78 mm2mils100(-BodyWidth/2), \
81 # depanelization residuals
82 print(' ElementLine[',\
83 mm2mils100(-BodyLength/2-KerfTab), \
84 mm2mils100(-BodyWidth/2), \
85 mm2mils100(-BodyLength/2-KerfTab), \
86 mm2mils100(-BodyWidth/2+OuterHeight), \
89 print(' ElementLine[',\
90 mm2mils100(-BodyLength/2-KerfTab), \
91 mm2mils100(BodyWidth/2), \
92 mm2mils100(-BodyLength/2-KerfTab), \
93 mm2mils100(BodyWidth/2-OuterHeight), \
96 #print(' ElementArc[',\
97 # mm2mils100(-5 * PadSpacing), \
98 # mm2mils100(-5 * PadSpacing), \
99 # '500 500 0 360 1000 ]')