# HG changeset patch # User Mychaela Falconia # Date 1624511596 0 # Node ID d41cdd682db5d8c9133e274f8f20be020096aff8 # Parent b495db6e508116b3d8494baad16a53ed3042cf21 m4-fp: support for CUI DS04-254-SMT DIP switch series diff -r b495db6e5081 -r d41cdd682db5 ifctf-part-lib/m4-fp/common.m4 --- a/ifctf-part-lib/m4-fp/common.m4 Wed Jun 23 01:50:17 2021 +0000 +++ b/ifctf-part-lib/m4-fp/common.m4 Thu Jun 24 05:13:16 2021 +0000 @@ -115,6 +115,7 @@ include(rules.inc) include(smt.inc) include(smtosc.inc) +include(switch.inc) include(to.inc) include(zif.inc) diff -r b495db6e5081 -r d41cdd682db5 ifctf-part-lib/m4-fp/switch.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ifctf-part-lib/m4-fp/switch.inc Thu Jun 24 05:13:16 2021 +0000 @@ -0,0 +1,58 @@ +# -*- m4 -*- +# +# Footprints for switch components + +# SMT DIP switch series: CUI DS04-254-SMT +# +# $1: canonical name +# $2: name on PCB +# $3: value +# $4: number of switches in the pack +define(`DS04_254_SMT', + ` +Element[0x00 "$1" "$2" "$3" 200000 100000 0 0 0 100 0x00] +( + # X position preliminary computations (um units) + define(`dimB', eval(($4 - 1) * 2540)) + define(`dimL', eval(dimB + 3540)) + # pad geometry + define(`padwidth', 1100) + define(`youter', 5200) + define(`yinner', 3700) + define(`maskextra', 150) + # xpos variable keeps track of X position of pad-pair in um units + define(`xpos', eval(-dimB/2)) + define(`CURPIN', 1) + forloop(i, 1, $4, ` + Pad[xpos`um' eval(youter-padwidth/2)`um' + xpos`um' eval(yinner+padwidth/2)`um' + padwidth`um' 10mil eval(padwidth+maskextra)`um' + "" "CURPIN" "square"] + define(`CURPIN', eval(CURPIN + 1)) + Pad[xpos`um' eval(-youter+padwidth/2)`um' + xpos`um' eval(-yinner-padwidth/2)`um' + padwidth`um' 10mil eval(padwidth+maskextra)`um' + "" "CURPIN" "square"] + define(`CURPIN', eval(CURPIN + 1)) + define(`xpos', eval(xpos + 2540)) + ') + # silk outline + define(`silkW', 150) + define(`silkX', eval(dimL/2)) + define(`silkY', eval(5200 + 150 + silkW/2)) + ElementLine[-silkX`um' -silkY`um' silkX`um' -silkY`um' silkW`um'] + ElementLine[-silkX`um' silkY`um' silkX`um' silkY`um' silkW`um'] + ElementLine[-silkX`um' -silkY`um' -silkX`um' silkY`um' silkW`um'] + ElementLine[ silkX`um' -silkY`um' silkX`um' silkY`um' silkW`um'] +)') + +define(`PKG_DS04_254_01', `DS04_254_SMT(`$1',`$2',`$3', 1)') +define(`PKG_DS04_254_02', `DS04_254_SMT(`$1',`$2',`$3', 2)') +define(`PKG_DS04_254_03', `DS04_254_SMT(`$1',`$2',`$3', 3)') +define(`PKG_DS04_254_04', `DS04_254_SMT(`$1',`$2',`$3', 4)') +define(`PKG_DS04_254_05', `DS04_254_SMT(`$1',`$2',`$3', 5)') +define(`PKG_DS04_254_06', `DS04_254_SMT(`$1',`$2',`$3', 6)') +define(`PKG_DS04_254_07', `DS04_254_SMT(`$1',`$2',`$3', 7)') +define(`PKG_DS04_254_08', `DS04_254_SMT(`$1',`$2',`$3', 8)') +define(`PKG_DS04_254_10', `DS04_254_SMT(`$1',`$2',`$3', 10)') +define(`PKG_DS04_254_12', `DS04_254_SMT(`$1',`$2',`$3', 12)')