#kicad_mod.addText('user', '%R', {'x':0, 'y':-3}, 'F.Fab') kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 7}, 'F.Fab') #pin pad size pad_w = 0.8 pad_h = 1.9 #component values A = (pincount - 1) * pitch B = A + 6.4 kicad_mod.setCenterPos({'x': 0, 'y': 1.49}) # create pads createNumberedPadsSMD(kicad_mod, pincount, pitch, { 'x': pad_w, 'y': pad_h }, -1.9 / 2) #add mounting pads (no number) mpad_w = 1.3 mpad_h = 3.35 mpad_x = A / 2 + 2.2 + 1.3 / 2 mpad_y = 2.25 + 3.35 / 2 + 0.005 kicad_mod.addPad('""', 'smd', 'rect', { 'x': mpad_x, 'y': mpad_y }, { 'x': mpad_w, 'y': mpad_h }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
# set general values kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-3.1}, 'F.SilkS') kicad_mod.addText('value', footprint_name, {'x':0, 'y':4.9}, 'F.Fab') #pin pad size pad_w = 0.7 pad_h = 1.8 kicad_mod.setCenterPos({'x':0,'y':0.4}) #component values A = (pincount - 1) * pitch B = A + 2.9 # create pads createNumberedPadsSMD(kicad_mod, pincount, pitch, {'x':pad_w,'y':pad_h},-1) #add mounting pads (no number) mpad_w = 1.6 mpad_h = 2.2 mpad_x = (B/2) + (mpad_w/2) mpad_y = 1.8 kicad_mod.addPad('""', 'smd', 'rect', {'x':mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', {'x':-mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) A = (pincount - 1) * pitch B = A + 2.9 + 1.5 x1 = -B/2
kicad_mod.setTags( 'connector jst SHL SMT side horizontal entry 1.0mm pitch') kicad_mod.setCenterPos({'x': 0, 'y': -3.1125}) # set general values kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -6.5}, 'F.SilkS') kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 2}, 'F.Fab') #create outline # create Courtyard # output kicad model #create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, { 'x': pad_w, 'y': pad_h }, -4.675) #add mounting pads (no number) mpad_w = 1.0 mpad_h = 2.0 mpad_x = (B / 2) - (mpad_w / 2) mpad_y = -0.7 - 1.7 / 2 kicad_mod.addPad('""', 'smd', 'rect', { 'x': mpad_x, 'y': mpad_y }, { 'x': mpad_w, 'y': mpad_h }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
'y': 0 }, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine( { 'x': start_pos_x - 1.6 - 1.6 - 0.5, 'y': 5.6 + 0.275 + 0.25 }, { 'x': end_pos_x + 1.6 + 1.6 + 0.5, 'y': -1.9 - 0.275 - 0.25 }, 'F.CrtYd', 0.05) # create pads createNumberedPadsSMD(kicad_mod, pincount, 2, { 'x': 1, 'y': 5.5 }, 4.75 - 1.9) #TODO y kicad_mod.addPad('""', 'smd', 'rect', { 'x': start_pos_x - 1.6 - 1.6 / 2, 'y': 0.6 }, { 'x': 1.6, 'y': 3 }, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', { 'x': end_pos_x + 1.6 + 1.6 / 2, 'y': 0.6 }, { 'x': 1.6, 'y': 3 }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
}, 'F.Fab', 0.10) # set general values kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -1.5}, 'F.SilkS') kicad_mod.addText('user', '%R', {'x': 0, 'y': 1.25}, 'F.Fab') kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 6.75}, 'F.Fab') #create outline # create Courtyard # output kicad model #create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, { 'x': pad_w, 'y': pad_h }, 4.75, pad_number_offset=1) #add mounting pads (no number) mpad_w = 1.0 mpad_h = 2.8 mpad_x = (B / 2) - (mpad_w / 2) mpad_y = 1.4 kicad_mod.addPad('""', 'smd', 'rect', { 'x': mpad_x, 'y': mpad_y }, { 'x': mpad_w,
'y': y2 }, 'F.Fab', 0.15) #expand the outline a little bit out = 0.2 x1 -= out x2 += out y1 -= out y2 += out #pad size pw = 0.9 ph = 2.5 #create dem pads createNumberedPadsSMD(kicad_mod, pincount, -pitch, {'x': pw, 'y': ph}, py) #create some sweet, sweet mechanical pads kicad_mod.addMountingPad({'x': mx, 'y': my}, {'x': mw, 'y': mh}) kicad_mod.addMountingPad({'x': -mx, 'y': my}, {'x': mw, 'y': mh}) #add pin-1 designation xm = A / 2 + pw / 2 + 0.5 ym = py - 0.5 m = 0.3 poly = [{ 'x': xm,
kicad_mod.setDescription("JST GH series connector, " + jst_name + ", top entry type") kicad_mod.setAttribute('smd') kicad_mod.setTags('connector jst GH SMT top vertical entry 1.25mm pitch') kicad_mod.setCenterPos({'x':0, 'y':-3.075}) # set general values kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-7.5}, 'F.SilkS') kicad_mod.addText('value', footprint_name, {'x':0, 'y':1.5}, 'F.Fab') #create outline # create Courtyard # output kicad model #create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {'x':pad_w,'y':pad_h},-4.75) #add mounting pads (no number) mpad_w = 1.0 mpad_h = 2.8 mpad_x = (B/2) - (mpad_w/2) mpad_y = -1.4 kicad_mod.addPad('""', 'smd', 'rect', {'x':mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', {'x':-mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) #side-wall thickness T = 0.5 #add bottom line kicad_mod.addPolygoneLine([{'x':-B/2+mpad_w+0.6,'y':-0.1},
,{'x':end_pos_x+2.95-0.8, 'y':-0.6} ,{'x':end_pos_x+2.95, 'y':-0.6} ,{'x':end_pos_x+2.95, 'y':3.5}] ,'F.SilkS', 0.15) kicad_mod.addLine({'x':end_pos_x+2.95-0.8, 'y':1}, {'x':end_pos_x+2.95, 'y':1}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':start_pos_x-1.2, 'y':7}, {'x':end_pos_x+1.2, 'y':7}, 'F.SilkS', 0.15) kicad_mod.addRectLine({'x':start_pos_x-1.2, 'y':2.1}, {'x':start_pos_x-0.2, 'y':5.5}, 'F.SilkS', 0.15) kicad_mod.addRectLine({'x':end_pos_x+1.2, 'y':2.1}, {'x':end_pos_x+0.2, 'y':5.5}, 'F.SilkS', 0.15) for i in range(0, pincount-1): middle_x = start_pos_x+1+i*2 start_x = middle_x-0.1 end_x = middle_x+0.1 kicad_mod.addLine({'x':start_x, 'y':1}, {'x':end_x, 'y':1}, 'F.SilkS', 0.15) kicad_mod.addCircle({'x':start_pos_x-2.95+0.8+0.75, 'y':0.25}, {'x':0.25, 'y':0}, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine({'x':start_pos_x-1.6-1.6-0.5, 'y':7.25+0.275+0.25}, {'x':end_pos_x+1.6+1.6+0.5, 'y':-1.75-0.275-0.25}, 'F.CrtYd', 0.05) # create pads createNumberedPadsSMD(kicad_mod, pincount, 2, {'x':1, 'y':3.5}, 0) kicad_mod.addPad('""', 'smd', 'rect', {'x':start_pos_x-1.6-1.6/2, 'y':5.55}, {'x':1.6, 'y':3.4}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', {'x':end_pos_x+1.6+1.6/2, 'y':5.55}, {'x':1.6, 'y':3.4}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) # output kicad model print(kicad_mod)
# add outline to F.Fab kicad_mod.addRectLine({"x": x1, "y": y1}, {"x": x2, "y": y2}, "F.Fab", 0.15) # expand the outline a little bit out = 0.2 x1 -= out x2 += out y1 -= out y2 += out # pad size pw = 0.9 ph = 2.5 # create dem pads createNumberedPadsSMD(kicad_mod, pincount, -pitch, {"x": pw, "y": ph}, py) # create some sweet, sweet mechanical pads kicad_mod.addMountingPad({"x": mx, "y": my}, {"x": mw, "y": mh}) kicad_mod.addMountingPad({"x": -mx, "y": my}, {"x": mw, "y": mh}) # add pin-1 designation xm = A / 2 + pw / 2 + 0.5 ym = py - 0.5 m = 0.3 poly = [{"x": xm, "y": ym}, {"x": xm + 2 * m, "y": ym - m}, {"x": xm + 2 * m, "y": ym + m}, {"x": xm, "y": ym}] kicad_mod.addPolygoneLine(poly)
'y': 0 }, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine( { 'x': start_pos_x - 0.7 - 1.2 - 0.5, 'y': 4.775 + 0.5 + 0.0125 }, { 'x': end_pos_x + 0.7 + 1.2 + 0.5, 'y': -0.775 - 0.5 - 0.0375 }, 'F.CrtYd', 0.05) # create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, { 'x': 0.6, 'y': 1.55 }, 0) kicad_mod.addPad('""', 'smd', 'rect', { 'x': start_pos_x - 0.7 - 1.2 / 2, 'y': 3.875 }, { 'x': 1.2, 'y': 1.8 }, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', { 'x': end_pos_x + 0.7 + 1.2 / 2, 'y': 3.875 }, { 'x': 1.2, 'y': 1.8 }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
kicad_mod.addRectLine({'x':end_pos_x+1, 'y':1.6}, {'x':end_pos_x+1.5, 'y':1.6}, 'F.SilkS', 0.15) kicad_mod.addPolygoneLine([{'x':start_pos_x-0.4, 'y':0.2} ,{'x':start_pos_x-0.4, 'y':-0.3} ,{'x':end_pos_x+0.4, 'y':-0.3} ,{'x':end_pos_x+0.4, 'y':0.2}] ,'F.SilkS', 0.15) kicad_mod.addPolygoneLine([{'x':start_pos_x-0.4, 'y':0.8} ,{'x':start_pos_x-0.4, 'y':2.525-1.55/2-0.3} ,{'x':end_pos_x+0.4, 'y':2.525-1.55/2-0.3} ,{'x':end_pos_x+0.4, 'y':0.8}] ,'F.SilkS', 0.15) for i in range(0, pincount): middle_x = start_pos_x+i*pad_spacing kicad_mod.addLine({'x':middle_x, 'y':0.2}, {'x':middle_x, 'y':0.4}, 'F.SilkS', 0.15) kicad_mod.addCircle({'x':start_pos_x-1, 'y':2.2+0.65}, {'x':0.25, 'y':0}, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine({'x':start_pos_x-0.7-1.2-0.5, 'y':3.3+0.5+0.0125}, {'x':end_pos_x+0.7+1.2+0.5, 'y':-0.9-0.5-0.0375}, 'F.CrtYd', 0.05) # create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {'x':0.6, 'y':1.55}, 2.525) kicad_mod.addPad('""', 'smd', 'rect', {'x':start_pos_x-0.7-1.2/2, 'y':0}, {'x':1.2, 'y':1.8}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', {'x':end_pos_x+0.7+1.2/2, 'y':0}, {'x':1.2, 'y':1.8}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) # output kicad model print(kicad_mod)
y2 = -0.4 y1 = y2 - 5.8 #expand the outline a little bit out = 0.2 x1 -= out x2 += out y1 -= out y2 += out #pad size pw = 0.9 ph = 2.5 #create dem pads createNumberedPadsSMD(kicad_mod, pincount, -pitch, {'x': pw,'y': ph}, py) #create some sweet, sweet mechanical pads kicad_mod.addMountingPad( {'x': mx, 'y': my}, {'x': mw, 'y': mh} ) kicad_mod.addMountingPad( {'x': -mx, 'y': my}, {'x': mw, 'y': mh} ) #add pin-1 designation xm = A/2 ym = py - ph/2 - 0.5
kicad_mod.setDescription("JST GH series connector, " + jst_name + ", side entry type") kicad_mod.setAttribute("smd") kicad_mod.setTags("connector jst GH SMT side horizontal entry 1.25mm pitch") kicad_mod.setCenterPos({"x": 0, "y": -2.95}) # set general values kicad_mod.addText("reference", "REF**", {"x": 0, "y": -7.5}, "F.SilkS") kicad_mod.addText("value", footprint_name, {"x": 0, "y": 1.5}, "F.Fab") # create outline # create Courtyard # output kicad model # create pads createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {"x": pad_w, "y": pad_h}, -4.55) # add mounting pads (no number) mpad_w = 1.0 mpad_h = 2.8 mpad_x = (B / 2) - (mpad_w / 2) mpad_y = -1.35 kicad_mod.addPad( '""', "smd", "rect", {"x": mpad_x, "y": mpad_y}, {"x": mpad_w, "y": mpad_h}, 0, ["F.Cu", "F.Paste", "F.Mask"] ) kicad_mod.addPad( '""', "smd", "rect", {"x": -mpad_x, "y": mpad_y}, {"x": mpad_w, "y": mpad_h}, 0, ["F.Cu", "F.Paste", "F.Mask"] ) T = 0.5
,{'x':end_pos_x-0.5, 'y':-1.2} ,{'x':end_pos_x+1.2, 'y':-1.2} # +1.45 ,{'x':end_pos_x+1.2, 'y':2.3} ,{'x':end_pos_x+0.9, 'y':2.3}] ,'F.SilkS', 0.15) for i in range(0, pincount-1): middle_x = start_pos_x+1+i*2 start_x = middle_x-0.1 end_x = middle_x+0.1 kicad_mod.addLine({'x':start_x, 'y':3.1}, {'x':end_x, 'y':3.1}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':start_x, 'y':2.3}, {'x':end_x, 'y':2.3}, 'F.SilkS', 0.15) kicad_mod.addPolygoneLine([{'x':start_x, 'y':2.3} ,{'x':start_x, 'y':1.8} ,{'x':end_x, 'y':1.8} ,{'x':end_x, 'y':2.3}], 'F.SilkS', 0.15) kicad_mod.addLine({'x':middle_x, 'y':2.3}, {'x':middle_x, 'y':1.8}, 'F.SilkS', 0.15) kicad_mod.addCircle({'x':start_pos_x-2.95+0.8+0.75, 'y':3.1+0.75}, {'x':0.25, 'y':0}, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine({'x':start_pos_x-1.6-1.6-0.5, 'y':5.6+0.275 + 0.25}, {'x':end_pos_x+1.6+1.6+0.5, 'y':-1.9-0.275-0.25}, 'F.CrtYd', 0.05) # create pads createNumberedPadsSMD(kicad_mod, pincount, 2, {'x':1, 'y':5.5}, 4.75-1.9) #TODO y kicad_mod.addPad('""', 'smd', 'rect', {'x':start_pos_x-1.6-1.6/2, 'y':0.6}, {'x':1.6, 'y':3}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) kicad_mod.addPad('""', 'smd', 'rect', {'x':end_pos_x+1.6+1.6/2, 'y':0.6}, {'x':1.6, 'y':3}, 0, ['F.Cu', 'F.Paste', 'F.Mask']) # output kicad model print(kicad_mod)