Skip to content
Snippets Groups Projects
pcb.py 300 KiB
Newer Older
  • Learn to ignore specific revisions
  • Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
       #
       # nRF24L01 module header
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1:
          #
          self.shape = translate(pad_header,.107,-.15,0)
          self.shape = add(self.shape,cylinder(.157,-.15,0,0,.025))
          self.pad.append(point(.107,-.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 2:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.15,0))
          self.pad.append(point(-.107,-.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC'))
          #
          # pin 3:
          #
          self.shape = add(self.shape,translate(pad_header,.107,-.05,0))
          self.pad.append(point(.107,-.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CE'))
          #
          # pin 4:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.05,0))
          self.pad.append(point(-.107,-.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CS'))
          #
          # pin 5:
          #
          self.shape = add(self.shape,translate(pad_header,.107,.05,0))
          self.pad.append(point(.107,.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SCK'))
          #
          # pin 6:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.05,0))
          self.pad.append(point(-.107,.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'MOSI'))
          #
          # pin 7:
          #
          self.shape = add(self.shape,translate(pad_header,.107,.15,0))
          self.pad.append(point(.107,.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'MISO'))
          #
          # pin 8:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.15,0))
          self.pad.append(point(-.107,.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IRQ'))
    
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
    class header_servo(part):
       #
       # servo motor header
       # FCI 95278-101A06LF Bergstik 2x3x0.1"
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1: ground
          #
          self.shape = translate(pad_header,.107,-.1,0)
          self.shape = add(self.shape,cylinder(.157,-.1,0,0,.025))
          self.pad.append(point(.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'G/blk'))
          #
          # pin 2: ground
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.1,0))
          self.pad.append(point(-.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'G/blk'))
          #
          # pin 3: power
          #
          self.shape = add(self.shape,translate(pad_header,.107,0,0))
          self.pad.append(point(.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'V/red'))
          #
          # pin 4: power
          #
          self.shape = add(self.shape,translate(pad_header,-.107,0,0))
          self.pad.append(point(-.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'V/red'))
          #
          # pin 5: signal 0
          #
          self.shape = add(self.shape,translate(pad_header,.107,.1,0))
          self.pad.append(point(.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'S0/wht'))
          #
          # pin 6: signal 1
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.1,0))
          self.pad.append(point(-.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'S1/wht'))
    
    class header_unipolar_stepper(part):
       #
       # unipolar stepper header
       # FCI 95278-101A06LF Bergstik 2x3x0.1"
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1
          #
          self.shape = translate(pad_header,.107,-.1,0)
          self.shape = add(self.shape,cylinder(.157,-.1,0,0,.025))
          self.pad.append(point(.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'red'))
          #
          # pin 2
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.1,0))
          self.pad.append(point(-.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'green'))
          #
          # pin 3
          #
          self.shape = add(self.shape,translate(pad_header,.107,0,0))
          self.pad.append(point(.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'black'))
          #
          # pin 4
          #
          self.shape = add(self.shape,translate(pad_header,-.107,0,0))
          self.pad.append(point(-.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'brown'))
          #
          # pin 5
          #
          self.shape = add(self.shape,translate(pad_header,.107,.1,0))
          self.pad.append(point(.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'orange'))
          #
          # pin 6
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.1,0))
          self.pad.append(point(-.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'yellow'))
    
    class header_LCD(part):
       #
       # LCD interface header
       # FCI 95278-101A10LF Bergstik 2x3x0.1"
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1:
          #
          self.shape = translate(pad_header,.107,-.2,0)
          self.shape = add(self.shape,cylinder(.157,-.2,0,0,.025))
          self.pad.append(point(.107,-.2,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'DB7\n14'))
          #
          # pin 2:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.2,0))
          self.pad.append(point(-.107,-.2,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'DB6\n13'))
          #
          # pin 3:
          #
          self.shape = add(self.shape,translate(pad_header,.107,-.1,0))
          self.pad.append(point(.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'DB5\n12'))
          #
          # pin 4:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,-.1,0))
          self.pad.append(point(-.107,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'DB4\n11'))
          #
          # pin 5:
          #
          self.shape = add(self.shape,translate(pad_header,.107,0,0))
          self.pad.append(point(.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'E\n6'))
          #
          # pin 6:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,0,0))
          self.pad.append(point(-.107,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'R/W\n5'))
          #
          # pin 7:
          #
          self.shape = add(self.shape,translate(pad_header,.107,.1,0))
          self.pad.append(point(.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RS\n4'))
          #
          # pin 8:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.1,0))
          self.pad.append(point(-.107,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'Vee\n3'))
          #
          # pin 9:
          #
          self.shape = add(self.shape,translate(pad_header,.107,.2,0))
          self.pad.append(point(.107,.2,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'Vcc\n2'))
          #
          # pin 10:
          #
          self.shape = add(self.shape,translate(pad_header,-.107,.2,0))
          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'))
    
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
    class header_serial_reverse(part):
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
       #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
       # serial cable header, reverse for female connector
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
       #    GCT BG300-06-A-L-A	
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 1: GND
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          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'))
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 2: CTS (brown)
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          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'))
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 3: VCC (red)
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          self.shape = add(self.shape,translate(pad_header,0,-.05,0))
          self.pad.append(point(0,-.05,0))
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC'))
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 4: Tx (orange)
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          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'))
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 5: Rx (yellow)
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          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'))
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 6: RTS (green)
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          #
          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'))
    
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
    class header_FTDI(part):
       #
       # FTDI cable header
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
       #    Sullins GEC36SBSN-M89	
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          # pin 1: GND
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
          #
          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))
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
          #
          # 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 HCSR04(part):
       #
       # HC-SR04 sonar header
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1: GND
          #
          self.shape = translate(pad_header,0,.15,0)
          self.shape = add(self.shape,cylinder(-.05,.15,0,0,.025))
          self.pad.append(point(0,.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 2: echo
          #
          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,'echo'))
          #
          # pin 3: trig
          #
          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,'trig'))
          #
          # pin 4: Vcc
          #
          self.shape = add(self.shape,translate(pad_header,0,-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,'Vcc'))
    
    class HCSR501(part):
       #
       # HC-SR501 motion detector header
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1: Vcc
          #
          self.shape = translate(pad_header,0,.1,0)
          self.shape = add(self.shape,cylinder(-.05,.1,0,0,.025))
          self.pad.append(point(0,.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'Vcc'))
          #
          # pin 2: out
          #
          self.shape = add(self.shape,translate(pad_header,0,0,0))
          self.pad.append(point(0,0,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'out'))
          #
          # pin 3: GND
          #
          self.shape = add(self.shape,translate(pad_header,0,-.1,0))
          self.pad.append(point(0,-.1,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
    
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
    pad_RN4871_left = cube(-0.5/25.4,1/25.4,-0.7/2/25.4,0.7/2/25.4,0,0)
    pad_RN4871_right = cube(-1/25.4,0.5/25.4,-0.7/2/25.4,0.7/2/25.4,0,0)
    pad_RN4871_bot = cube(-0.7/2/25.4,0.7/2/25.4,-0.5/25.4,1/25.4,0,0)
    
    class RN4871(part):
       #
       # RN4871
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          width = 9/25.4
          height = 7.5/25.4
          bottom = 1.9/25.4
          left = 1.5/25.4
          pitch = 1.2/25.4
          size = .004
          #
          # pin 1:
          #
          self.shape = translate(pad_RN4871_left,-width/2.0,-height+bottom+4*pitch,0)
          self.pad.append(point(-width/2.0,-height+bottom+4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'BT_RF',line=size))
          #
          # pin 2: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_left,-width/2.0,-height+bottom+3*pitch,0))
          self.pad.append(point(-width/2.0,-height+bottom+3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=size))
          #
          # pin 3: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_left,-width/2.0,-height+bottom+2*pitch,0))
          self.pad.append(point(-width/2.0,-height+bottom+2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P1_2',line=size))
          #
          # pin 4: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_left,-width/2.0,-height+bottom+1*pitch,0))
          self.pad.append(point(-width/2.0,-height+bottom+1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P1_3',line=size))
          #
          # pin 5: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_left,-width/2.0,-height+bottom+0*pitch,0))
          self.pad.append(point(-width/2.0,-height+bottom+0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P1_7',line=size))
          #
          # pin 6: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+0*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+0*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P1_6',line=size,angle=90))
          #
          # pin 7: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+1*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+1*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RX',line=size,angle=90))
          #
          # pin 8: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+2*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+2*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'TX',line=size,angle=90))
          #
          # pin 9: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+3*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+3*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P3_6',line=size,angle=90))
          #
          # pin 10: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+4*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+4*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RST_N',line=size,angle=90))
          #
          # pin 11: 
          #
          self.shape = add(self.shape,translate(pad_RN4871_bot,-width/2.0+left+5*pitch,-height,0))
          self.pad.append(point(-width/2.0+left+5*pitch,-height,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P0_0',line=size,angle=90))
          #
          # pin 12:
          #
          self.shape = add(self.shape,translate(pad_RN4871_right,width/2.0,-height+bottom+0*pitch,0))
          self.pad.append(point(width/2.0,-height+bottom+0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P0_2',line=size))
          #
          # pin 13:
          #
          self.shape = add(self.shape,translate(pad_RN4871_right,width/2.0,-height+bottom+1*pitch,0))
          self.pad.append(point(width/2.0,-height+bottom+1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=size))
          #
          # pin 14:
          #
          self.shape = add(self.shape,translate(pad_RN4871_right,width/2.0,-height+bottom+2*pitch,0))
          self.pad.append(point(width/2.0,-height+bottom+2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VBAT',line=size))
          #
          # pin 15:
          #
          self.shape = add(self.shape,translate(pad_RN4871_right,width/2.0,-height+bottom+3*pitch,0))
          self.pad.append(point(width/2.0,-height+bottom+3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P2_7',line=size))
          #
          # pin 16:
          #
          self.shape = add(self.shape,translate(pad_RN4871_right,width/2.0,-height+bottom+4*pitch,0))
          self.pad.append(point(width/2.0,-height+bottom+4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'P2_0',line=size))
    
    pad_HM11 = cube(-.047,.047,-.0177,.0177,0,0)
    
    class HM11(part):
       #
       # HM-11
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          height = 18.5/25.4 
          width = 13.5/25.4
          pitch = 1.5/25.4
          bottom = 1/25.4
          offset = 0
          size = .004
          #
          # pin 1:
          #
          self.shape = translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+7*pitch,0)
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+7*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RTS',line=size))
          #
          # pin 2: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+6*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'TX',line=size))
          #
          # pin 3: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+5*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CTS',line=size))
          #
          # pin 4: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+4*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RX',line=size))
          #
          # pin 5: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+3*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC',line=size))
          #
          # pin 6: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+2*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC',line=size))
          #
          # pin 7: 
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+1*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC',line=size))
          #
          # pin 8:
          #
          self.shape = add(self.shape,translate(pad_HM11,-width/2.0+offset,-height/2.0+bottom+0*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC',line=size))
          #
          # pin 9:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+0*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC',line=size))
          #
          # pin 10:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+1*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC',line=size))
          #
          # pin 11:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+2*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RST',line=size))
          #
          # pin 12:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+3*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=size))
          #
          # pin 13:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+4*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO3',line=size))
          #
          # pin 14:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+5*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO2',line=size))
          #
          # pin 15:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+6*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO1',line=size))
          #
          # pin 16:
          #
          self.shape = add(self.shape,translate(pad_HM11,width/2.0-offset,-height/2.0+bottom+7*pitch,0))
          self.pad.append(point(width/2.0-offset,-height/2.0+bottom+7*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO0',line=size))
    
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
    class ESP32_WROOM(part):
       #
       # ESP32-WROOM
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          pad = cube(-1/25.4,1/25.4,-.4/25.4,.4/25.4,0,0)
          padb = cube(-.4/25.4,.4/25.4,-1/25.4,1/25.4,0,0)
          width = 17/25.4
          height = 25.5/25.4
          pitch = 1.27/25.4
          #
          # pin 1
          #
          self.shape = translate(pad,-width/2,6*pitch,0)
          self.pad.append(point(-width/2,6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 2
          #
          self.shape = add(self.shape,translate(pad,-width/2,5*pitch,0))
          self.pad.append(point(-width/2,5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'3V3'))
          #
          # pin 3
          #
          self.shape = add(self.shape,translate(pad,-width/2,4*pitch,0))
          self.pad.append(point(-width/2,4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'EN'))
          #
          # pin 4
          #
          self.shape = add(self.shape,translate(pad,-width/2,3*pitch,0))
          self.pad.append(point(-width/2,3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VP'))
          #
          # pin 5
          #
          self.shape = add(self.shape,translate(pad,-width/2,2*pitch,0))
          self.pad.append(point(-width/2,2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VN'))
          #
          # pin 6
          #
          self.shape = add(self.shape,translate(pad,-width/2,1*pitch,0))
          self.pad.append(point(-width/2,1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO34'))
          #
          # pin 7
          #
          self.shape = add(self.shape,translate(pad,-width/2,0*pitch,0))
          self.pad.append(point(-width/2,0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO35'))
          #
          # pin 8
          #
          self.shape = add(self.shape,translate(pad,-width/2,-1*pitch,0))
          self.pad.append(point(-width/2,-1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO32'))
          #
          # pin 9
          #
          self.shape = add(self.shape,translate(pad,-width/2,-2*pitch,0))
          self.pad.append(point(-width/2,-2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO33'))
          #
          # pin 10
          #
          self.shape = add(self.shape,translate(pad,-width/2,-3*pitch,0))
          self.pad.append(point(-width/2,-3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO25'))
          #
          # pin 11
          #
          self.shape = add(self.shape,translate(pad,-width/2,-4*pitch,0))
          self.pad.append(point(-width/2,-4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO26'))
          #
          # pin 12
          #
          self.shape = add(self.shape,translate(pad,-width/2,-5*pitch,0))
          self.pad.append(point(-width/2,-5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO27'))
          #
          # pin 13
          #
          self.shape = add(self.shape,translate(pad,-width/2,-6*pitch,0))
          self.pad.append(point(-width/2,-6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO14'))
          #
          # pin 14
          #
          self.shape = add(self.shape,translate(pad,-width/2,-7*pitch,0))
          self.pad.append(point(-width/2,-7*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO12'))
          #
          # pin 15
          #
          self.shape = add(self.shape,translate(padb,-4.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(-4.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',angle=90))
          #
          # pin 16
          #
          self.shape = add(self.shape,translate(padb,-3.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(-3.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO13',angle=90))
          #
          # pin 17
          #
          self.shape = add(self.shape,translate(padb,-2.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(-2.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SHD',angle=90))
          #
          # pin 18
          #
          self.shape = add(self.shape,translate(padb,-1.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(-1.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SWP',angle=90))
          #
          # pin 19
          #
          self.shape = add(self.shape,translate(padb,-0.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(-0.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SCS',angle=90))
          #
          # pin 20
          #
          self.shape = add(self.shape,translate(padb,0.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(0.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SCK',angle=90))
          #
          # pin 21
          #
          self.shape = add(self.shape,translate(padb,1.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(1.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SDO',angle=90))
          #
          # pin 22
          #
          self.shape = add(self.shape,translate(padb,2.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(2.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SDI',angle=90))
          #
          # pin 23
          #
          self.shape = add(self.shape,translate(padb,3.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(3.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO15',angle=90))
          #
          # pin 24
          #
          self.shape = add(self.shape,translate(padb,4.5*pitch,-7*pitch-1/25.4,0))
          self.pad.append(point(4.5*pitch,-7*pitch-1/25.4,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO2',angle=90))
          #
          # pin 25
          #
          self.shape = add(self.shape,translate(pad,width/2,-7*pitch,0))
          self.pad.append(point(width/2,-7*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO0'))
          #
          # pin 26
          #
          self.shape = add(self.shape,translate(pad,width/2,-6*pitch,0))
          self.pad.append(point(width/2,-6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO4'))
          #
          # pin 27
          #
          self.shape = add(self.shape,translate(pad,width/2,-5*pitch,0))
          self.pad.append(point(width/2,-5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO16'))
          #
          # pin 28
          #
          self.shape = add(self.shape,translate(pad,width/2,-4*pitch,0))
          self.pad.append(point(width/2,-4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO17'))
          #
          # pin 29
          #
          self.shape = add(self.shape,translate(pad,width/2,-3*pitch,0))
          self.pad.append(point(width/2,-3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO5'))
          #
          # pin 30
          #
          self.shape = add(self.shape,translate(pad,width/2,-2*pitch,0))
          self.pad.append(point(width/2,-2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO18'))
          #
          # pin 31
          #
          self.shape = add(self.shape,translate(pad,width/2,-1*pitch,0))
          self.pad.append(point(width/2,-1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO19'))
          #
          # pin 32
          #
          self.shape = add(self.shape,translate(pad,width/2,0*pitch,0))
          self.pad.append(point(width/2,0*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'NC'))
          #
          # pin 33
          #
          self.shape = add(self.shape,translate(pad,width/2,1*pitch,0))
          self.pad.append(point(width/2,1*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO21'))
          #
          # pin 34
          #
          self.shape = add(self.shape,translate(pad,width/2,2*pitch,0))
          self.pad.append(point(width/2,2*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RX0'))
          #
          # pin 35
          #
          self.shape = add(self.shape,translate(pad,width/2,3*pitch,0))
          self.pad.append(point(width/2,3*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'TX0'))
          #
          # pin 36
          #
          self.shape = add(self.shape,translate(pad,width/2,4*pitch,0))
          self.pad.append(point(width/2,4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO22'))
          #
          # pin 37
          #
          self.shape = add(self.shape,translate(pad,width/2,5*pitch,0))
          self.pad.append(point(width/2,5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO23'))
          #
          # pin 38
          #
          self.shape = add(self.shape,translate(pad,width/2,6*pitch,0))
          self.pad.append(point(width/2,6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
    
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
    class ESP32_CAM(part):
       #
       # ESP32-CAM
       # Sullins S5635-ND
       #
       def __init__(self,value=''):
          pad_header = cube(-.079/2,.079/2,-.039/2,.039/2,0,0)
          d = .209/2-.079/2
          w = 0.9
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          #
          # pin 1
          #
          self.shape = translate(pad_header,+d-w/2,.35,0)
          self.pad.append(point(+d-w/2,.35,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'+5V'))
          #
          # pin 2
          #
          self.shape = add(self.shape,translate(pad_header,-d-w/2,.25,0))
          self.pad.append(point(-d-w/2,.25,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 3
          #
          self.shape = add(self.shape,translate(pad_header,+d-w/2,.15,0))
          self.pad.append(point(+d-w/2,.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO12'))
          #
          # pin 4
          #
          self.shape = add(self.shape,translate(pad_header,-d-w/2,.05,0))
          self.pad.append(point(-d-w/2,.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO13'))
          #
          # pin 5
          #
          self.shape = add(self.shape,translate(pad_header,+d-w/2,-.05,0))
          self.pad.append(point(+d-w/2,-.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO15'))
          #
          # pin 6
          #
          self.shape = add(self.shape,translate(pad_header,-d-w/2,-.15,0))
          self.pad.append(point(-d-w/2,-.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO14'))
          #
          # pin 7
          #
          self.shape = add(self.shape,translate(pad_header,+d-w/2,-.25,0))
          self.pad.append(point(+d-w/2,-.25,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO2'))
          #
          # pin 8
          #
          self.shape = add(self.shape,translate(pad_header,-d-w/2,-.35,0))
          self.pad.append(point(-d-w/2,-.35,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO4'))
          #
          # pin 9
          #
          self.shape = add(self.shape,translate(pad_header,-d+w/2,-.35,0))
          self.pad.append(point(-d+w/2,-.35,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 10
          #
          self.shape = add(self.shape,translate(pad_header,+d+w/2,-.25,0))
          self.pad.append(point(+d+w/2,-.25,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'U0T'))
          #
          # pin 11
          #
          self.shape = add(self.shape,translate(pad_header,-d+w/2,-.15,0))
          self.pad.append(point(-d+w/2,-.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'U0R'))
          #
          # pin 12
          #
          self.shape = add(self.shape,translate(pad_header,+d+w/2,-.05,0))
          self.pad.append(point(+d+w/2,-.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VCC'))
          #
          # pin 13
          #
          self.shape = add(self.shape,translate(pad_header,-d+w/2,.05,0))
          self.pad.append(point(-d+w/2,.05,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
          #
          # pin 14
          #
          self.shape = add(self.shape,translate(pad_header,+d+w/2,.15,0))
          self.pad.append(point(+d+w/2,.15,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO0'))
          #
          # pin 15
          #
          self.shape = add(self.shape,translate(pad_header,-d+w/2,.25,0))
          self.pad.append(point(-d+w/2,.25,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IO16'))
          #
          # pin 16
          #
          self.shape = add(self.shape,translate(pad_header,+d+w/2,.35,0))
          self.pad.append(point(+d+w/2,.35,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'3V3'))
    
    
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
    class ESP8266_12E(part):
       #
       # ESP8266 12E
       #
       def __init__(self,value=''):
          self.value = value
          self.pad = [point(0,0,0)]
          self.labels = []
          height = 24/25.4 
          width = 16/25.4
          pitch = 2/25.4
          bottom = 1.8/25.4
          left = 3/25.4
          offset = .4/25.4 - .01
          size = .004
    
    Neil Gershenfeld (test)'s avatar
    Neil Gershenfeld (test) committed
          pad_ESP8266 = cube(-.0493,.0493,-.0197,.0197,0,0)
          pad_ESP8266_bot = cube(-.0197,.0197,-.0415,.0415,0,0)
    
    Neil Gershenfeld (test)'s avatar
    wip
    Neil Gershenfeld (test) committed
          #
          # pin 1:
          #
          self.shape = translate(pad_ESP8266,-width/2.0+offset,-height/2.0+bottom+7*pitch,0)
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+7*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'RST',line=size))
          #
          # pin 2: 
          #
          self.shape = add(self.shape,translate(pad_ESP8266,-width/2.0+offset,-height/2.0+bottom+6*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+6*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'ADC',line=size))
          #
          # pin 3: 
          #
          self.shape = add(self.shape,translate(pad_ESP8266,-width/2.0+offset,-height/2.0+bottom+5*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+5*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'EN',line=size))
          #
          # pin 4: 
          #
          self.shape = add(self.shape,translate(pad_ESP8266,-width/2.0+offset,-height/2.0+bottom+4*pitch,0))
          self.pad.append(point(-width/2.0+offset,-height/2.0+bottom+4*pitch,0))
          self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GPIO16',line=size))
          #