예제 #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()