コード例 #1
0
    def parse_footprint(self, filename):

        # logger.info('Footprint: {f:s}'.format(f=os.path.basename(filename)))
        try:
            footprint = KicadMod(filename)
        except FileNotFoundError:
            logger.fatal(
                "EXIT: problem reading footprint file {fn:s}".format(fn=filename)
            )
            sys.exit(1)
        try:
            long_reference = footprint.models[0]["file"]
        except IndexError:
            if footprint.attribute == "virtual":
                # count as model found
                self.model_found += 1
            else:
                logger.warning(
                    "- No model file specified in {fp:s}".format(
                        fp=os.path.basename(filename)
                    )
                )
                self.no_model_specified += 1
            return None

        try:
            # Accept both forward and backward slash characters in path
            long_reference = "/".join(long_reference.split("\\"))
            return os.path.basename(long_reference)
        # TODO: determine, which specific problem could happen above ("ValueError" is just a guess)
        except ValueError:
            logger.warning("- Invalid model reference {f:s}".format(f=long_reference))
            self.invalid_model_path += 1
            return None
コード例 #2
0
def check_library(filename: str, rules, metrics: List[str],
                  args) -> Tuple[int, int]:
    """
    Returns (error count, warning count)
    """

    if not os.path.exists(filename):
        printer.red("File does not exist: %s" % filename)
        return (1, 0)

    if not filename.endswith(".kicad_mod"):
        printer.red("File is not a .kicad_mod : %s" % filename)
        return (1, 0)

    if args.errors:
        module = KicadMod(filename)
    else:
        try:
            module = KicadMod(filename)
        except Exception as e:
            printer.red("Could not parse footprint: %s. (%s)" % (filename, e))
            if args.verbose:
                # printer.red("Error: " + str(e))
                traceback.print_exc()
            return (1, 0)

    if args.rotate != 0:
        module.rotateFootprint(int(args.rotate))
        printer.green(
            "rotated footprint by {deg} degrees".format(deg=int(args.rotate)))

    # check which kind of tests we want to run
    if args.unittest:
        (ec, wc) = do_unittest(module, rules, metrics)
    else:
        (ec, wc) = do_rulecheck(module, rules, metrics)

    # done checking the footpint
    metrics.append("{lib}.errors {n}".format(lib=module.name, n=ec))
    metrics.append("{lib}.warnings {n}".format(lib=module.name, n=wc))
    return (ec, wc)
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
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])

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}]
コード例 #4
0
# http://www.jst-mfg.com/product/pdf/eng/eZE.pdf

# ZE connector, top-entry SMD

pitch = 1.5

for pincount in range(2, 17):

    jst = "BM{pincount:02}B-ZESS-TBT".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Straight".format(pincount=pincount, pitch=pitch)

    print(footprint_name)
    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setAttribute("smd")  # this is an SMD part111one
    desc = "JST ZE series connector, " + jst + ", 1.50mm pitch, top entry surface mount"
    kicad_mod.setDescription(desc)
    kicad_mod.setTags("connector jst ze top vertical straight smt surface mount")

    # dimensions
    A = (pincount - 1) * 1.5
    B = A + 6

    # y-coords calculated based on drawing in datasheet
    # middle point of pads
    py = -6.7
    # middle point of mechanical pads
    my = -1.65
コード例 #5
0
    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25

    #A and B should be 0.1mm resolution
    A = int(A / 0.1) * 0.1
    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)

    print(footprint_name)

    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': -6.75}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 1.5}, 'F.Fab')

    #create outline
    # create Courtyard
    # output kicad model
コード例 #6
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 2.50

for pincount in range(2, 16):

    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)

    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': 0, 'y': 4}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 6}, 'F.Fab')

    drill = 0.9

    dia = 1.85

    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {
        'x': dia,
コード例 #7
0
pitch = 2.50

for pincount in range(2,16):

    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})
    
コード例 #8
0
pitch = 1.25

manu = "Hirose"

suffix = "Straight"

