From 7c99acf4c0d28e12f93a30f66b362d00498a1cfd Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Fri, 21 Jan 2022 22:49:46 -0700 Subject: [PATCH] new dual beeper footprint --- packages/.gitignore | 2 + packages/Makefile | 3 +- packages/dualbeeper.py | 100 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 1 deletion(-) create mode 100755 packages/dualbeeper.py diff --git a/packages/.gitignore b/packages/.gitignore index ef219c4..61db65c 100644 --- a/packages/.gitignore +++ b/packages/.gitignore @@ -23,6 +23,7 @@ AN3111.fp lqfp32.fp lqfp48.fp lqfp64.fp +lqfp80.fp lqfp100.fp LPCC16.fp MPU6000.fp @@ -139,3 +140,4 @@ SJ-352X-SMT.fp DSE0006A.fp U-DFN2020-6-F.fp 711AT.fp +PG-TSDSO-14.fp diff --git a/packages/Makefile b/packages/Makefile index ec46d84..8bf4d33 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -156,7 +156,8 @@ FOOTPRINTS= \ DSE0006A.fp \ U-DFN2020-6-F.fp \ 711AT.fp \ - PG-TSDSO-14.fp + PG-TSDSO-14.fp \ + dualbeeper.fp .5c.fp: nickle $*.5c -o $@ diff --git a/packages/dualbeeper.py b/packages/dualbeeper.py new file mode 100755 index 0000000..0ebdc08 --- /dev/null +++ b/packages/dualbeeper.py @@ -0,0 +1,100 @@ +#!/usr/bin/python3 +# Copyright 2022 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for TDK PS-12 or PUI Audio AT-1220 beeper +# + +import math + +# dimensions in mm from puiaudio/AT-1220-TT-11-R.pdf datasheet +BodyDiam = 12.2 + +PinSpacingPUI = 6.5 +PinDiamPUI = 0.6 + +PinSpacingTDK = 5.0 +PinDiamTDK = 0.7 +Angle = math.pi / 10 + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print('# author: Bdale Garbee') +print('# email: bdale@gag.com') +print('# dist-license: GPL 3') +print('# use-license: unlimited') + +print('Element[0x0 "AT-1220" "" "" 0 0 0 0 0 100 0x0]') +print("(") +print(' Pin[',\ + mm2mils100(-PinSpacingPUI/2), \ + 0, \ + mm2mils100(PinDiamPUI * 2.5), \ + 1200, \ + mm2mils100(PinDiamPUI * 2.5), \ + mm2mils100(PinDiamPUI), \ + '"pin1" "1" 0x0001]') + +print(' Pin[',\ + mm2mils100(PinSpacingTDK/2 * math.cos(Angle)), \ + mm2mils100(PinSpacingTDK/2 * math.sin(Angle)), \ + mm2mils100(PinDiamTDK * 2.5), \ + 1200, \ + mm2mils100(PinDiamTDK * 2.5), \ + mm2mils100(PinDiamTDK), \ + '"pin1" "1" 0x0001]') + +print(' Pin[',\ + mm2mils100(PinSpacingPUI/2), \ + 0, \ + mm2mils100(PinDiamPUI * 2.5), \ + 1200, \ + mm2mils100(PinDiamPUI * 2.5), \ + mm2mils100(PinDiamPUI), \ + '"pin2" "2" 0x0001]') + +print(' Pin[',\ + mm2mils100(-PinSpacingTDK/2 * math.cos(Angle)), \ + mm2mils100(-PinSpacingTDK/2 * math.sin(Angle)), \ + mm2mils100(PinDiamTDK * 2.5), \ + 1200, \ + mm2mils100(PinDiamTDK * 2.5), \ + mm2mils100(PinDiamTDK), \ + '"pin2" "2" 0x0001]') + +print(' ElementArc[',\ + 0, \ + 0, \ + mm2mils100(BodyDiam/2), \ + mm2mils100(BodyDiam/2), \ + 0, \ + 360, \ + 1000, \ + ']') + +print(' ElementLine[',\ + mm2mils100(-3*BodyDiam/8), \ + mm2mils100(-BodyDiam/4), \ + mm2mils100(-BodyDiam/8), \ + mm2mils100(-BodyDiam/4), \ + 1000, \ + ']') + +print(' ElementLine[',\ + mm2mils100(3*BodyDiam/8), \ + mm2mils100(-BodyDiam/4), \ + mm2mils100(BodyDiam/8), \ + mm2mils100(-BodyDiam/4), \ + 1000, \ + ']') + +print(' ElementLine[',\ + mm2mils100(BodyDiam/4), \ + mm2mils100(-3*BodyDiam/8), \ + mm2mils100(BodyDiam/4), \ + mm2mils100(-1*BodyDiam/8), \ + 1000, \ + ']') + +print(")") -- 2.47.2