From 3369c59938f4ed442d6e9d93eb38419fad03fbce Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Tue, 5 Nov 2019 22:21:32 -0500
Subject: [PATCH] wip

---
 python/pcb.py | 103 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 102 insertions(+), 1 deletion(-)

diff --git a/python/pcb.py b/python/pcb.py
index 666b853..582bfa1 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -1165,6 +1165,107 @@ class choke(part):
 # connectors
 #
 
+class ESC(part):
+   #
+   # ESC 3x1
+   # Sullins S1013E-36-ND
+   #
+   def __init__(self,value=''):
+      pad_header = cube(-.1,.1,-.05/2,.05/2,0,0)
+      d = .075
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1: PWM
+      #
+      self.shape = translate(pad_header,-d,-.1,0)
+      self.pad.append(point(-d,-.1,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'PWM'))
+      #
+      # pin 2: 5V
+      #
+      self.shape = add(self.shape,translate(pad_header,d,0,0))
+      self.pad.append(point(d,0,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'5V'))
+      #
+      # pin 3: GND 
+      #
+      self.shape = add(self.shape,translate(pad_header,-d,.1,0))
+      self.pad.append(point(-d,.1,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
+
+class I2C4x1(part):
+   #
+   # I2C 4x1
+   # 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
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1: VCC
+      #
+      self.shape = translate(pad_header,-d,-.15,0)
+      self.pad.append(point(-d,-.15,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'1VCC'))
+      #
+      # pin 2: GND
+      #
+      self.shape = add(self.shape,translate(pad_header,d,-.05,0))
+      self.pad.append(point(d,-.05,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
+      #
+      # pin 3: SCL
+      #
+      self.shape = add(self.shape,translate(pad_header,-d,.05,0))
+      self.pad.append(point(-d,.05,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SCL'))
+      #
+      # pin 4: SDA
+      #
+      self.shape = add(self.shape,translate(pad_header,d,.15,0))
+      self.pad.append(point(d,.15,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SDA'))
+
+class I2C4x1i(part):
+   #
+   # I2C 4x1 inline
+   #
+   def __init__(self,value=''):
+      pad_header = cube(-.079/2,.079/2,-.039/2,.039/2,0,0)
+      d = 0
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      #
+      # pin 1: VCC
+      #
+      self.shape = translate(pad_header,-d,-.15,0)
+      self.pad.append(point(-d,-.15,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'1VCC'))
+      #
+      # pin 2: GND
+      #
+      self.shape = add(self.shape,translate(pad_header,d,-.05,0))
+      self.pad.append(point(d,-.05,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
+      #
+      # pin 3: SCL
+      #
+      self.shape = add(self.shape,translate(pad_header,-d,.05,0))
+      self.pad.append(point(-d,.05,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SCL'))
+      #
+      # pin 4: SDA
+      #
+      self.shape = add(self.shape,translate(pad_header,d,.15,0))
+      self.pad.append(point(d,.15,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'SDA'))
+
 class RCWL0516(part):
    #
    # RCWL-0516 Doppler radar
@@ -1200,7 +1301,7 @@ class RCWL0516(part):
       self.pad.append(point(-.107,.1,0))
       self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VIN'))
       #
-      # pin 4: CDS
+      # pin 5: CDS
       #
       self.shape = add(self.shape,translate(pad_header,.107,.2,0))
       self.pad.append(point(.107,.2,0))
-- 
GitLab