desc = "Hirose DF13 series connector, 1.25mm pitch, top entry PTH"
tags = "connector hirose df13 top straight vertical through thru hole"

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
import argparse
from kicad_mod import KicadMod, createNumberedPadsTHT

parser = argparse.ArgumentParser()
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
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, 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([{'x':0.5, 'y':-1.7}
                          ,{'x':0.5, 'y':-1.2}
                          ,{'x':-1.45, 'y':-1.2}
                          ,{'x':-1.45, 'y':2.3}
                          ,{'x':(pincount-1)*2+1.45, 'y':2.3}
コード例 #10
0
    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25

    #A and B should be 0.1mm resolution
    A = int(A / 0.1) * 0.1
    B = int(B / 0.1) * 0.1

    jst_name = "BM{pincount:02}B-GHS-TBT".format(pincount=pincount)

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

    print(footprint_name)

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

    #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,
コード例 #11
0
parser = argparse.ArgumentParser()
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
parser.add_argument('-v', '--verbose', help='show extra information while generating the footprint', action='store_true') #TODO
args = parser.parse_args()

# http://www.farnell.com/cad/360651.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_MC9A22-{pincount:02g}34_2x{pincount_half:02g}x2.54mm_Angled".format(pincount=pincount, pincount_half=pincount/2)

kicad_mod = KicadMod(footprint_name)
kicad_mod.setDescription('http://www.farnell.com/cad/360651.pdf')
kicad_mod.setTags('connector multicomp MC9A MC9A22')

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

# create Silkscreen

# outline

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


# slot(s)
コード例 #12
0
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
}, {
コード例 #13
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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


drill = 0.8
size = 1.35
pitch = 2.00

for rows in [1,2]:
    for pincount in range(2,41): #range(1,21):

        # Through-hole type shrouded header, Top entry type
        footprint_name = 'Pin_Header_Straight_{rows:01}x{pincount:02}_Pitch2.00mm'.format(rows=rows,pincount=pincount)

        kicad_mod = KicadMod(footprint_name)
        
        if rows == 1:
            rlabel = "single"
        elif rows == 2:
            rlabel = "double"
        
        kicad_mod.setDescription("Through hole pin header, {rows}x{pincount:02}, 2.00mm pitch, ".format(rows=rows,pincount=pincount) + rlabel + " row")
        kicad_mod.setTags("pin header " + rlabel + " row")

        # set general values
        kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-5}, 'F.SilkS')
        kicad_mod.addText('value', footprint_name, {'x':0, 'y':-3}, 'F.Fab')
        
        #add the pads
        for r in range(rows):
コード例 #14
0
# http://www.jst-mfg.com/product/pdf/eng/eZE.pdf

pitch = 1.5

for pincount in range(2, 17):

    jst = "S{pincount:02}B-ZESK-2D".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Angled".format(
        pincount=pincount, pitch=pitch)

    print(footprint_name)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST ZE series connector, " + jst +
                             ", 1.50mm pitch, side entry through hole")
    kicad_mod.setTags(
        'connector jst ze side horizontal angled tht through thru hole')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 4.5

    #outline
    x1 = -1.55 - 0.7
    x2 = x1 + B

    xMid = x1 + B / 2
コード例 #15
0
manu = "Hirose"

suffix = "Angled"

desc = "Hirose DF13 DS series connector, 1.25mm pitch, side entry PTH"
tags = "connector hirose df13 side angled horizontal through thru hole"

for pincount in range(2, 16):

    part = "DF13-{pincount:02}P-125DS".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)

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': 3.5}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x': 0, 'y': 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,
コード例 #16
0
    if pincount < 6:
        part += "00"
    else:
        part += "50"
    
    part += "{0:02}".format(pincount)
    
    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
コード例 #17
0
sys.path.append(os.path.join(sys.path[0],"..","..","kicad_mod"))

from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 2.50

