Пример #1
0
def bb2_breakout():
    brd = cu.Board((30, 30),
                   trace=cu.mil(5),
                   space=cu.mil(5) * 2.0,
                   via_hole=0.2,
                   via=0.45,
                   via_space=cu.mil(5),
                   silk=cu.mil(6))

    dc = brd.DC((15, 15))
    efm8 = EFM8BB2(dc)
    efm8.setnames()
    outers = []
    for i in range(4):
        dc.left(90)
        d = dc.copy()
        d.forward(9).right(90)
        bar = dip.SIL(d, "5")
        outers += bar.pads

    for a, b in zip(efm8.pads[1:], outers):
        a.forward(1).meet(b)
        nm = a.name.replace("P", "")
        b.copy().w("l 90 f 2").text(nm)

    brd.outline()
    brd.save("bb2_breakout")
Пример #2
0
def proto1():
    brd = cu.Board((80, 50),
                   trace=cu.mil(6),
                   space=cu.mil(5) * 2.0,
                   via_hole=0.2,
                   via=0.45,
                   via_space=cu.mil(5),
                   silk=cu.mil(6))

    tu = brd.DC((1.4, 15))
    usb = USB(tu.copy().right(90))
    (aUSB, ) = usb.escape()

    ft230x = FT231X(tu.goxy(3.5, 8).copy().right(90))
    (aSER, bUSB) = ft230x.escape()
    # cc = [cu.C0402(tu.copy().goxy(-1 + 1.0 * i, -3.6).right(90), "0.1") for i in range(3)]
    # cc[0].pads[1].copy().goto(cc[2].pads[1]).wire()
    # cc[0].pads[1].w("o f 1").wire()

    dc = brd.DC((15, 15))
    efm8 = EFM8BB2(dc)
    efm8.setnames()

    ext = dip.SIL(brd.DC((72, 25)), "6")

    # Routing
    """
    aUSB.w("f 4").meet(bUSB)
    (ft230x.s("5V").setwidth(.2).w("o f .2").
     goto(cc[1].pads[0]).
     goto(cc[2].pads[0]).
     w("l 90 f 1.0 r 90 f 3").
     goto(usb.s("5V").w("f 1").wire())
    ).wire()
    # .wire()
    """

    brd.outline()
    brd.save("udriver")
Пример #3
0
    d = brd.DC((0, 0))
    d.w("f 34.849 r 45 f 21.228 r 45 f 78.995")
    # 5.1 mm radius
    cc = 2 * math.pi * 5.1
    for i in range(90):
        d.forward(cc / 360)
        d.right(1)
    d.w("f 44.760")
    d.outline()
    brd.hole((5.029, 33.122), 3.2, 7)

    def gnd(s):
        s.setname("GL2").thermal(1.1).wire(layer="GBL")

    # ------------------------------ RC2014 bus
    bus = dip.SIL(brd.DC((2.54 * 19.5, 1.715)).right(270), "39")
    nms = "a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 gnd 5v m1 rst clk int mreq wr rd iorq d0 d1 d2 d3 d4 d5 d6 d7 tx rx u1 u2 u3".split(
    )
    for (nm, p) in zip(nms, bus.pads):
        p.setname(nm)
        p.copy().w("l 90 f 2").text(nm.upper())
        if nm != "gnd":
            p.left(90).forward(1)
    gnd(bus.s("gnd"))

    def routel(layer, sigs):
        zsig = [bus.s(nm) for nm in sigs]
        for i, t in enumerate(zsig):
            t.setlayer(layer)
        cu.extend2(zsig)
        zsig0 = brd.enriver90(zsig, -90)
Пример #4
0
    brd = cu.Board((76, 76),
                   trace=cu.mil(5),
                   space=cu.mil(5) * 2.0,
                   via_hole=0.3,
                   via=0.6,
                   via_space=cu.mil(5),
                   silk=cu.mil(6))

    daz = Dazzler(brd.DC((33, 25)).right(90))
    daz.labels()
    # cu.C0402(brd.DC((70, 20)).right(90), '0.1 uF').escape_2layer()

    tt = [daz.s(nm).copy().inside() for nm in ("2", "1")]
    uart0 = brd.enriver(tt, 45).wire()

    conn = dip.SIL(brd.DC((66.5, 38)).left(180), "29")
    [p.setname(str(i)) for (i, p) in enumerate(conn.pads, 1)]
    for p in conn.pads:
        p.copy().goxy(-3, 0).text(str(p.name))
        l = labels.get(int(p.name), "")
        if l:
            p.copy().goxy(1, 0).ltext(l)
    [p.left(90) for p in conn.pads]
    # connb0 = brd.enriver(conn.pads[0:14][::-1], 45).wire()
    # connb1 = brd.enriver(conn.pads[14:][::-1], 45).wire()
    for i in range(1, 15):
        nm = str(i)
        conn.s(nm).forward(2).meet(daz.s(nm).outside().forward(2).wire())
    tt = [daz.s(str(i)) for i in range(15, 30)]
    for i, t in enumerate(tt):
        t.forward(1 + i * 1.2).right(90).forward(8.5)
Пример #5
0
                   silk=cu.mil(6))

    # Measurements from http://rc2014.co.uk/1377/module-template/

    d = brd.DC((0, 0))
    d.w("f 34.849 r 45 f 21.228 r 45 f 78.995")
    # 5.1 mm radius
    cc = 2 * math.pi * 5.1
    for i in range(90):
        d.forward(cc / 360)
        d.right(1)
    d.w("f 44.760")
    d.outline()
    brd.hole((5.029, 33.122), 3.2, 7)

    bus = dip.SIL(brd.DC((2.54 * 19.5, 1.715)).right(270), "39")
    nms = "a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 gnd 5v m1 rst clk int mreq wr rd iorq d0 d1 d2 d3 d4 d5 d6 d7 tx rx u1 u2 u3".split(
    )
    for (nm, p) in zip(nms, bus.pads):
        p.setname(nm)
        p.copy().w("l 90 f 2").text(nm.upper())

    b_names = "d7 d6 d5 d4 d3 d2 d1 d0 iorq wr int clk m1 a0 a1 a2 a3 a4 a5 a6 a7".split(
    )
    b_names = "a0 a1 a2 a3 a4 a5 a6 a7".split()
    zsig = [bus.s(nm) for nm in b_names]
    for i, t in enumerate(zsig):
        t.setlayer('GTL').w("l 90 f 1")
    cu.extend2(zsig)
    zsig0 = brd.enriver90(zsig, -90)
    zsig0.wire()