diff --git a/python/pcb.py b/python/pcb.py
index d61606fe1c3ed12d76f2a7f417df0f4674b48136..ffde7a75c73e9dc180df91d44e4d4695affd429b 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -31,7 +31,7 @@ output = "top, labels, holes, and exterior"
 #output = "bottom traces reversed and exterior"
 #output = "holes"
 #output = "interior"
-#output = "holes and interior"
+output = "holes and interior"
 #output = "exterior"
 #output = "solder mask"
 
@@ -1176,6 +1176,42 @@ class choke(part):
 # connectors
 #
 
+class header_SWD_4(part):
+   #
+   # 4-pin header
+   # fci 95278-101a04lf bergstik 2x2x0.1"
+   #
+   pad_header = cube(-.05,.05,-.025,.025,0,0)
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1
+      #
+      self.shape = translate(pad_header,-.107,.05,0)
+      self.shape = add(self.shape,cylinder(-.157,.05,0,0,.025))
+      self.pad.append(point(-.107,.05,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'CLK'))
+      #
+      # pin 2
+      #
+      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,'DIO'))
+      #
+      # 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,'RST'))
+      #
+      # 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,'GND'))
+
 class header_UPDI(part):
    #
    # UPDI header