From 3e1a1c268d93fd2d8515bff05d7d701a67736406 Mon Sep 17 00:00:00 2001 From: Neil Gershenfeld <gersh@cba.mit.edu> Date: Sat, 14 Dec 2019 17:21:55 -0500 Subject: [PATCH] wip --- python/pcb.py | 159 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 157 insertions(+), 2 deletions(-) diff --git a/python/pcb.py b/python/pcb.py index 516e579..1cdd738 100755 --- a/python/pcb.py +++ b/python/pcb.py @@ -20,8 +20,8 @@ # uncomment for desired output: # -output = "top, labels, and exterior" -#output = "top, labels, holes, and exterior" +#output = "top, labels, and exterior" +output = "top, labels, holes, and exterior" #output = "top, bottom, labels, and exterior" #output = "top, bottom, labels, holes, and exterior" #output = "top traces" @@ -2288,6 +2288,53 @@ class header_LCD(part): self.pad.append(point(-.107,.2,0)) self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND\n1')) +class header_serial_reverse(part): + # + # serial cable header, reverse for female connector + # GCT BG300-06-A-L-A + # + def __init__(self,value=''): + self.value = value + self.pad = [point(0,0,0)] + self.labels = [] + # + # pin 1: GND + # + self.shape = translate(pad_header,0,-.25,0) + self.shape = add(self.shape,cylinder(-.05,-.25,0,0,.025)) + self.pad.append(point(0,-.25,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND')) + # + # pin 2: CTS (brown) + # + self.shape = add(self.shape,translate(pad_header,0,-.15,0)) + self.pad.append(point(0,-.15,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CTS')) + # + # pin 3: VCC (red) + # + self.shape = add(self.shape,translate(pad_header,0,-.05,0)) + self.pad.append(point(0,-.05,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC')) + # + # pin 4: Tx (orange) + # + self.shape = add(self.shape,translate(pad_header,0,0.05,0)) + self.pad.append(point(0,.05,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'Tx')) + # + # pin 5: Rx (yellow) + # + self.shape = add(self.shape,translate(pad_header,0,.15,0)) + self.pad.append(point(0,.15,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'Rx')) + # + # pin 6: RTS (green) + # + self.shape = add(self.shape,translate(pad_header,0,.25,0)) + self.pad.append(point(0,.25,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RTS')) + class header_FTDI(part): # # FTDI cable header @@ -4516,6 +4563,114 @@ class ADXL343(part): # ICs # +class FT230XS(part): + def __init__(self,value=''): + self.value = value + self.pad = [point(0,0,0)] + self.labels = [] + d = 0.11 + w = 0.005 + h = .03 + p = .65/25.4 + l = 0.004 + pad = cube(-h,h,-w,w,0,0) + # + # pin 1 + # + self.shape = translate(pad,-d,3.5*p,0) + self.shape = add(self.shape,cylinder(-d-h,3.5*p,0,0,w)) + self.pad.append(point(-d,3.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'TXD',line=l)) + # + # pin 2 + # + self.shape = add(self.shape,translate(pad,-d,2.5*p,0)) + self.pad.append(point(-d,2.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RTS',line=l)) + # + # pin 3 + # + self.shape = add(self.shape,translate(pad,-d,1.5*p,0)) + self.pad.append(point(-d,1.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VIO',line=l)) + # + # pin 4 + # + self.shape = add(self.shape,translate(pad,-d,.5*p,0)) + self.pad.append(point(-d,.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RXD',line=l)) + # + # pin 5 + # + self.shape = add(self.shape,translate(pad,-d,-.5*p,0)) + self.pad.append(point(-d,-.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=l)) + # + # pin 6 + # + self.shape = add(self.shape,translate(pad,-d,-1.5*p,0)) + self.pad.append(point(-d,-1.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CTS',line=l)) + # + # pin 7 + # + self.shape = add(self.shape,translate(pad,-d,-2.5*p,0)) + self.pad.append(point(-d,-2.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CB2',line=l)) + # + # pin 8 + # + self.shape = add(self.shape,translate(pad,-d,-3.5*p,0)) + self.pad.append(point(-d,-3.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'USP',line=l)) + # + # pin 9 + # + self.shape = add(self.shape,translate(pad,d,-3.5*p,0)) + self.pad.append(point(d,-3.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'USM',line=l)) + # + # pin 10 + # + self.shape = add(self.shape,translate(pad,d,-2.5*p,0)) + self.pad.append(point(d,-2.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'3V3',line=l)) + # + # pin 11 + # + self.shape = add(self.shape,translate(pad,d,-1.5*p,0)) + self.pad.append(point(d,-1.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RST',line=l)) + # + # pin 12 + # + self.shape = add(self.shape,translate(pad,d,-.5*p,0)) + self.pad.append(point(d,-.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC',line=l)) + # + # pin 13 + # + self.shape = add(self.shape,translate(pad,d,.5*p,0)) + self.pad.append(point(d,.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=l)) + # + # pin 14 + self.shape = add(self.shape,translate(pad,d,1.5*p,0)) + self.pad.append(point(d,1.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CB1',line=l)) + # + # pin 15 + # + self.shape = add(self.shape,translate(pad,d,2.5*p,0)) + self.pad.append(point(d,2.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CB0',line=l)) + # + # pin 16 + self.shape = add(self.shape,translate(pad,d,3.5*p,0)) + self.pad.append(point(d,3.5*p,0)) + self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CB3',line=l)) + + class ATtiny412(part): def __init__(self,value=''): self.value = value -- GitLab