diff --git a/python/pcb.py b/python/pcb.py
index e534fad816e3ac8ba43e1b733a09cc4246f93ef5..642dbeadf796330546c4dd9b69d7c4b964c8bef5 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -19,11 +19,11 @@
 # uncomment for desired output
 ############################################################
 
-#output = "top, labels, and exterior"
+output = "top, labels, and exterior"
 #output = "top, labels, and holes"
 #output = "top, labels, holes, and exterior"
 #output = "top, bottom, labels, and exterior"
-output = "top, bottom, labels, holes, and exterior"
+#output = "top, bottom, labels, holes, and exterior"
 #output = "top traces"
 #output = "top traces and exterior"
 #output = "bottom traces"
@@ -1492,8 +1492,8 @@ class IMU_4754(part):
       self.shape = add(self.shape,cube(height-offset-size,height-offset,width/2-size,width/2,0,0))
       self.shape = add(self.shape,cube(-offset,-offset+size,-width/2,-width/2+size,0,0))
       self.shape = add(self.shape,cube(height-offset-size,height-offset,-width/2,-width/2+size,0,0))
-class header_IMU_3463_hole(part):
 
+class header_IMU_3463_hole(part):
    #
    # Adafruit 3463 IMU breakout through-hole
    #
@@ -1970,6 +1970,34 @@ class header_2H(part):
       self.pad.append(point(0,-.05,0))
       self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'2'))
 
+class header_3H(part):
+   #
+   # 3x1x0.1 cable header
+   #    Sullins GEC36SBSN-M89	
+   #
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1
+      #
+      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,'1'))
+      #
+      # pin 2
+      #
+      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,'2'))
+      #
+      # pin 3
+      #
+      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,'3'))
+
 class header_4H(part):
    #
    # 4x1x0.1 cable header
@@ -6323,6 +6351,69 @@ class regulator_SOT223(part):
       self.pad.append(point(0,.12,0))
       self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'out'))
 
+class A4949LJ(part):
+   #
+   # Allegro BLDC driver
+   #
+   def __init__(self,value=''):
+      pad = cube(-1.75/25.4/2,1.75/25.4/2,-0.65/25.4/2,0.65/25.4/2,0,0)
+      dx = 5.6/25.4/2
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1
+      #
+      self.shape = translate(pad,-dx,.075,0)
+      self.pad.append(point(-dx,.075,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,-dx,.025,0))
+      self.pad.append(point(-dx,.025,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'OUTA'))
+      #
+      # pin 3
+      #
+      self.shape = add(self.shape,translate(pad,-dx,-.025,0))
+      self.pad.append(point(-dx,-.025,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VBB'))
+      #
+      # pin 4
+      #
+      self.shape = add(self.shape,translate(pad,-dx,-.075,0))
+      self.pad.append(point(-dx,-.075,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'PWM'))
+      #
+      # pin 5
+      #
+      self.shape = add(self.shape,translate(pad,dx,-.075,0))
+      self.pad.append(point(dx,-.075,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VREF'))
+      #
+      # pin 6
+      #
+      self.shape = add(self.shape,translate(pad,dx,-.025,0))
+      self.pad.append(point(dx,-.025,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'FG'))
+      #
+      # pin 7
+      #
+      self.shape = add(self.shape,translate(pad,dx,.025,0))
+      self.pad.append(point(dx,.025,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'OUTC'))
+      #
+      # pin 8
+      #
+      self.shape = add(self.shape,translate(pad,dx,.075,0))
+      self.pad.append(point(dx,.075,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'OUTB'))
+      #
+      # thermal pad
+      #
+      self.shape = add(self.shape,cube(-2.41/25.4/2,2.41/25.4/2,-3.3/25.4/2,3.3/25.4/2,0,0))
+
 class TB67H451A(part):
    def __init__(self,value=''):
       self.value = value