for pincount in range(2,16):

    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)

    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':0, 'y':4}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x':0, 'y':6}, 'F.Fab')
    
    drill = 0.9

    dia = 1.85
    
    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {'x':dia, 'y':dia})
    
    A = (pincount - 1) * pitch
    pad_w = 0.6
    pad_h = 1.8

    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25
    
    #A and B should be 0.1mm resolution
    A = int(A/0.1) * 0.1
    B = int(B/0.1) * 0.1

    jst_name = "BM{pincount:02}B-GHS-TBT".format(pincount=pincount)

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

    kicad_mod = KicadMod(footprint_name)
    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
コード例 #19
0
    pad_w = 0.6
    pad_h = 1.8

    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25

    # A and B should be 0.1mm resolution
    A = int(A / 0.1) * 0.1
    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
コード例 #20
0
sys.path.append(os.path.join(sys.path[0],"..","..","kicad_mod"))

from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 2.50

for pincount in range(2,16):

    jst = "B{pincount:02}B-EH-A".format(pincount=pincount)
    
    # Through-hole type shrouded header, Top entry type
    footprint_name = "JST_EH_" + jst + "_{pincount:02}x2.50mm_Straight".format(pincount=pincount)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST EH series connector, " + jst + ", 2.50mm pitch, top entry")
    kicad_mod.setTags('connector jst eh top vertical straight')

    # 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')
    
    drill = 0.9

    dia = 1.85
    
    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {'x':dia, 'y':dia})
    
    A = (pincount - 1) * pitch
コード例 #21
0
# -*- coding: utf-8 -*-

import os
import re

from kicad_mod import KicadMod

dir_kicad_pins = "/usr/share/kicad/modules/Pin_Headers.pretty/"
dir_my_pins = "./"
re_filenames = re.compile(r"Pin_Header_Straight_(\d)x(\d\d).kicad_mod")

for filename in os.walk(dir_kicad_pins).next()[2]:
    matches = re_filenames.match(filename)
    if matches:

        module = KicadMod(dir_kicad_pins + filename)
        shape = matches.groups()

        # Change all drill sizes to 1mm
        for pad in module.pads:
            pad['drill']['size'] = {'x': 1., 'y': 1.}

        module.name = "pin-{}x{}-sq".format(shape[0], shape[1])
        module.description = "Header pin. 2.54mm pitch. 1mm drills. Shape {}x{}. Square pin 1.".format(
            shape[0], shape[1])
        module.value['value'] = module.name
        module.save(filename="{}{}.kicad_mod".format(dir_my_pins, module.name))

        # Now create a similar module without the square pin
        for pad in module.pads:
            pad['shape'] = 'oval'
コード例 #22
0
    help='show extra information while generating the footprint',
    action='store_true')  #TODO
args = parser.parse_args()

# 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
parser = argparse.ArgumentParser()
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
parser.add_argument('-v', '--verbose', help='show extra information while generating the footprint', action='store_true') #TODO
args = parser.parse_args()

# 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}
コード例 #24
0
minPins = 3

if boss: minPins = 2
for pincount in range(minPins, 17):

    if boss:
        suffix = "1D"
    else:
        suffix = "D"
    jst = "B{pincount:02}B-ZESK-{suff}".format(pincount=pincount, suff=suffix)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Straight".format(
        pincount=pincount, pitch=pitch)

    kicad_mod = KicadMod(footprint_name)
    desc = "JST ZE series connector, " + jst + ", 1.50mm pitch, top entry through hole"

    if boss:
        desc += " with boss"
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(
        'connector jst ze top vertical straight tht through thru hole')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 4.5

    #outline
    x1 = -1.55 - 0.7
    x2 = x1 + B
コード例 #25
0
pitch = 2.50

for pincount in range(2, 16):

    jst = "B{pincount:02}B-EH-A".format(pincount=pincount)

    # Through-hole type shrouded header, Top entry type
    footprint_name = "JST_EH_" + jst + "_{pincount:02}x2.50mm_Straight".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, top entry")
    kicad_mod.setTags("connector jst eh top vertical straight")

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

    drill = 0.9

    dia = 1.85

    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {"x": dia, "y": dia})

    x1 = -2.5
コード例 #26
0
pitch = 2.50

for pincount in range(2,16):

    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':0, 'y':3}, 'F.SilkS')
    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
コード例 #27
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 1.5

for pincount in range(2,17):

    jst = "S{pincount:02}B-ZESK-2D".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Angled".format(pincount=pincount, pitch=pitch)

    print(footprint_name)
    
    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST ZE series connector, " + jst + ", 1.50mm pitch, side entry through hole")
    kicad_mod.setTags('connector jst ze side horizontal angled tht through thru hole')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 4.5

    #outline
    x1 = -1.55 - 0.7
    x2 = x1 + B

    xMid = x1 + B/2

    y2 = 3.7 + 3.65
    y1 = y2 - 7.8 - 0.2
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, 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
}, {
コード例 #29
0
            suffix="1D"
            minPins = 2
        else:
            suffix="D"
            minPins=3
            
        if pincount < minPins:
            continue
            
        jst = "B{pincount:02}B-ZESK-{suff}".format(pincount=pincount,suff=suffix)

        # Through-hole type shrouded header, side entry type
        footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Straight".format(pincount=pincount, pitch=pitch)

        print(footprint_name)
        kicad_mod = KicadMod(footprint_name)
        desc = "JST ZE series connector, " + jst + ", 1.50mm pitch, top entry through hole"
        
        if boss:
            desc += " with boss"
        kicad_mod.setDescription(desc)
        kicad_mod.setTags('connector jst ze top vertical straight tht through thru hole')

        #dimensions
        A = (pincount - 1) * 1.5
        B = A + 4.5

        #outline
        x1 = -1.55 - 0.7
        x2 = x1 + B
コード例 #30
0
    help='show extra information while generating the footprint',
    action='store_true')  #TODO
args = parser.parse_args()

# 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')
コード例 #31
0
series = "Panelmate"

suffix = "Angled"


for pincount in [2,3,4,5,6,7,8,9,10,12,14,15,18,20,30]:

    part = "53780-{0:02}70".format(pincount)
    
    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
コード例 #32
0
    pad_h = 1.8

    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25

    #A and B should be 0.1mm resolution
    A = int(A / 0.1) * 0.1
    B = int(B / 0.1) * 0.1

    jst_name = "BM{pincount:02}B-GHS-TBT".format(pincount=pincount)

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

    kicad_mod = KicadMod(footprint_name)
    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
コード例 #33
0
from kicad_mod import KicadMod, createNumberedPadsSMD

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

#ZE connector, top-entry SMD

pitch = 1.5

for pincount in range(2,17):

    jst = "BM{pincount:02}B-ZESS-TBT".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Straight".format(pincount=pincount, pitch=pitch)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setAttribute('smd') #this is an SMD part111one
    desc = "JST ZE series connector, " + jst + ", 1.50mm pitch, top entry surface mount"
    kicad_mod.setDescription(desc)
    kicad_mod.setTags('connector jst ze top vertical straight smt surface mount')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 6
    
    #y-coords calculated based on drawing in datasheet
    #middle point of pads
    py = -6.7
    #middle point of mechanical pads
    my = -1.65
    
コード例 #34
0
# http://www.jst-mfg.com/product/pdf/eng/eZE.pdf

#ZE connector, top-entry SMD

pitch = 1.5

for pincount in range(2, 17):

    jst = "BM{pincount:02}B-ZESS-TBT".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Straight".format(
        pincount=pincount, pitch=pitch)

    print(footprint_name)
    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setAttribute('smd')  #this is an SMD part111one
    desc = "JST ZE series connector, " + jst + ", 1.50mm pitch, top entry surface mount"
    kicad_mod.setDescription(desc)
    kicad_mod.setTags(
        'connector jst ze top vertical straight smt surface mount')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 6

    #y-coords calculated based on drawing in datasheet
    #middle point of pads
    py = -6.7
    #middle point of mechanical pads
    my = -1.65
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
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/eSH.pdf

