kicad_mod = KicadMod(footprint_name)

        if rows == 1:
            rlabel = "single"
        elif rows == 2:
            rlabel = "double"

        kicad_mod.setDescription(
            "Through hole socket strip, {rows}x{pincount:02}, 2.00mm pitch, ".format(rows=rows, pincount=pincount)
            + rlabel
            + " row"
        )
        kicad_mod.setTags("socket strip " + rlabel + " row")

        # set general values
        kicad_mod.addText("reference", "REF**", {"x": 0, "y": -3}, "F.SilkS")
        kicad_mod.addText("value", footprint_name, {"x": 0, "y": -5}, "F.Fab")

        # add the pads
        for r in range(rows):
            for p in range(pincount):

                Y = r * pitch
                X = p * pitch

                num = r + 1 + (p * rows)

                if num == 1:
                    type = "rect"
                else:
                    type = "circle"
for pincount in range(2,16):

    part = "DF13C-{pincount:02}P-1.25V".format(pincount=pincount)
    
    footprint_name = "{0}_{1}_{2:02}x{3:.2f}mm_{4}".format(manu,part,pincount,pitch,suffix)

    print(footprint_name)
    
    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(tags)
    
    kicad_mod.setAttribute('smd')

    # 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)
    
예제 #3
0
    jst = "S{pincount:02}B-EH".format(pincount=pincount)
    
    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_EH_" + jst + "_{pincount:02}x2.50mm_Angled".format(pincount=pincount)
    
    print(footprint_name)
    
    A = (pincount - 1) * pitch
    B = A + 5.0

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST EH series connector, " + jst + ", 2.50mm pitch, side entry")
    kicad_mod.setTags('connector jst eh side horizontal angled')

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x':A/2, 'y':3}, 'F.SilkS')
    kicad_mod.addText('user', '%R', {'x':A/2, 'y':-2}, 'F.Fab')
    kicad_mod.addText('value', footprint_name, {'x':A/2, 'y':-8}, 'F.Fab')
    
    drill = 0.9

    dia = 1.85
    
    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {'x':dia, 'y':dia})
    
    x1 = -2.5
    y1 = -6.7
    x2 = x1 + B
    y2 = 1.5
    
    #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.15
    x1 -= out
    x2 += out
    y1 -= out
    y2 += out

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x':xMid, 'y':-2}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x':xMid, 'y':9}, 'F.Fab')

    dia = 1.35
    drill = 0.7

    y_spacing = 3.70


    # create odd numbered pads
    createNumberedPadsTHT(kicad_mod, ceil(pincount/2), pitch * 2, drill, {'x':dia, 'y':dia},  increment=2)
    #create even numbered pads
    createNumberedPadsTHT(kicad_mod, floor(pincount/2), pitch * 2, drill, {'x':dia, 'y':dia}, starting=2, increment=2, y_off=y_spacing, x_off=pitch)

    #add mounting holes
    kicad_mod.addMountingHole(
예제 #5
0
    kicad_mod.setCenterPos({'x': 0, 'y': 3.075})

    #draw outline on the F.Fab layer
    y1 = 4.25 / 2 + 2.25
    y2 = y1 - 4.25
    kicad_mod.addRectLine({
        'x': -B / 2,
        'y': y1
    }, {
        'x': B / 2,
        'y': y2
    }, '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,
parser.add_argument('-v', '--verbose', help='show extra information while generating the footprint', action='store_true') #TODO
args = parser.parse_args()

# http://www.jst-mfg.com/product/pdf/eng/ePH.pdf

pincount = int(args.pincount[0])

# Through-hole type shrouded header, Side entry type
footprint_name = 'JST_PH_S{pincount}B-PH-K_{pincount:02}x2.00mm_Angled'.format(pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/ePH.pdf")
kicad_mod.setTags('connector jst ph')

# set general values
kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-2.5}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x':(pincount-1)*2/2, 'y':7.5}, 'F.Fab')

# create Silkscreen
kicad_mod.addPolygoneLine([{'x':0.5, 'y':6.25}
                          ,{'x':0.5, 'y':2}
                          ,{'x':(pincount-1)*2-0.5, 'y':2}
                          ,{'x':(pincount-1)*2-0.5, 'y':6.25}]
                          ,'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{'x':-0.9, 'y':0.25}
                          ,{'x':-1.95+0.7, 'y':0.25}
                          ,{'x':-1.95+0.7, 'y':-1.35}
                          ,{'x':-1.95, 'y':-1.35}
                          ,{'x':-1.95, 'y':6.25}
                          ,{'x':(pincount-1)*2+1.95, 'y':6.25}
예제 #7
0
            'x': x1,
            'y': y1
        }, {
            'x': x2,
            'y': y2
        }, 'F.Fab', 0.1)

        #expand the outline a little bit
        out = 0.15
        x1 -= out
        x2 += out
        y1 -= out
        y2 += out

        # set general values
        kicad_mod.addText('reference', 'REF**', {'x': xMid, 'y': 2}, 'F.SilkS')
        kicad_mod.addText('user', '%R', {'x': xMid, 'y': -4.25}, 'F.Fab')
        kicad_mod.addText('value', footprint_name, {
            'x': xMid,
            'y': -6.5
        }, 'F.Fab')

        dia = 1.3
        drill = 0.7

        y_spacing = -2.0

        # create odd numbered pads
        createNumberedPadsTHT(kicad_mod,
                              ceil(pincount / 2),
                              pitch * 2,
args = parser.parse_args()

# http://www.jst-mfg.com/product/pdf/eng/ePH.pdf

pincount = int(args.pincount[0])

# Through-hole type shrouded header, Top entry type
footprint_name = 'JST_PH_B{pincount}B-PH-K_{pincount:02}x2.00mm_Straight'.format(
    pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/ePH.pdf")
kicad_mod.setTags('connector jst ph')

# set general values
kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -3}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {
    'x': (pincount - 1) * 2 / 2,
    'y': 4
}, 'F.Fab')

# create Silkscreen
kicad_mod.addRectLine({
    'x': -1.95,
    'y': 2.8
}, {
    'x': (pincount - 1) * 2 + 1.95,
    'y': -1.7
}, 'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{
예제 #9
0
end_pos_x = (pincount - 1) * pad_spacing

# Through-hole type shrouded header, Top entry type
footprint_name = 'Molex_KK_6410-{pincount:02g}'.format(
    pincount=pincount)  # TODO: name

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription(
    "Connector Headers with Friction Lock, 22-27-2{pincount:02g}1, http://www.molex.com/pdm_docs/sd/022272021_sd.pdf"
    .format(pincount=pincount))
kicad_mod.setTags(
    'connector molex kk_6410 22-27-2{pincount:02g}1'.format(pincount=pincount))

# set general values
kicad_mod.addText('reference', 'REF**', {
    'x': start_pos_x + 1,
    'y': -4.5
}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {
    'x': (pincount - 1) * pad_spacing / 2.,
    'y': 4.5
}, 'F.Fab')

# create Silkscreen

kicad_mod.addRectLine({
    'x': start_pos_x - 2.54 / 2 - 0.1,
    'y': -3.02
}, {
    'x': end_pos_x + 2.54 / 2 + 0.1,
    'y': 2.98
}, 'F.SilkS', 0.15)
예제 #10
0
    x2 = x1 + B

    xMid = x1 + B / 2

    y2 = 3.7 + 3.65
    y1 = y2 - 7.8 - 0.2

    #expand the outline a little bit
    out = 0.2
    x1 -= out
    x2 += out
    y1 -= out
    y2 += out

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x': xMid, 'y': -3}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x': xMid, 'y': 9}, 'F.Fab')

    dia = 1.25
    drill = 0.7

    y_spacing = 3.70

    # create odd numbered pads
    createNumberedPadsTHT(kicad_mod,
                          ceil(pincount / 2),
                          pitch * 2,
                          drill, {
                              'x': dia,
                              'y': dia
                          },
# http://www.molex.com/pdm_docs/sd/022272021_sd.pdf

pincount = int(args.pincount[0])
pad_spacing = 2.54
start_pos_x = 0
end_pos_x = (pincount-1)*pad_spacing

# Through-hole type shrouded header, Top entry type
footprint_name = 'Molex_KK_6410-{pincount:02g}'.format(pincount=pincount) # TODO: name

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("Connector Headers with Friction Lock, 22-27-2{pincount:02g}1, http://www.molex.com/pdm_docs/sd/022272021_sd.pdf".format(pincount=pincount))
kicad_mod.setTags('connector molex kk_6410 22-27-2{pincount:02g}1'.format(pincount=pincount))

# set general values
kicad_mod.addText('reference', 'REF**', {'x':start_pos_x+1, 'y':-4.5}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x':(pincount-1)*pad_spacing/2., 'y':4.5}, 'F.Fab')

# create Silkscreen

kicad_mod.addRectLine({'x':start_pos_x-2.54/2-0.1, 'y':-3.02}, {'x':end_pos_x+2.54/2+0.1, 'y':2.98}, 'F.SilkS', 0.15)

#ramps
if pincount <= 6:
    # single ramp
    kicad_mod.addPolygoneLine([{'x':start_pos_x, 'y':2.98}
                              ,{'x':start_pos_x, 'y':1.98}
                              ,{'x':end_pos_x, 'y':1.98}
                              ,{'x':end_pos_x, 'y':2.98}], 'F.SilkS', 0.15)
    kicad_mod.addPolygoneLine([{'x':start_pos_x, 'y':1.98}
                              ,{'x':start_pos_x+0.25, 'y':1.55}
예제 #12
0
start_pos_x = -(pincount - 1) * pad_spacing / 2.
end_pos_x = (pincount - 1) * pad_spacing / 2.

# SMT type shrouded header, Top entry type
footprint_name = 'JST_SH_SM{pincount:02g}B-SRSS-TB_{pincount:02g}x1.00mm_Angled'.format(
    pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/eSH.pdf")
kicad_mod.setAttribute('smd')
kicad_mod.setTags('connector jst sh')
kicad_mod.setCenterPos({'x': 0, 'y': 3.875 / 2})

# set general values
kicad_mod.addText('reference', 'REF**', {
    'x': start_pos_x,
    'y': -2 - 0.0625
}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {
    'x': 0,
    'y': 6.2 + 0.2375
}, 'F.Fab')

# create Silkscreen

kicad_mod.addLine({
    'x': start_pos_x - 0.4,
    'y': 4.575
}, {
    'x': end_pos_x + 0.4,
    'y': 4.575
}, 'F.SilkS', 0.15)
# http://www.farnell.com/datasheets/1520732.pdf

pincount = int(args.pincount[0])
pad_spacing = 2.54
start_pos_x = 0
end_pos_x = pad_spacing*(pincount-2)/2

# Through-hole type shrouded header, Top entry type
footprint_name = 'Multicomp_MC9A12-{pincount:02g}34_2x{pincount_half:02g}x2.54mm_Straight'.format(pincount=pincount, pincount_half=pincount/2) # TODO: name

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription('http://www.farnell.com/datasheets/1520732.pdf')
kicad_mod.setTags('connector multicomp MC9A MC9A12')

# set general values
kicad_mod.addText('reference', 'REF**', {'x':start_pos_x-3, 'y':-7}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x':end_pos_x/2., 'y':5}, 'F.Fab')

# create Silkscreen

# outline
kicad_mod.addRectLine({'x':start_pos_x-3.87-1.2, 'y':3.2}, {'x':end_pos_x+3.87+1.2, 'y':-pad_spacing-3.2}, 'F.SilkS', 0.15)

# slot(s)
if pincount < 60:
    kicad_mod.addPolygoneLine([{'x':((start_pos_x+end_pos_x)/2)-4.45/2, 'y':3.2}
                              ,{'x':((start_pos_x+end_pos_x)/2)-4.45/2, 'y':1.9}
                              ,{'x':start_pos_x-3.87, 'y':1.9}
                              ,{'x':start_pos_x-3.87, 'y':-pad_spacing-1.9}
                              ,{'x':end_pos_x+3.87, 'y':-pad_spacing-1.9}
                              ,{'x':end_pos_x+3.87, 'y':1.9}
pad_spacing = 1.
start_pos_x = -(pincount-1)*pad_spacing/2.
end_pos_x = (pincount-1)*pad_spacing/2.

# SMT type shrouded header, Top entry type
footprint_name = 'JST_SH_BM{pincount:02g}B-SRSS-TB_{pincount:02g}x1.00mm_Straight'.format(pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/eSH.pdf")
kicad_mod.setAttribute('smd')
kicad_mod.setTags('connector jst sh')
kicad_mod.setCenterPos({'x':0, 'y':2.525/2})

# set general values
kicad_mod.addText('reference', 'REF**', {'x':start_pos_x, 'y':-2-0.2375}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x':0, 'y':4.5+0.2625}, 'F.Fab')

# create Silkscreen
kicad_mod.addLine({'x':start_pos_x-0.4, 'y':-0.7}, {'x':end_pos_x+0.4, 'y':-0.7}, 'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{'x':start_pos_x-1.5, 'y':1.2}
                          ,{'x':start_pos_x-1.5, 'y':2.2}
                          ,{'x':start_pos_x-0.6, 'y':2.2}]
                          ,'F.SilkS', 0.15)

kicad_mod.addRectLine({'x':start_pos_x-1, 'y':2.2}, {'x':start_pos_x-1, 'y':1.2}, 'F.SilkS', 0.15)
kicad_mod.addRectLine({'x':start_pos_x-1, 'y':1.6}, {'x':start_pos_x-1.5, 'y':1.6}, 'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{'x':end_pos_x+1.5, 'y':1.2}
                          ,{'x':end_pos_x+1.5, 'y':2.2}
pincount = int(args.pincount[0])
pad_spacing = 2.54
start_pos_x = 0
end_pos_x = pad_spacing * (pincount - 2) / 2

# Through-hole type shrouded header, Top entry type
footprint_name = 'Multicomp_MC9A12-{pincount:02g}34_2x{pincount_half:02g}x2.54mm_Straight'.format(
    pincount=pincount, pincount_half=pincount / 2)  # TODO: name

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription('http://www.farnell.com/datasheets/1520732.pdf')
kicad_mod.setTags('connector multicomp MC9A MC9A12')

# set general values
kicad_mod.addText('reference', 'REF**', {
    'x': start_pos_x - 3,
    'y': -7
}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {
    'x': end_pos_x / 2.,
    'y': 5
}, 'F.Fab')

# create Silkscreen

# outline
kicad_mod.addRectLine({
    'x': start_pos_x - 3.87 - 1.2,
    'y': 3.2
}, {
    'x': end_pos_x + 3.87 + 1.2,
    'y': -pad_spacing - 3.2
pad_spacing = 2
start_pos_x = -(pincount-1)*pad_spacing/2
end_pos_x = (pincount-1)*pad_spacing/2

# SMT type shrouded header, Side entry type
footprint_name = 'JST_PH_S{pincount}B-PH-SM4-TB_{pincount:02}x2.00mm_Angled'.format(pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/ePH.pdf")
kicad_mod.setAttribute('smd')
kicad_mod.setTags('connector jst ph')
kicad_mod.setCenterPos({'x':0, 'y':5.55/2})

# set general values
kicad_mod.addText('reference', 'REF**', {'x':start_pos_x-0.5, 'y':-3-0.225}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x':0, 'y':8.5+0.275}, 'F.Fab')

# create Silkscreen

kicad_mod.addPolygoneLine([{'x':start_pos_x+0.5, 'y':7}
                          ,{'x':start_pos_x+0.5, 'y':6} # 2.75
                          ,{'x':end_pos_x-0.5, 'y':6}
                          ,{'x':end_pos_x-0.5, 'y':7}]
                          ,'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{'x':start_pos_x-0.9, 'y':1}
                          ,{'x':start_pos_x-2.95+0.8, 'y':1}
                          ,{'x':start_pos_x-2.95+0.8, 'y':-0.6}
                          ,{'x':start_pos_x-2.95, 'y':-0.6}
                          ,{'x':start_pos_x-2.95, 'y':3.5}]
예제 #17
0
for pincount in range(2,16):

    part = "DF13-{pincount:02}P-1.25DSA".format(pincount=pincount)
    
    footprint_name = "{0}_{1}_{2:02}x{3:.2f}mm_{4}".format(manu,part,pincount,pitch,suffix)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(tags)

    A = (pincount - 1) * pitch
    B = A + 2.9
    
    # set general values
    kicad_mod.addText('reference', 'REF**', {'x':A/2, 'y':-4}, 'F.SilkS')
    #kicad_mod.addText('user', '%R', {'x':A/2, 'y':-4}, 'F.Fab')
    kicad_mod.addText('value', footprint_name, {'x':A/2, 'y':2.5}, 'F.Fab')
    
    drill = 0.6

    x_dia = 0.95
    y_dia = 1.25
    
    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {'x':x_dia, 'y':y_dia})
    
    
    x1 = -(B-A) / 2
    y1 = -2.2
    x2 = x1 + B
    
    desc = "Molex Pico-EZmate series connector, 1.20mm pitch, side entry SMT, P/N: " + part
    tags = "connector molex pico ezmate side angled horizontal surface mount SMD SMT"

    footprint_name = "{0}_{1:02}x{2:.2f}mm_{3}".format(manu,pincount,pitch,suffix)
    
    print(footprint_name)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(tags)
    
    kicad_mod.setAttribute('smd')

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-3.75}, 'F.SilkS')
    #kicad_mod.addText('user', '%R', {'x':0, 'y':-4.5}, 'F.Fab')
    kicad_mod.addText('value', footprint_name, {'x':0, 'y':3.5}, 'F.Fab')
    
    #pin pad size
    pad_w = 0.7
    pad_h = 1.2  
    
    #component values
    A = (pincount - 1) * pitch
    B = A + 2.9
    
    # create pads
    createNumberedPadsSMD(kicad_mod, pincount, pitch, {'x':pad_w,'y':pad_h},-1.8875)
    
    #add mounting pads (no number)
예제 #19
0
    desc = "{0:} {1}".format(manu, series)
    desc += " series connector, {0:.2f}mm pitch, side entry SMT, P/N: {1:}".format(
        pitch, part)
    tags = "connector molex panelmate side angled horizontal surface mount SMD SMT"

    footprint_name = "{0}_{1:02}x{2:.2f}mm_{3}".format(manu + "_" + series,
                                                       pincount, pitch, suffix)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(tags)

    kicad_mod.setAttribute('smd')

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -4}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 7}, 'F.Fab')

    #pin pad size
    pad_w = 0.8
    pad_h = 2.0

    #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,
start_pos_x = -(pincount - 1) * pad_spacing / 2
end_pos_x = (pincount - 1) * pad_spacing / 2

# SMT type shrouded header, Top entry type
footprint_name = 'JST_PH_B{pincount}B-PH-SM4-TB_{pincount:02}x2.00mm_Straight'.format(
    pincount=pincount)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription("http://www.jst-mfg.com/product/pdf/eng/ePH.pdf")
kicad_mod.setAttribute('smd')
kicad_mod.setTags('connector jst ph')
kicad_mod.setCenterPos({'x': 0, 'y': (4.75 - 1.9 + 0.6) / 2})

# set general values
kicad_mod.addText('reference', 'REF**', {
    'x': start_pos_x - 0.5,
    'y': -3 - 0.275
}, 'F.SilkS')
kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 7 - 0.025}, 'F.Fab')

# create Silkscreen

kicad_mod.addPolygoneLine([{
    'x': start_pos_x - 3,
    'y': -1.3
}, {
    'x': start_pos_x - 3,
    'y': -1.9
}, {
    'x': end_pos_x + 3,
    'y': -1.9
}, {
        pitch, part)
    tags = "conn molex panelmate"

    footprint_name = "{0}-{1}_{2:02}x{3:.2f}mm_{4}".format(
        manu + "_" + series, part, pincount, pitch, suffix)

    print(footprint_name)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(tags)

    kicad_mod.setAttribute('smd')

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -3}, 'F.SilkS')
    #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, {
    B = int(B / 0.1) * 0.1

    jst_name = "SM{pincount:02}B-GHS-TB".format(pincount=pincount)

    # SMT type shrouded header,
    footprint_name = "JST_GH_" + jst_name + "_{pincount:02}x1.25mm_Angled".format(pincount=pincount)

    kicad_mod = KicadMod(footprint_name)
    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