diff --git a/python/pcb.py b/python/pcb.py
index 866c9313388b108692ab84339d5b943cc74faa38..ec186151e2551c1fdc9746fd636853c10ca79acf 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -20,10 +20,10 @@
 # uncomment for desired output:
 #
 
-#output = "top, labels, 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, bottom, labels, holes, and exterior"
 #output = "top traces"
 #output = "top traces and exterior"
 #output = "bottom traces reversed"
@@ -1188,6 +1188,100 @@ class choke(part):
 # connectors
 #
 
+class header_serial_reverse_5V(part):
+   #
+   # serial cable header, reverse for female connector, 5V output
+   #    GCT BG300-06-A-L-A	
+   #
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1
+      #
+      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
+      #
+      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
+      #
+      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,'5V'))
+      #
+      # pin 4
+      #
+      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
+      #
+      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
+      #
+      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_serial_reverse_3V3(part):
+   #
+   # serial cable header, reverse for female connector, 3.3V output
+   #    GCT BG300-06-A-L-A	
+   #
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1
+      #
+      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
+      #
+      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
+      #
+      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,'3.3V'))
+      #
+      # pin 4
+      #
+      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
+      #
+      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
+      #
+      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 TFT8x1v(part):
    #
    # TFT 8x1 vertical