pincount = int(args.pincount[0])

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

    pad_w = 0.6
    pad_h = 1.4

    B = 2.8 + pincount
    A = (pincount - 1) * 1.0

    jst_name = "SM{pincount:02}B-SHLS-TF".format(pincount=pincount)

    # SMT type shrouded header, Side entry type (normal type)
    footprint_name = "JST_SHL_" + jst_name + "_{pincount:02}x1.00mm_Angled".format(pincount=pincount)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST SHL series connector, " + jst_name) 
    kicad_mod.setAttribute('smd')
    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
parser = argparse.ArgumentParser()
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
parser.add_argument('-v', '--verbose', help='show extra information while generating the footprint', action='store_true') #TODO
args = parser.parse_args()

# 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}
    action='store_true')  #TODO
args = parser.parse_args()

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

pincount = int(args.pincount[0])

pad_spacing = 2
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([{
コード例 #39
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

drill = 0.8
size = 1.35
pitch = 2.00

for rows in [1, 2]:
    for pincount in range(2, 41):  #range(1,21):

        # Through-hole type shrouded header, Top entry type
        footprint_name = 'Pin_Header_Straight_{rows:01}x{pincount:02}_Pitch2.00mm'.format(
            rows=rows, pincount=pincount)

        kicad_mod = KicadMod(footprint_name)

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

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

        # set general values
        kicad_mod.addText('reference', 'REF**', {'x': 0, 'y': -5}, 'F.SilkS')
        kicad_mod.addText('value', footprint_name, {'x': 0, 'y': -3}, 'F.Fab')
コード例 #40
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

drill = 0.8
size = 1.35
pitch = 2.00

for rows in [1, 2]:
    for pincount in range(2, 41):  #range(1,21):

        # Through-hole type shrouded header, Top entry type
        footprint_name = 'Socket_Strip_Straight_{rows:01}x{pincount:02}_Pitch2.00mm'.format(
            rows=rows, pincount=pincount)

        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')
コード例 #41
0
pitch = 2.50

for pincount in range(2, 16):

    jst = "B{pincount:02}B-EH-A".format(pincount=pincount)

    # Through-hole type shrouded header, Top entry type
    footprint_name = "JST_EH_" + jst + "_{pincount:02}x2.50mm_Straight".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, top entry")
    kicad_mod.setTags('connector jst eh top vertical straight')

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

    drill = 0.9

    dia = 1.85

    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {
        'x': dia,
コード例 #42
0
manu = "Hirose"

suffix = "Straight"

desc = "Hirose DF13 series connector, 1.25mm pitch, top entry SMT"
tags = "connector hirose df13 top straight vertical surface mount SMD SMT"

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})
    
コード例 #43
0
    action='store_true')  #TODO
args = parser.parse_args()

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

pincount = int(args.pincount[0])

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_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')
コード例 #44
0
# http://www.jst-mfg.com/product/pdf/eng/ePH.pdf


drill = 0.8
size = 1.35
pitch = 2.00

for rows in [1, 2]:
    for pincount in range(2, 41):  # range(1,21):

        # Through-hole type shrouded header, Top entry type
        footprint_name = "Socket_Strip_Straight_{rows:01}x{pincount:02}_Pitch2.00mm".format(
            rows=rows, pincount=pincount
        )

        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")
コード例 #45
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 1.5

for pincount in range(2, 17):

    jst = "S{pincount:02}B-ZESK-2D".format(pincount=pincount)

    # Through-hole type shrouded header, side entry type
    footprint_name = "JST_ZE_" + jst + "_{pincount:02}x{pitch:02}mm_Angled".format(
        pincount=pincount, pitch=pitch)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST ZE series connector, " + jst +
                             ", 1.50mm pitch, side entry through hole")
    kicad_mod.setTags(
        'connector jst ze side horizontal angled tht through thru hole')

    #dimensions
    A = (pincount - 1) * 1.5
    B = A + 4.5

    #outline
    x1 = -1.55 - 0.7
    x2 = x1 + B

    xMid = x1 + B / 2
コード例 #46
0
    start_pos_x = -(pincount - 1) * pad_spacing / 2
    end_pos_x = (pincount - 1) * pad_spacing / 2

    pad_w = 0.6
    pad_h = 1.4

    B = 2.8 + pincount
    A = (pincount - 1) * 1.0

    jst_name = "SM{pincount:02}B-SHLS-TF".format(pincount=pincount)

    # SMT type shrouded header, Side entry type (normal type)
    footprint_name = "JST_SHL_" + jst_name + "_{pincount:02}x1.00mm_Angled".format(
        pincount=pincount)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST SHL series connector, " + jst_name)
    kicad_mod.setAttribute('smd')
    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
コード例 #47
0
    if pincount < 6:
        part += "00"
    else:
        part += "50"

    part += "{0:02}".format(pincount)

    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
import argparse
from kicad_mod import KicadMod, createNumberedPadsTHT

parser = argparse.ArgumentParser()
parser.add_argument('pincount', help='number of pins of the jst connector', type=int, nargs=1)
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}
コード例 #49
0
from kicad_mod import KicadMod, createNumberedPadsTHT

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

pitch = 2.50

for pincount in range(2, 16):

    jst = "B{pincount:02}B-EH-A".format(pincount=pincount)

    # Through-hole type shrouded header, Top entry type
    footprint_name = "JST_EH_" + jst + "_{pincount:02}x2.50mm_Straight".format(
        pincount=pincount)

    kicad_mod = KicadMod(footprint_name)
    kicad_mod.setDescription("JST EH series connector, " + jst +
                             ", 2.50mm pitch, top entry")
    kicad_mod.setTags('connector jst eh top vertical straight')

    # 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')

    drill = 0.9

    dia = 1.85

    # create pads
    createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {
        'x': dia,
コード例 #50
0
for pincount in [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 30]:

    part = "53780-{0:02}70".format(pincount)

    desc = "{0:} {1}".format(manu, series)
    desc += " series connector, {0:.2f}mm pitch, side entry SMT, P/N: {1:}".format(
        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
コード例 #51
0
    A = (pincount - 1) * 1.25
    B = 3.25 + pincount * 1.25
    
    #A and B should be 0.1mm resolution
    A = int(A/0.1) * 0.1
    B = int(B/0.1) * 0.1

    jst_name = "BM{pincount:02}B-GHS-TBT".format(pincount=pincount)

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

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

    #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.15
    )
    
コード例 #52
0
    for f in os.listdir(lib_dir):

        # File types to copy across
        allowed = ['.md', '.txt', '.kicad_mod']

        if not any([f.lower().endswith(x) for x in allowed]):
            continue

        fp_file = os.path.join(lib_dir, f)

        files.append(fp_file)

        if f.endswith('.kicad_mod'):
            try:
                fp = KicadMod(fp_file)
                footprints.append(fp)
            except:
                print("Error loading {fp}".format(fp=fp_file))
                # Skip to the next one
                continue

    if args.download:

        archive_dir = os.path.abspath(os.path.join(args.download,
                                                   'footprints'))

        if not os.path.exists(archive_dir):
            os.makedirs(archive_dir)

        archive_file = lib_name + '.pretty.7z'
コード例 #53
0
pitch = 1.25

manu = "Hirose"

suffix = "Angled"

desc = "Hirose DF13 DS series connector, 1.25mm pitch, side entry PTH"
tags = "connector hirose df13 side angled horizontal through thru hole"

for pincount in range(2,16):

    part = "DF13-{pincount:02}P-125DS".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)

    # set general values
    kicad_mod.addText('reference', 'REF**', {'x':0, 'y':3.5}, 'F.SilkS')
    kicad_mod.addText('value', footprint_name, {'x':0, 'y':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})