Commit 9b190641 authored by Sam Calisch's avatar Sam Calisch

update impact logger board, about to switch to feather

parent 53eb0868
pcb/impact-logger-layout.png

41.3 KB | W: | H:

pcb/impact-logger-layout.png

52 KB | W: | H:

pcb/impact-logger-layout.png
pcb/impact-logger-layout.png
pcb/impact-logger-layout.png
pcb/impact-logger-layout.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -21,6 +21,23 @@ class TagConnectPDI(Component):
]
class feather(Component):
_pad = rectangle(-.05,.05,-.03,.03)
names = [
'RST','3V3','VREFA','GND','A0','A1','A2','A3','A4','A5','SCK','MOSI','MISO','RXD0','TXD0','GND2'
'SDA','SCL','5','6','9','10','11','12','13','VBUS','EN','VBAT'
]
pins = [Pin(-.4,.75-.1*i,_pad,names[i]) for i in range(16)]
pins += [Pin(.4,-.75+.1*i,_pad,names[16+i]) for i in range(11)]
shadow = filleted_rectangle(-.45,.45,-1,1,.08)
vias = [
Via(-.35, .9,circle(0,0,.05)),
Via( .35, .9,circle(0,0,.05)),
Via(-.35,-.9,circle(0,0,.05)),
Via( .35,-.9,circle(0,0,.05))
]
def bot_chamfered_rectangle(x0,x1,y0,y1,c):
r = rectangle(x0,x1,y0,y1)
c1 = triangle(x0,y0,x0,y0+c,x0+c,y0)
......@@ -39,7 +56,7 @@ class cap_UWT(Component):
_e = 3.1/25.4
_h = 1./25.4 + 2/25.4
_pad = rectangle(-_h/2,_h/2,-_a/2-.03,_a/2+.03)
pins = [Pin(0,-(_e+_a)/2-.01,_pad,'-'),Pin(0,(_e+_a)/2+.01,_pad,'+')]
pins = [Pin(0,-(_e+_a)/2-.01,_pad,'-',label_size=.08),Pin(0,(_e+_a)/2+.01,_pad,'+',label_size=.08)]
vias = []
shadow = bot_chamfered_rectangle(-4/25.4,4/25.4,-4/25.4,4/25.4,1/25.4)
......@@ -53,7 +70,7 @@ class CR20XX(Component):
class AAA(Component):
#AAA battery smd holder
pad = rectangle(-.125,.125,-.1,.1)
pad = chamfered_rectangle(-.125,.125,-.12,.12,.05)
pins = [
Pin(1.21-.125,0,pad,'+',label_size=.08),
Pin(-1.21+.125,0,pad,'-',label_size=.08),
......@@ -101,9 +118,9 @@ class ATxmega16A4U(Component):
shadow = rectangle(-c+d,c-d,-c+d,c-d)
class ADXL372Z_EVAL(Component):
names = ['VS','VIO','GND','INT2','INT1','CS','MISO','MOSI','SCLK','GND']
names = ['VS','VIO','GND','INT2','INT1','CS','MISO','MOSI','SCLK','GND2']
w = .3
pad = rectangle(-.05,.05,-.03,.03)
pad = rectangle(-.05,.05,-.025,.025)
pins = [Pin(-.5*w, .2-.1*i,pad,names[i]) for i in range(5)]
pins += [Pin(.5*w,-.2+.1*i,pad,names[i+5]) for i in range(5)]
vias = [
......@@ -164,10 +181,13 @@ def connectM(pin1,pin2,dx,width=.014):
#pcb.custom_cutout += chamfered_rectangle(0,.6*width,0,height,.12)
f = feather(2,0,0,'feather')
pcb += f
xmega = ATxmega16A4U(-1.2,-.0,0,'Xmega\nA4U')
pcb += xmega
pdi = TagConnectPDI(xmega.x+.11,xmega.y+.35,0)
pdi = TagConnectPDI(xmega.x+.11,xmega.y+.4,0)
pcb += pdi
......@@ -181,20 +201,23 @@ pcb.connectD(xmega['PDI/DATA'],pdi['DAT'],width=.014)
R1 = R_0805(pdi.x-.18,pdi.y,90,'R1\n10k',label_size=.03)
pcb += R1
C1 = C_0805(R1.x-.07,R1.y,90,'C1\n1uF',label_size=.03)
C1 = C_0805(R1.x+.04,R1.y+.1,0,'C1 1uF',label_size=.03)
pcb += C1
C2 = C_0805(C1.x-.07,C1.y,90,'C2\n.1uF',label_size=.03)
C2 = C_0805(C1.x,C1.y+.07,0,'C2 .1uF',label_size=.03)
pcb += C2
#pcb.connectD(xmega['1 GND'],[xmega['1 GND'].x-.03,xmega['1 GND'].y-.04],[C2[0].x-.14,C2[0].y+.1],C2[0],width=.014)
pcb.connectD(pdi['GND'],[pdi['GND'].x,pdi['GND'].y+.05],[C1[0].x+.02,C1[0].y+.05],C1[0])
pcb.connectD(pdi['GND'],[pdi['GND'].x,pdi['GND'].y+.05],[C2[0].x+.02,C2[0].y+.05],C2[0])
pcb.connectD(pdi['GND'],[pdi['GND'].x,pdi['GND'].y+.05],C1[0])
pcb.connectD(pdi['GND'],[pdi['GND'].x,pdi['GND'].y+.05],C2[0])
pcb.connectV(C2[0],C1[0])
pcb.connectV(C2[1],C1[1])
pcb.connectV(R1[0],C1[1])
#pcb.connectH(pdi['GND'],C2[0])
#pcb.connectV(pdi['VCC'],C1[1])
#pcb.connectV(pdi['VCC'],C2[1])
pcb.connectH(xmega['RST/CLK'],[xmega['RST/CLK'].x,xmega['RST/CLK'].y+.06],R1[1],width=.014)
pcb.connectH(xmega['RST/CLK'],[xmega['RST/CLK'].x,xmega['RST/CLK'].y+.11],R1[1],width=.014)
pcb.connectD(pdi['VCC'],[pdi['VCC'].x-.03,pdi['VCC'].y+.01],R1[0],width=.014)
#pcb.connectD(xmega['AVCC'],[xmega['AVCC'].x+.188,xmega['AVCC'].y-.1],xmega['PC5'],R1[0],width=.014)
......@@ -203,37 +226,80 @@ pcb.connectD(pdi['VCC'],[pdi['VCC'].x-.03,pdi['VCC'].y+.01],R1[0],width=.014)
#SPI to microsd card
sd = micro_sd_card(0,-1.1,-90,'MICRO SD')
sd = micro_sd_card(0,-1.,-90,'MICRO SD')
pcb += sd
pcb.connectD(xmega['PC4'],[xmega['PC4'].x,xmega['PC4'].y-.18],[xmega['PC4'].x+.3,xmega['PC4'].y-.25],[sd['CS'].x,sd['CS'].y+.05],sd['CS'],width=.014)
pcb.connectD(xmega['PC5'],[xmega['PC5'].x,xmega['PC5'].y-.15],[xmega['PC5'].x+.3,xmega['PC5'].y-.2],[sd['DI'].x,sd['DI'].y+.1],sd['DI'],width=.014)
pcb.connectD(xmega['PC6'],[xmega['PC6'].x,xmega['PC6'].y-.12],[xmega['PC6'].x+.3,xmega['PC6'].y-.15],[sd['DO'].x,sd['DO'].y+.17],sd['DO'],width=.014).add_jumper([sd['CLK'].x, sd['CLK'].y+.18],0)
pcb.connectD(xmega['PC7'],[xmega['PC7'].x,xmega['PC7'].y-.09],[xmega['PC7'].x+.3,xmega['PC7'].y-.11],[sd['CLK'].x,sd['CLK'].y+.25],sd['CLK'],width=.014)
#ADXL372
adxl = ADXL372Z_EVAL(0,0,180,'adxl372')
pcb += adxl
pcb.connectD(xmega['PD4'],[xmega['PD4'].x+.14,xmega['PD4'].y],adxl['CS'],width=.014)
pcb.connectD(xmega['PD5'],[xmega['PD5'].x+.12,xmega['PD5'].y],adxl['MOSI'],width=.014)
pcb.connectD(xmega['PD6'],[xmega['PD6'].x+.10,xmega['PD6'].y],adxl['MISO'],width=.014)
pcb.connectD(xmega['PD7'],[xmega['PD7'].x+.08,xmega['PD7'].y],adxl['SCLK'],width=.014)
pcb.connectD(xmega['PD4'],[xmega['PD4'].x+.18,xmega['PD4'].y],[adxl['CS'].x+.1,adxl['MOSI'].y-.05],[adxl['CS'].x+.1,adxl['CS'].y-.03],adxl['CS'],width=.014)
pcb.connectD(xmega['PD5'],[xmega['PD5'].x+.16,xmega['PD5'].y],adxl['MOSI'],width=.014)
pcb.connectD(xmega['PD6'],[xmega['PD6'].x+.14,xmega['PD6'].y],adxl['MISO'],width=.014)
#pcb.connectD(xmega['PD7'],[xmega['PD7'].x+.08,xmega['PD7'].y],adxl['SCLK'],width=.014)
pcb.connectD(xmega['PC4'],[xmega['PC4'].x,xmega['PC4'].y-.18],[xmega['PC4'].x+.3,xmega['PC4'].y-.25],[sd['CS'].x,sd['CS'].y+.05],sd['CS'],width=.014)
pcb.connectD(xmega['PC5'],[xmega['PC5'].x,xmega['PC5'].y-.15],[xmega['PC5'].x+.3,xmega['PC5'].y-.2],[sd['DI'].x,sd['DI'].y+.1],sd['DI'],width=.014)
pcb.connectD(xmega['PC6'],[xmega['PC6'].x,xmega['PC6'].y-.12],[xmega['PC6'].x+.3,xmega['PC6'].y-.15],[sd['DO'].x,sd['DO'].y+.2],sd['DO'],width=.014)
pcb.connectD(xmega['PC7'],[xmega['PC7'].x,xmega['PC7'].y-.09],[xmega['PC7'].x+.3,xmega['PC7'].y-.11],[sd['CLK'].x,sd['CLK'].y+.15],sd['CLK'],width=.014)
pcb.connectD(xmega['PD7'],[xmega['PD7'].x+.12,xmega['PD7'].y],[adxl['SCLK'].x+.05,adxl['SCLK'].y+.47],[adxl['SCLK'].x+.15,adxl['SCLK'].y],adxl['SCLK'],width=.014)
pcb.connectD(xmega['PE0'],[xmega['PE0'].x+.08,xmega['PE0'].y],[adxl['INT2'].x-.25,adxl['INT2'].y+.33],[adxl['INT2'].x-.1,adxl['INT2'].y+.05],adxl['INT2'],width=.014)
pcb.connectD(xmega['PE1'],[xmega['PE1'].x+.06,xmega['PE1'].y],[adxl['INT1'].x-.25,adxl['INT1'].y+.3],[adxl['INT1'].x-.05,adxl['INT1'].y+.05],adxl['INT1'],width=.014)
#pcb.connectD(adxl['GND2'],[adxl['GND2'].x-.1,adxl['GND2'].y],xmega['PD3'],width=.014)
#pcb.connectV(xmega['GND2'],xmega['PD3'],width=.014)
pcb.connectV(xmega['GND2'],xmega['GND3'],width=.014)
#pcb.connectD(xmega['GND4'],[xmega['GND4'].x,xmega['GND4'].y-.01],[xmega['GND3'].x+.1,xmega['GND3'].y+.2],[xmega['GND3'].x+.07,xmega['GND3'].y],xmega['GND3'],width=.014)
pcb.connectD(xmega['GND3'],[xmega['GND3'].x+.04,xmega['GND3'].y],[xmega['GND3'].x+.06,xmega['GND3'].y+.12],[xmega['GND3'].x+.0,xmega['GND3'].y+.15], [xmega['GND4'].x+.02,xmega['GND4'].y-.08], xmega['GND4'],width=.014)
pcb.connectD(xmega['GND3'],[xmega['GND3'].x+.04,xmega['GND3'].y],[xmega['GND3'].x+.06,xmega['GND3'].y+.12],[pdi['GND'].x+.1,pdi['GND'].y+.04],[pdi['GND'].x+.01,pdi['GND'].y+.05],pdi['GND'],width=.014)
pcb.connectV(xmega['AVCC'],xmega['VCC3'],width=.014)
pcb.connectV(xmega['AVCC'],[C2[1].x-.05,xmega['AVCC'].y+.08],C2[1],width=.014)
pcb.connectD(adxl['GND2'],[adxl['GND2'].x+.1,adxl['GND2'].y],sd['VSS'])
#battery
#batt = CR20XX(xmega.x,xmega.y-.5,0,"CR2032")
#pcb += batt
batt1 = AAA(-.7,0,90,'AAA1')
batt1 = AAA(-.6,0,90,'AAA1')
pcb += batt1
batt2 = AAA(.7,0,-90,'AAA2')
batt2 = AAA(.6,0,-90,'AAA2')
pcb += batt2
C_batt = cap_UWT(0,.8,90,'100uF')
pcb += C_batt
pcb.connectD(C_batt['+'],batt1['+'],width=.05)
pcb.connectD(C_batt['-'],batt2['-'],width=.05)
pcb.connectD(batt1['-'],[batt1['-'].x+.5,batt1['-'].y-.3],[batt2['+'].x-.4,batt2['+'].y-.3],batt2['+'],width=.04)
pcb.connectD(batt1['+'],[C2[1].x+.05,C2[1].y+.1],C2[1],width=.02)
#C_batt_2 = C_1206(C_batt.x,C_batt.y-.25,0,'.1uF')
#pcb += C_batt_2
#pcb.connectV(C_batt[0],C_batt_2[1])
#pcb.connectV(C_batt[1],C_batt_2[0])
pcb.connectD(adxl['GND'],[adxl['GND'].x+.1,adxl['GND'].y],batt2['-'],width=.03)
pcb.connectV(adxl['VIO'],adxl['VS'],width=.02)
#pcb.connectD(adxl['VIO'],[adxl['VIO'].x-.1,adxl['VIO'].y],[adxl['VIO'].x-.1,C_batt.y-.5], C_batt['+'])
#pcb.connectD(adxl['VS'],[adxl['VS'].x-.1,adxl['VS'].y],[adxl['VS'].x-.1,C_batt.y-.5], C_batt['+'])
#pcb.connectD(adxl['GND'],[adxl['GND'].x+.1,adxl['GND'].y-.0],[adxl['GND'].x+.1,adxl.y-.22],[adxl['GND2'].x+.1,adxl.y-.3],adxl['GND2'])
pcb.connectH(adxl['GND'],[adxl.x+.05,adxl['GND2'].y],adxl['GND2'],width=.02)
pcb.connectD(xmega['GND3'],[xmega['GND3'].x+.04,xmega['GND3'].y],[C_batt['-'].x-.1,C_batt['-'].y-.2],C_batt['-'],width=.014)
#soldering tails
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment