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")
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")
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)
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)
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()