From dec2decd9101fc6db21ccee68bdfa7e275e046e7 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Tue, 3 Oct 2023 20:53:00 -0400
Subject: [PATCH] Pico

---
 python/pcb.py | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/python/pcb.py b/python/pcb.py
index 1b9efe6..ad5e8dc 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -6462,6 +6462,44 @@ class VL53L1X(part):
 # ICs
 ############################################################
 
+class PicoW(part):
+   #
+   # Pico W
+   #
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      board_width = 22.58/25.4
+      pad_width = 3.2/25.4
+      pad_height = 0.08
+      pad_pitch = 0.1
+      pad_offset = pad_width/4
+      pad_left = cube(0,pad_width,-pad_height/2,pad_height/2,0,0)
+      pad_right = cube(-pad_width,0,-pad_height/2,pad_height/2,0,0)
+      label_offset = pad_width/2
+      self.shape = '0'
+      # 1-10
+      for i in range(10):
+         self.shape = add(self.shape,translate(pad_left,-board_width/2-pad_offset,(9.5-i)*pad_pitch,0))
+         self.pad.append(point(-board_width/2-pad_offset,(9.5-i)*pad_pitch))
+         self.labels.append(self.text(self.pad[-1].x+label_offset,self.pad[-1].y,self.pad[-1].z,str(i+1)))
+      # 11-20
+      for i in range(10):
+         self.shape = add(self.shape,translate(pad_left,-board_width/2-pad_offset,-(0.5+i)*pad_pitch,0))
+         self.pad.append(point(-board_width/2-pad_offset,-(0.5+i)*pad_pitch))
+         self.labels.append(self.text(self.pad[-1].x+label_offset,self.pad[-1].y,self.pad[-1].z,str(11+i)))
+      # 21-30
+      for i in range(10):
+         self.shape = add(self.shape,translate(pad_right,board_width/2+pad_offset,-(9.5-i)*pad_pitch,0))
+         self.pad.append(point(board_width/2+pad_offset,-(9.5-i)*pad_pitch))
+         self.labels.append(self.text(self.pad[-1].x-label_offset,self.pad[-1].y,self.pad[-1].z,str(21+i)))
+      # 31-40
+      for i in range(10):
+         self.shape = add(self.shape,translate(pad_right,board_width/2+pad_offset,(0.5+i)*pad_pitch,0))
+         self.pad.append(point(board_width/2+pad_offset,(0.5+i)*pad_pitch))
+         self.labels.append(self.text(self.pad[-1].x-label_offset,self.pad[-1].y,self.pad[-1].z,str(31+i)))
+
 class XIAO(part):
    #
    # XIAO
-- 
GitLab