diff --git a/nrf52-stepper/nrf52-stepper-interior.png b/nrf52-stepper/nrf52-stepper-interior.png
new file mode 100644
index 0000000000000000000000000000000000000000..76b8085c67292347dd57dd63d4b6e740b21c2546
Binary files /dev/null and b/nrf52-stepper/nrf52-stepper-interior.png differ
diff --git a/nrf52-stepper/nrf52-stepper-traces.png b/nrf52-stepper/nrf52-stepper-traces.png
new file mode 100644
index 0000000000000000000000000000000000000000..2de966e5dadec1734f8ca142b5c2a41b604c1cd1
Binary files /dev/null and b/nrf52-stepper/nrf52-stepper-traces.png differ
diff --git a/nrf52-stepper/nrf52-stepper.ko b/nrf52-stepper/nrf52-stepper.ko
new file mode 100644
index 0000000000000000000000000000000000000000..de4716e471ea20d5d55aa0afe7e5ebcc4916375b
--- /dev/null
+++ b/nrf52-stepper/nrf52-stepper.ko
@@ -0,0 +1,464 @@
+from koko.lib.sam import *
+from koko.lib.pcb import *
+from koko.lib.shapes2d import *
+
+
+class R_0805(Component):
+    ''' 0805 Resistor
+    '''
+    pins = [
+            Pin(-0.04, 0,  s2d.rectangle(-.023,.017, -.027, .027)),
+            Pin(0.04, 0,  s2d.rectangle(-.017,.023, -.027, .027))
+        ]
+    prefix = 'R'
+    vias = []
+
+class R_1206(Component):
+    ''' 1206 Resistor
+    '''
+    pins = [
+        Pin(-0.06, 0, s2d.rectangle(-0.032, 0.03, -0.034, 0.034)), 
+        Pin(0.06, 0, s2d.rectangle(-0.03, 0.032, -0.034, 0.034))]
+    prefix = 'R'
+    vias = []
+
+def bot_chamfered_rectangle(x0,x1,y0,y1,c):
+    r = rectangle(x0,x1,y0,y1)
+    c1 = triangle(x0,y0,x0,y0+c,x0+c,y0)
+    c2 = triangle(x1,y1, x1, y1-c, x1-c, y1)
+    c3 = triangle(x0,y1, x0+c, y1, x0, y1-c)
+    c4 = triangle(x1,y0, x1-c, y0, x1, y0+c)
+    return r-c2-c3
+
+class cap_UWT(Component):
+    '''UWT series aluminum smd cap
+    http://nichicon-us.com/english/products/pdfs/e-uwt.pdf
+    '''
+    _d = 8 #mm, diameter
+    _h = 10.5 #mm, height
+    _a = 2.9/25.4
+    _e = 3.1/25.4
+    _h = 1./25.4 + 2/25.4
+    _pad = rectangle(-_h/2,_h/2,-_a/2-.03,_a/2+.03)
+    pins = [Pin(0,-(_e+_a)/2-.01,_pad,'-'),Pin(0,(_e+_a)/2+.01,_pad,'+')]
+    vias = []
+    shadow = bot_chamfered_rectangle(-4/25.4,4/25.4,-4/25.4,4/25.4,1/25.4)
+
+
+class Pheonix_WTB(Component):
+    _pad = rectangle(-.4*1.2/25.4,.4*1.2/25.4, -.5*3.4/25.4,.5*3.4/25.4)
+    _pad_big = chamfered_rectangle(-1.15/25.4,1.15/25.4,-2.8/25.4,2.8/25.4,.01)
+    pins = [
+        Pin(-1.5*2.5/25.4, -6.6/25.4,_pad,'1'),
+        Pin(- .5*2.5/25.4, -6.6/25.4,_pad,'2'),
+        Pin(  .5*2.5/25.4, -6.6/25.4,_pad,'3'),
+        Pin( 1.5*2.5/25.4, -6.6/25.4,_pad,'4'),
+        Pin( -12.7/25.4/2, 0, _pad_big),
+        Pin( 12.7/25.4/2, 0, _pad_big),
+    ]
+    vias = []
+    shadow = rectangle(-6/25.4,6/25.4,-8.3/25.4,2.8/25.4) 
+
+class DRV8825(Component):
+    '''Stepper driver'''
+    _pad = rectangle(-.8/25.4,.8/25.4,-.17/25.4,.17/25.4)
+    p = .65/25.4
+    w = 5.6/25.4
+    labels = ["CP1","CP2",'VCP','VMA','AOUT1','ISENA','AOUT2','BOUT2','ISENB','BOUT1','VMB','AVREF','BVREF','GND',
+              "V3OUT",'nRST','nSLP','nFLT','DECAY','DIR','nEBL','STEP','NC','MODE0','MODE1','MODE2','nHOME','GND2']
+    pins = [Pin(-.5*w,(6.5-i)*p,_pad,l,label_size=.02) for i,l in enumerate(labels[:14])]
+    pins += [Pin(.5*w,(-6.5+i)*p,_pad,l,label_size=.02) for i,l in enumerate(labels[14:])]
+    pins += [Pin(0,0,rectangle(-1.5/25.4,1.5/25.4,-4/25.4,4/25.4),'GND3',label_size=.02)]
+    vias = []
+
+class Regulator_SOT23(Component):
+    ''' LM3480 100-mA, 3.3V
+    '''
+    _pad_SOT23 = s2d.rectangle(-.02,.02,-.012,.012)
+    pins = [
+        Pin(-0.045, -0.0375, _pad_SOT23,'IN'),
+        Pin(-0.045,  0.0375, _pad_SOT23,'OUT'),
+        Pin(0.045, 0, _pad_SOT23,'GND')
+    ]
+    prefix = 'U'
+    vias = []
+
+class AS5047D(Component):
+    _pad_TSSOP = rectangle(-.7/25.4,.7/25.4, -.2/25.4,.2/25.4)
+    hw = 5.55/25.4/2
+    pitch = .65/25.4
+    pins = [
+        Pin(-hw, 3*pitch,_pad_TSSOP,'CSn',label_size=.02),
+        Pin(-hw, 2*pitch,_pad_TSSOP,'CLK',label_size=.02),
+        Pin(-hw, 1*pitch,_pad_TSSOP,'MISO',label_size=.02),
+        Pin(-hw, 0*pitch,_pad_TSSOP,'MOSI',label_size=.02),
+        Pin(-hw,-1*pitch,_pad_TSSOP,'TEST',label_size=.02),
+        Pin(-hw,-2*pitch,_pad_TSSOP,'B',label_size=.02),
+        Pin(-hw,-3*pitch,_pad_TSSOP,'A',label_size=.02),
+        Pin( hw,-3*pitch,_pad_TSSOP,'W/PWM',label_size=.02),
+        Pin( hw,-2*pitch,_pad_TSSOP,'V',label_size=.02),
+        Pin( hw,-1*pitch,_pad_TSSOP,'U',label_size=.02),
+        Pin( hw, 0*pitch,_pad_TSSOP,'VDD',label_size=.02),
+        Pin( hw, 1*pitch,_pad_TSSOP,'VDD3V',label_size=.02),
+        Pin( hw, 2*pitch,_pad_TSSOP,'GND',label_size=.02),
+        Pin( hw, 3*pitch,_pad_TSSOP,'I/PWM',label_size=.02),
+    ]
+    vias = []
+    prefix='IC'
+    shadow = s2d.rectangle(-2.25/25.4,2.25/25.4, -2.95/25.4,2.95/25.4)
+class AS5047D_FLIP(Component):
+    _pad_TSSOP = rectangle(-.9/25.4,.9/25.4, -.2/25.4,.2/25.4)
+    hw = 5.55/25.4/2
+    pitch = .65/25.4
+    pins = [
+        Pin( hw, 3*pitch,_pad_TSSOP,'CSn',label_size=.02),
+        Pin( hw, 2*pitch,_pad_TSSOP,'CLK',label_size=.02),
+        Pin( hw, 1*pitch,_pad_TSSOP,'MISO',label_size=.02),
+        Pin( hw, 0*pitch,_pad_TSSOP,'MOSI',label_size=.02),
+        Pin( hw,-1*pitch,_pad_TSSOP,'TEST',label_size=.02),
+        Pin( hw,-2*pitch,_pad_TSSOP,'B',label_size=.02),
+        Pin( hw,-3*pitch,_pad_TSSOP,'A',label_size=.02),
+        Pin(-hw,-3*pitch,_pad_TSSOP,'W/PWM',label_size=.02),
+        Pin(-hw,-2*pitch,_pad_TSSOP,'V',label_size=.02),
+        Pin(-hw,-1*pitch,_pad_TSSOP,'U',label_size=.02),
+        Pin(-hw, 0*pitch,_pad_TSSOP,'VDD',label_size=.02),
+        Pin(-hw, 1*pitch,_pad_TSSOP,'VDD3V',label_size=.02),
+        Pin(-hw, 2*pitch,_pad_TSSOP,'GND',label_size=.02),
+        Pin(-hw, 3*pitch,_pad_TSSOP,'I/PWM',label_size=.02),
+    ]
+    vias = [ Via(0,0, dogboned_rectangle( -2.75/25.4,2.75/25.4, -2.95/25.4,2.95/25.4, .017 ) ) ]
+    prefix='IC'
+    shadow = s2d.rectangle(-2.25/25.4,2.25/25.4, -2.95/25.4,2.95/25.4)
+
+class Header_Stepper(Component):
+    ''' For bipolar stepper
+    '''
+    _pad_header  = chamfered_rectangle(-0.06, 0.06, -0.022, 0.022,.007)
+    pins = [
+        Pin(0,  -0.15, _pad_header, 'A1'),
+        Pin(0,  -0.05, _pad_header, 'A2'),
+        Pin(0,   0.05, _pad_header, 'B1'),
+        Pin(0,   0.15, _pad_header, 'B2'),
+    ]
+    prefix = 'J'
+    vias = []
+    shadow = s2d.rectangle(-.06,8/25.4,-.18,.18)
+
+
+class Button(Component):
+    ''' SW262CT-ND 
+    '''
+    rect = rectangle(-.75/25.4,.75/25.4,-.5/25.4,.5/25.4)
+    pins = [
+        Pin(-2/25.4,.8/25.4,rect),
+        Pin( 2/25.4,.8/25.4,rect),
+        Pin(-2/25.4,-.8/25.4,rect),
+        Pin( 2/25.4,-.8/25.4,rect)
+    ]
+    prefix = 'button'
+    vias = []
+    shadow = rectangle(-2.1/25.4,2.1/25.4,-1.4/25.4,1.4/25.4)
+
+class TagConnectSWD(Component):
+    '''
+    '''
+    _pad = s2d.circle(0,0,.5*.031)
+    _via = s2d.circle(0,0,.5*.039)
+    pins = [
+        Pin(-.05,-.025,_pad,'VCC',label_size=.012),
+        Pin( .00,-.025,_pad,'TX',label_size=.012),
+        Pin( .05,-.025,_pad,'RX',label_size=.012),
+        Pin(-.05,.025,_pad,'GND',label_size=.012),
+        Pin( .00,.025,_pad,'SWDIO',label_size=.012),
+        Pin( .05,.025,_pad,'SWDCLK',label_size=.012)
+    ]
+    vias = [
+        Via(-.1,0,_via),
+        Via(.1,0.04,_via),
+        Via(.1,-.04,_via),
+
+    ]
+
+
+class BC832(Component):
+    #Fanstel BC832 micro nrf52 module
+    p = 1.1/25.4
+    pad_hw = .7/25.4
+    pad_hh = .34/25.4
+    _pad_lga = circle(0,0,.32/25.4)
+    _pad = rectangle(-pad_hw,pad_hw,-pad_hh,pad_hh)
+    c= 3.9/25.4
+    start_y = .618/25.4
+    y_os = .18
+    names = [
+        'GND','DFU','SWDIO','SWDCLK','P18','P13','P11','P12',
+        'A1','RESET','XL1','XL2','A0','P27','P26','VDD',
+        
+    ]
+    pins = [Pin(-c,start_y+i*p-y_os,_pad,n,label_size=.018) for i,n in enumerate(names[:8][::-1])]
+    pins += [Pin(c,start_y+i*p-y_os,_pad,n,label_size=.018) for i,n in enumerate(names[8:16])]
+    pins += [
+        Pin(-c+2.15/25.4,-y_os+.519/25.4,_pad_lga,'P8',label_size=.01),
+        Pin(-c+2.15/25.4,-y_os+(1.2+.519)/25.4,_pad_lga,'P6',label_size=.01),
+        #Pin(-c+2.15/25.4,-y_os+(2*1.2+.519)/25.4,_pad_lga,'A2',label_size=.01),    
+        #Pin(-c+2.15/25.4,-y_os+(4*1.2+.519)/25.4,_pad_lga,'A4',label_size=.01),    
+        
+        #Pin(-c+2.15/25.4,-y_os+(3*1.2+.519)/25.4,_pad_lga,'',label_size=.01),        
+        #Pin(-c+2.15/25.4+1.2/25.4,-y_os+(2*1.2+.519)/25.4,_pad_lga,'',label_size=.01),        
+        #Pin(-c+2.15/25.4+1.2/25.4,-y_os+(3*1.2+.519)/25.4,_pad_lga,'',label_size=.01),        
+        #Pin(-c+2.15/25.4+1.2/25.4,-y_os+(4*1.2+.519)/25.4,_pad_lga,'',label_size=.01),        
+        #Pin(-c+2.15/25.4+2*1.2/25.4,-y_os+(3*1.2+.519)/25.4,_pad_lga,'',label_size=.01),        
+        #Pin(-c+2.15/25.4+3*1.2/25.4,-y_os+(3*1.2+.519)/25.4,_pad_lga,'',label_size=.01)        
+    ]
+    vias = []
+    shadow = rectangle(-c,c,-y_os,8.8/25.4-y_os)
+
+_pad_SOIC = s2d.rectangle(-.041,.041,-.015,.015)
+class A4950(Component):
+    _pad_SOIC = chamfered_rectangle(-.041,.041,-.015,.015,.008)
+    pins = [
+        Pin(-.11, .075,_pad_SOIC,"GND"),
+        Pin(-.11, .025,_pad_SOIC,"IN2"),
+        Pin(-.11,-.025,_pad_SOIC,"IN1"),
+        Pin(-.11,-.075,_pad_SOIC,"VREF"),
+        Pin( .11,-.075,_pad_SOIC,"VBB"),
+        Pin( .11,-.025,_pad_SOIC,"OUT1"),
+        Pin( .11, .025,_pad_SOIC,"LSS"),
+        Pin( .11, .075,_pad_SOIC,"OUT2"),
+        Pin( 0,0,s2d.rectangle(-.04,.04,-.075,.075),"")
+    ]
+    prefix = 'U'
+    vias = []
+
+class Regulator_SOT23(Component):
+    '''  SOT23 voltage regulator
+    '''
+    _pad_SOT23 = s2d.rectangle(-.02,.02,-.012,.012)
+    pins = [
+        Pin(-0.045, -0.0375, _pad_SOT23,'IN'),
+        Pin(-0.045,  0.0375, _pad_SOT23,'OUT'),
+        Pin(0.045, 0, _pad_SOT23,'GND')
+    ]
+    prefix = 'U'
+    vias = []
+
+class BarrelJackSMD(Component):
+    pw = 2.8/25.4
+    ph = 2.4/25.4
+    _pad = chamfered_rectangle(-.5*pw,.5*pw,-.5*ph,.5*ph,.01)
+    _via = s2d.circle(0,0,.065)
+    pins = [
+        Pin(.192,.177+.5*ph,_pad,'V'),
+        Pin(.437,.177+.5*ph,_pad,'V2'),
+        Pin(.192,-.177-.5*ph,_pad,'GND'),
+        Pin(.437,-.177-.5*ph,_pad,'GND2'),
+        ]
+    vias = [Via(.197,0,s2d.circle(0,0,.5*.065)), 
+            Via(.374,0,s2d.circle(0,0,.5*.073))]
+    shadow = s2d.rectangle(0,.58,-.18,.18)
+
+class Header_Female_R_SMD(Component):
+    _pad = s2d.rectangle(-.045,.045,-.03,.03)
+    pins = [Pin(-.178,0,_pad),Pin(.178,0,_pad)]
+    shadow = s2d.rectangle(-.178,.178,-.05,.05)
+    vias = []
+
+class R_2010(Component):
+    _pad_2010 = s2d.rectangle(-0.032, 0.032, -0.045, 0.045)
+    ''' 2010 Resistor
+    '''
+    pins = [Pin(-0.096, 0, _pad_2010), Pin(0.096, 0, _pad_2010)]
+    prefix = 'R'
+    vias = []
+class R_2512(Component):
+    _pad_2010 = chamfered_rectangle(-0.032, 0.032, -0.0625, 0.0625, .01)
+    ''' 2010 Resistor
+    '''
+    pins = [Pin(-0.125, 0, _pad_2010), Pin(0.125, 0, _pad_2010)]
+    prefix = 'R'
+    vias = []
+
+class M3_Hole(Component):
+    pins = [Pin(0,0,circle(0,0,.001))]
+    prefix='V'
+    vias = [Via(0,0,circle(0,0,1.55/25.4))]
+    shadow = circle(0,0,5.5/25.4/2)
+
+class Hole(Component):
+    pins = [Pin(0,0,circle(0,0,0.01))]
+    vias = [Via(0,0,circle(0,0,.5*2.1/25.4))]
+    tap = circle(0,0,.5*1.9/25.5)
+
+width = 42.3/25.4
+height = 42.3/25.4
+mid = width/2.
+pcb = PCB(0,0,width,height,chamfer_distance=.12)
+
+hole = M3_Hole(mid-15.5/25.4, mid-15.5/25.4)
+pcb += hole
+hole = M3_Hole(mid+15.5/25.4, mid-15.5/25.4)
+pcb += hole
+hole = M3_Hole(mid-15.5/25.4, mid+15.5/25.4)
+pcb += hole
+hole = M3_Hole(mid+15.5/25.4, mid+15.5/25.4)
+pcb += hole
+
+def connectG(pin,dx,dy,width=.014,pts=[]):
+    '''
+    Convenience function for connecting to ground plane
+    '''
+    sides = [0 for p in pts]+[0,1,1]
+    pts = [pin] + pts + [[pin.x+dx,pin.y+dy],[pin.x+dx-.0001,pin.y+dy]]
+    pcb.connectD(*pts,width=width,sides=sides)
+def connectGf(pin,dx,dy,width=.014,pts=[]):
+    sides = [1,0] + [0 for p in pts]+ [1]
+    pts = [[pin.x+dx,pin.y+dy],[pin.x+dx-.0001,pin.y+dy]] + pts + [pin] 
+    pcb.connectD(*pts,width=width,sides=sides)
+def connectS(pin,dx,dy,width=.014):
+    pcb.connectD(pin,[pin.x+dx+.0001,pin.y+dy],width=width)
+def connectM(pin1,pin2,dx,width=.014):
+    pcb.connectD(pin1,[pin1.x+dx,pin1.y],pin2,width=width)
+
+
+step = Pheonix_WTB(.11,.66,90,'step')
+pcb += step
+
+
+pow = BarrelJackSMD(.63,height+.1,-90,'12V') 
+pcb += pow
+#connectG(pow['GND'],-.1,0.01,width=.06)
+pcb.connectV(pow['GND'],pow['GND2'],width=.09)
+
+
+
+C_bulk = cap_UWT(pow.x-.4, pow.y-.63,-90,'100uF')
+pcb += C_bulk
+connectG(C_bulk['-'],-.02,.18,width=.05)
+pcb.connectV(pow['V2'],pow['V'],width=.05)
+pcb.connectD(pow['V2'],C_bulk['+'],width=.05)
+pcb.connectV(C_bulk['-'],[pow['GND2'].x,pow['GND2'].y-.04],pow['GND2'],width=.06)
+
+
+
+bc = BC832(width-.2,height-.62,-90,'Fanstel\nBC832\nNRF52')
+pcb += bc
+
+#reg = Regulator_SOT23(bc.x-.465,bc.y-.09,-180,'3.3v')
+reg = Regulator_SOT23(pow.x+.39,pow.y-.28,-90,'3.3v')
+pcb += reg
+
+pcb.connectV(pow['V'],reg['IN'],width=.05)
+connectG(reg['GND'],-.07,-.02,width=.03)
+#pcb.connectD(reg['IN'],[reg['IN'].x-.09,reg['IN'].y+.02],pow['VCC'],width=.02)
+
+C_in = C_1206(reg.x-.01,reg.y+.13,180,'Cin\n.1uF',label_size=.02)
+pcb += C_in
+C_out = C_1206(reg.x+.0,reg.y-.12,0,'Cout\n.1uF',label_size=.02)
+pcb += C_out
+pcb.connectD(C_in[1],[C_in[1].x,C_in[1].y+.01],reg['GND'])
+pcb.connectV(reg['IN'],C_in[0],width=.02)
+pcb.connectH(reg['OUT'],C_out[0],width=.02)
+pcb.connectD(reg['GND'],C_out[1],width=.02)
+
+
+
+
+swd = TagConnectSWD(bc.x-.27,bc.y+.25,-90,'swd')
+pcb += swd
+pcb.connectD(swd['SWDCLK'],[swd['SWDCLK'].x+.02,swd['SWDCLK'].y],[bc['SWDCLK'].x-.02,bc['SWDCLK'].y+.05],bc['SWDCLK'],width=.012)
+pcb.connectD(swd['SWDIO'],[swd['SWDIO'].x+.02,swd['SWDIO'].y],[bc['SWDIO'].x-.03,bc['SWDIO'].y+.079],bc['SWDIO'],width=.012)
+pcb.connectD(swd['GND'],[bc['GND'].x-.06,bc['GND'].y+.11],bc['GND'],width=.012)
+
+pcb.connectD(bc['P6'],[bc['P6'].x,bc['P6'].y+.02],[swd['RX'].x+.05,swd['RX'].y-.1],[swd['RX'].x+.02,swd['RX'].y-.03],swd['RX'],width=.012)
+pcb.connectD(bc['P8'],[swd['TX'].x+.02,bc['P8'].y-.0],[swd['TX'].x-.05,swd['TX'].y-.02],swd['TX'],width=.012)
+
+connectG(swd['GND'],.05,.03)
+
+
+button = Button(bc.x-.33,bc.y-.02,0)
+pcb += button
+#pcb.connectH(pow['GND'],[button[1].x-.06,button[1].y],button[1])
+
+pcb.connectV(button[3],button[0])
+pcb.connectV(button[1],button[2])
+
+C2 = C_1206(reg.x+.12,reg.y+.07,-90,'C2\n10uF',label_size=.02)
+pcb += C2
+pcb.connectV(C2[1],C_in[1],width=.02)
+pcb.connectH(C2[0],C_out[0],width=.02)
+
+pcb.connectD(C2[0],[C2[0].x+.05,C2[0].y],[width-.1,height-.08],[bc['VDD'].x+.04,bc['VDD'].y+.03],bc['VDD'])
+
+
+R1 = R_1206(button.x-.08,button[1].y+.18,90,'10k',label_size=.03)
+pcb += R1
+pcb.connectH(bc['RESET'],[bc['RESET'].x,bc['RESET'].y+.05],[button[2].x+.06,button[2].y],button[2],width=.012)
+pcb.connectD(swd['VCC'],[swd['VCC'].x-.03,swd['VCC'].y],R1[0])
+pcb.connectD(swd['VCC'],[swd['VCC'].x-.03,swd['VCC'].y],C_out[0])
+pcb.connectD(R1[1],button[1])
+pcb.connectD(button[3],[button[3].x-.04,button[3].y],C_out[1],width=.03)
+
+#stepper
+drv = DRV8825(step.x+.88,step.y-.02,0)
+pcb += drv
+
+pcb.connectD(drv['AOUT1'],[drv['AOUT1'].x-.15,drv['AOUT1'].y],step[4],width=.014)
+pcb.connectD(drv['AOUT2'],[step.x+.33,drv['AOUT2'].y],step[3],width=.014)
+pcb.connectD(drv['BOUT2'],[step.x+.33,drv['BOUT2'].y],step[2],width=.014)
+pcb.connectD(drv['BOUT1'],[drv['BOUT1'].x-.06,drv['BOUT1'].y],step[1],width=.014)
+
+RA = R_2512(drv['ISENA'].x-.34,drv['ISENA'].y-.1,90,'RA\n200mOhm',label_size=.03)
+pcb += RA
+RB = R_2512(drv['ISENB'].x-.20,drv['ISENB'].y-.15,90,'RB\n200mOhm',label_size=.03)
+pcb += RB
+pcb.connectD(drv['ISENA'],[drv['ISENA'].x-.2,drv['ISENA'].y],RA[0],width=.014)
+pcb.connectD(drv['ISENB'],[drv['ISENB'].x-.2,drv['ISENB'].y],RB[0],width=.014)
+pcb.connectV(RA[1],RB[1],width=.06)
+connectG(RA[1],-.05,-.06)
+
+pcb.connectH(drv['GND'],drv['GND3'],width=.014)
+pcb.connectH(drv['GND2'],drv['GND3'],width=.014)
+pcb.connectH(drv['MODE2'],drv['GND3'],width=.014)
+
+CP = C_1206(drv['CP1'].x-.015,drv['CP1'].y+.12,0,'.01uF')
+pcb += CP
+pcb.connectD(drv['CP2'],[drv['CP2'].x-.05,drv['CP2'].y],CP[1],width=.014)
+pcb.connectD(drv['CP1'],CP[0],width=.014)
+
+pcb.connectD(drv['VMA'],[drv['VMA'].x-.12,drv['VMA'].y],[C_bulk['+'].x+.2,C_bulk['+'].y],C_bulk['+'],width=.014)
+
+RCP = R_1206(C_bulk['+'].x+.25,C_bulk['+'].y-.1,0,'1MOhm')
+pcb += RCP
+CCP = R_1206(RCP.x,RCP.y-.1,0,'.1uF')
+pcb += CCP
+
+pcb.connectV(RCP[0],CCP[0],width=.05)
+pcb.connectV(CCP[1],C_bulk['+'],width=.05)
+pcb.connectD(drv['VCP'],[drv['VCP'].x-.08,drv['VCP'].y],CCP[0],width=.014)
+
+pcb.connectD(drv['MODE1'],[drv['MODE1'].x+.05,drv['MODE1'].y],[bc['A1'].x-.02,bc['A1'].y-.05],bc['A1'],width=.014)
+pcb.connectD(drv['MODE0'],[drv['MODE0'].x+.08,drv['MODE0'].y],[bc['XL1'].x-.03,bc['XL1'].y-.09],bc['XL1'],width=.014)
+pcb.connectD(drv['STEP'],[drv['STEP'].x+.11,drv['STEP'].y],[bc['XL2'].x-.05,bc['XL2'].y-.13],bc['XL2'],width=.014)
+pcb.connectD(drv['DIR'],[drv['DIR'].x+.11,drv['DIR'].y],[bc['A0'].x-.07,bc['A0'].y-.17],bc['A0'],width=.014)
+pcb.connectD(drv['nSLP'],[drv['nSLP'].x+.11,drv['nSLP'].y],[bc['P27'].x-.09,bc['P27'].y-.21],bc['P27'],width=.014)
+
+pcb.connectV(drv['nSLP'],drv['nRST'],width=.014)
+pcb.connectV(drv['AVREF'],drv['BVREF'],width=.014)
+
+pcb.connectD(drv['VMB'],[drv['VMB'].x-.04,drv['VMB'].y],[RB.x+.1,RB.y-.2],[step.x+.3,RB.y-.2],[step.x+.15,step.y+.25],C_bulk['+'],width=.014)
+pcb.connectD([RB.x+.1,RB.y-.18],[step.x+.3,RB.y-.2],[step.x+.15,step.y+.25],C_bulk['+'],width=.04)
+
+R_lp = R_1206(bc['P26'].x+.02,bc['P26'].y-.2,90,'Rlp')
+pcb += R_lp
+C_lp = R_1206(R_lp.x-.06,R_lp.y-.15,0,'Clp')
+pcb += C_lp
+pcb.connectV(R_lp[1],C_lp[0])
+pcb.connectV(bc['P26'],R_lp[0])
+pcb.connectD(drv['BVREF'],[drv['BVREF'].x-.05,drv['BVREF'].y],[drv['BVREF'].x-.07,drv.y-.2],[C_lp.x-.02,drv.y-.25],C_lp[0],width=.014)
+pcb.connectD(drv['GND3'],[drv.x,drv.y-.15],[drv.x+.2,drv.y-.21],C_lp[1])
+connectG(drv['GND3'],0,.2,width=.05)
+pcb.connectD(button[3],[button[3].x,button[3].y-.1],drv['GND3'],width=.04)
+
+cad.shapes = pcb.layout()
+cad.shape = pcb.traces+(pcb.cutout-pcb.cutout)
+#cad.shape = pcb.cutout+(pcb.traces-pcb.traces)