From cf9e40a13b8bbec914c28c25d2d5dc6915b3dff2 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Tue, 23 Apr 2013 17:43:12 -0600 Subject: [PATCH] symbol and footprint for Rayson BTM-182 Bluetooth(tm) module --- packages/BTM182.py | 137 ++++++++++++++ packages/Makefile | 3 +- symbols/rayson/BTM-182.sym | 360 +++++++++++++++++++++++++++++++++++++ 3 files changed, 499 insertions(+), 1 deletion(-) create mode 100755 packages/BTM182.py create mode 100644 symbols/rayson/BTM-182.sym diff --git a/packages/BTM182.py b/packages/BTM182.py new file mode 100755 index 0000000..8c6c464 --- /dev/null +++ b/packages/BTM182.py @@ -0,0 +1,137 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for Rayson BTM-182 Bluetooth module +# + +# dimensions in mm from BTM182\ DataSheet.pdf + +BodyWidth = 14.50 +BodyHeight = 25.00 + +PinWidth = 0.90 +PinHeight = 1.60 +PinSpacing = 1.27 +RowCenters = 14.50 +RowSpacing = RowCenters - PinHeight +BodyOffset = 2.88 + +SmallPinWidth = 1.20 +SmallPinHeight = 0.80 + +import sys + +# 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 2' +print '# use-license: unlimited' + +print 'Element[0x0 "BTM182" "" "" 0 0 -10161 -12011 0 100 0x0]' +print "(" +for pin in range (0,15): + print ' Pad[',\ + mm2mils100((pin-7) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinWidth/2)), \ + mm2mils100((pin-7) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (30 - pin), '"%i"' % (30 - pin), '0x0100]' + + print ' Pad[',\ + mm2mils100((pin-7) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinWidth/2), \ + mm2mils100((pin-7) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]' + +print ' Pad[',\ + mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \ + mm2mils100(RowCenters/2 - 2.96), \ + mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \ + mm2mils100(RowCenters/2 - 2.96), \ + mm2mils100(SmallPinHeight), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(SmallPinHeight)+600, \ + '"pin%i"' % 31, '"%i"' % 31, '0x0100]' + +print ' Pad[',\ + mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \ + mm2mils100(RowCenters/2 - 1.69), \ + mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \ + mm2mils100(RowCenters/2 - 1.69), \ + mm2mils100(SmallPinHeight), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(SmallPinHeight)+600, \ + '"pin%i"' % 32, '"%i"' % 31, '0x0100]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2-BodyOffset), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset), \ + mm2mils100( BodyWidth/2), \ + mm2mils100(-BodyHeight/2-BodyOffset+5.13), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset+5.13), \ + mm2mils100( BodyWidth/2), \ + mm2mils100(-BodyHeight/2-BodyOffset+5.13), \ + mm2mils100( BodyWidth/2-3.595), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset+5.13), \ + mm2mils100( BodyWidth/2-3.595), \ + mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \ + mm2mils100( BodyWidth/2-3.595), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \ + mm2mils100( BodyWidth/2), \ + mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \ + mm2mils100( BodyWidth/2-3.595), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2-BodyOffset), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2-BodyOffset), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2-BodyOffset), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2-BodyOffset), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2-BodyOffset), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementArc[',\ + mm2mils100(-7 * PinSpacing), \ + mm2mils100(RowSpacing/2-PinHeight/6), \ + '500 500 0 360 1000 ]' + +print ")" diff --git a/packages/Makefile b/packages/Makefile index 194e7d2..d78e4c4 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -33,7 +33,8 @@ FOOTPRINTS= \ 8ufson2x2.fp \ ti-qfn20.fp \ qfn-16.fp \ - ap.10g.fp + ap.10g.fp \ + BTM182.fp .5c.fp: nickle $*.5c > $@ diff --git a/symbols/rayson/BTM-182.sym b/symbols/rayson/BTM-182.sym new file mode 100644 index 0000000..c4485be --- /dev/null +++ b/symbols/rayson/BTM-182.sym @@ -0,0 +1,360 @@ +v 20100214 2 +P 0 1500 400 1500 1 0 0 +{ +T 305 1545 5 10 1 1 0 6 1 +pinnumber=19 +T 505 1495 3 10 1 1 0 0 1 +pinlabel=SPI_MISO +T 0 1500 5 10 0 1 0 6 1 +pinseq=24 +T 0 1500 5 10 0 1 0 6 1 +pintype=io +} +P 0 1900 400 1900 1 0 0 +{ +T 305 1945 5 10 1 1 0 6 1 +pinnumber=18 +T 505 1895 3 10 1 1 0 0 1 +pinlabel=SPI_CSB +T 0 1900 5 10 0 1 0 6 1 +pinseq=23 +T 0 1900 5 10 0 1 0 6 1 +pintype=io +} +P 0 2300 400 2300 1 0 0 +{ +T 305 2345 5 10 1 1 0 6 1 +pinnumber=17 +T 505 2295 3 10 1 1 0 0 1 +pinlabel=SPI_MOSI +T 0 2300 5 10 0 1 0 6 1 +pinseq=22 +T 0 2300 5 10 0 1 0 6 1 +pintype=io +} +P 5000 3900 4600 3900 1 0 0 +{ +T 4700 4000 5 10 1 1 0 0 1 +pinnumber=23 +T 4075 3900 3 10 1 1 0 0 1 +pinlabel=PIO6 +T 5000 3900 5 10 0 1 0 0 1 +pinseq=28 +T 5000 3900 5 10 0 1 0 0 1 +pintype=io +} +P 5000 3500 4600 3500 1 0 0 +{ +T 4700 3600 5 10 1 1 0 0 1 +pinnumber=22 +T 4075 3500 3 10 1 1 0 0 1 +pinlabel=PIO7 +T 5000 3500 5 10 0 1 0 0 1 +pinseq=27 +T 5000 3500 5 10 0 1 0 0 1 +pintype=io +} +P 0 7100 400 7100 1 0 0 +{ +T 305 7145 5 10 1 1 0 6 1 +pinnumber=21 +T 505 7095 3 10 1 1 0 0 1 +pinlabel=RESETB +T 0 7100 5 10 0 1 0 6 1 +pinseq=26 +T 0 7100 5 10 0 1 0 6 1 +pintype=io +} +P 0 1100 400 1100 1 0 0 +{ +T 305 1145 5 10 1 1 0 6 1 +pinnumber=20 +T 505 1095 3 10 1 1 0 0 1 +pinlabel=SPI_CLK +T 0 1100 5 10 0 1 0 6 1 +pinseq=25 +T 0 1100 5 10 0 1 0 6 1 +pintype=io +} +P 0 3500 400 3500 1 0 0 +{ +T 100 3600 5 10 1 1 0 0 1 +pinnumber=10 +T 500 3500 3 10 1 1 0 0 1 +pinlabel=UART_RX +T -400 3600 5 10 0 1 0 0 1 +pinseq=1 +T 0 3500 5 10 0 1 0 0 1 +pintype=in +} +P 0 3100 400 3100 1 0 0 +{ +T 100 3200 5 10 1 1 0 0 1 +pinnumber=11 +T 500 3100 3 10 1 1 0 0 1 +pinlabel=UART_RTS +T -400 3200 5 10 0 1 0 0 1 +pinseq=2 +T 0 3100 5 10 0 1 0 0 1 +pintype=io +} +P 5000 1100 4600 1100 1 0 0 +{ +T 4695 1145 5 10 1 1 0 0 1 +pinnumber=12 +T 4495 1095 3 10 1 1 0 6 1 +pinlabel=USB_DP +T 5400 1200 5 10 0 1 0 6 1 +pinseq=3 +T 5000 1100 5 10 0 1 0 6 1 +pintype=io +} +P 5000 700 4600 700 1 0 0 +{ +T 4695 745 5 10 1 1 0 0 1 +pinnumber=13 +T 4495 695 3 10 1 1 0 6 1 +pinlabel=USB_DN +T 5400 800 5 10 0 1 0 6 1 +pinseq=4 +T 5000 700 5 10 0 1 0 6 1 +pintype=io +} +P 0 7500 400 7500 1 0 0 +{ +T 100 7600 5 10 1 1 0 0 1 +pinnumber=14 +T 525 7500 3 10 1 1 0 0 1 +pinlabel=VDD +T -400 7600 5 10 0 1 0 0 1 +pinseq=5 +T 0 7500 5 10 0 1 0 0 1 +pintype=io +} +P 0 300 400 300 1 0 0 +{ +T 100 400 5 10 1 1 0 0 1 +pinnumber=15 +T 500 300 3 10 1 1 0 0 1 +pinlabel=GND +T -400 400 5 10 0 1 0 0 1 +pinseq=6 +T 0 300 5 10 0 1 0 0 1 +pintype=io +} +P 5000 300 4600 300 1 0 0 +{ +T 4695 345 5 10 1 1 0 0 1 +pinnumber=16 +T 4495 295 3 10 1 1 0 6 1 +pinlabel=VDD_USB +T 5400 400 5 10 0 1 0 6 1 +pinseq=7 +T 5000 300 5 10 0 1 0 6 1 +pintype=io +} +B 400 0 4200 8100 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +T 400 8200 8 10 1 1 0 0 1 +refdes=U? +T 5400 1400 8 10 0 0 0 0 1 +numslots=0 +T 5400 1700 8 10 0 0 0 0 1 +slot=1 +P 5000 4300 4600 4300 1 0 0 +{ +T 4700 4400 5 10 1 1 0 0 1 +pinnumber=24 +T 4075 4300 3 10 1 1 0 0 1 +pinlabel=PIO5 +T 5000 4300 5 10 0 1 0 0 1 +pinseq=20 +T 5000 4300 5 10 0 1 0 0 1 +pintype=pwr +} +P 5000 3100 4600 3100 1 0 0 +{ +T 4700 3200 5 10 1 1 0 0 1 +pinnumber=28 +T 4075 3100 3 10 1 1 0 0 1 +pinlabel=PIO8 +T 5000 3100 5 10 0 1 0 0 1 +pinseq=24 +T 5000 3100 5 10 0 1 0 0 1 +pintype=io +} +P 5000 5500 4600 5500 1 0 0 +{ +T 4700 5600 5 10 1 1 0 0 1 +pinnumber=27 +T 4075 5500 3 10 1 1 0 0 1 +pinlabel=PIO2 +T 5000 5500 5 10 0 1 0 0 1 +pinseq=23 +T 5000 5500 5 10 0 1 0 0 1 +pintype=io +} +P 5000 5100 4600 5100 1 0 0 +{ +T 4700 5200 5 10 1 1 0 0 1 +pinnumber=26 +T 4075 5100 3 10 1 1 0 0 1 +pinlabel=PIO3 +T 5000 5100 5 10 0 1 0 0 1 +pinseq=22 +T 5000 5100 5 10 0 1 0 0 1 +pintype=io +} +P 5000 4700 4600 4700 1 0 0 +{ +T 4700 4800 5 10 1 1 0 0 1 +pinnumber=25 +T 4075 4700 3 10 1 1 0 0 1 +pinlabel=PIO4 +T 5000 4700 5 10 0 1 0 0 1 +pinseq=21 +T 5000 4700 5 10 0 1 0 0 1 +pintype=io +} +P 5000 5900 4600 5900 1 0 0 +{ +T 4700 6000 5 10 1 1 0 0 1 +pinnumber=32 +T 4075 5900 3 10 1 1 0 0 1 +pinlabel=PIO1 +T 5000 5900 5 10 0 1 0 0 1 +pinseq=28 +T 5000 5900 5 10 0 1 0 0 1 +pintype=io +} +P 5000 6300 4600 6300 1 0 0 +{ +T 4700 6400 5 10 1 1 0 0 1 +pinnumber=31 +T 4075 6300 3 10 1 1 0 0 1 +pinlabel=PIO0 +T 5000 6300 5 10 0 1 0 0 1 +pinseq=27 +T 5000 6300 5 10 0 1 0 0 1 +pintype=io +} +P 5000 2300 4600 2300 1 0 0 +{ +T 4700 2400 5 10 1 1 0 0 1 +pinnumber=30 +T 3975 2300 3 10 1 1 0 0 1 +pinlabel=PIO10 +T 5000 2300 5 10 0 1 0 0 1 +pinseq=26 +T 5000 2300 5 10 0 1 0 0 1 +pintype=io +} +P 5000 2700 4600 2700 1 0 0 +{ +T 4700 2800 5 10 1 1 0 0 1 +pinnumber=29 +T 4075 2700 3 10 1 1 0 0 1 +pinlabel=PIO9 +T 5000 2700 5 10 0 1 0 0 1 +pinseq=25 +T 5000 2700 5 10 0 1 0 0 1 +pintype=io +} +P 0 3900 400 3900 1 0 0 +{ +T 200 4000 5 10 1 1 0 0 1 +pinnumber=9 +T 500 3900 3 10 1 1 0 0 1 +pinlabel=UART_TX +T -400 4000 5 10 0 1 0 0 1 +pinseq=9 +T 0 3900 5 10 0 1 0 0 1 +pintype=in +} +P 0 4300 400 4300 1 0 0 +{ +T 200 4400 5 10 1 1 0 0 1 +pinnumber=8 +T 500 4300 3 10 1 1 0 0 1 +pinlabel=UART_CTS +T 200 4400 5 10 1 1 0 0 1 +pinseq=8 +T 0 4300 5 10 0 1 0 0 1 +pintype=pwr +} +P 5000 1900 4600 1900 1 0 0 +{ +T 4695 1945 5 10 1 1 0 0 1 +pinnumber=1 +T 4495 1895 3 10 1 1 0 6 1 +pinlabel=PIO11 +T 5400 1800 5 10 0 1 180 0 1 +pinseq=1 +T 5000 1900 5 10 0 1 180 0 1 +pintype=in +} +P 5000 7500 4600 7500 1 0 0 +{ +T 4695 7545 5 10 1 1 0 0 1 +pinnumber=2 +T 4495 7495 3 10 1 1 0 6 1 +pinlabel=AIO0 +T 5400 7600 5 10 0 1 0 6 1 +pinseq=2 +T 5000 7500 5 10 0 1 0 6 1 +pintype=io +} +P 5000 7100 4600 7100 1 0 0 +{ +T 4695 7145 5 10 1 1 0 0 1 +pinnumber=3 +T 4495 7095 3 10 1 1 0 6 1 +pinlabel=AIO1 +T 5400 7200 5 10 0 1 0 6 1 +pinseq=3 +T 5000 7100 5 10 0 1 0 6 1 +pintype=io +} +P 0 6300 400 6300 1 0 0 +{ +T 305 6345 5 10 1 1 0 6 1 +pinnumber=4 +T 505 6295 3 10 1 1 0 0 1 +pinlabel=PCM_OUT +T -400 6400 5 10 0 1 0 0 1 +pinseq=4 +T 0 6300 5 10 0 1 0 0 1 +pintype=io +} +P 0 5900 400 5900 1 0 0 +{ +T 305 5945 5 10 1 1 0 6 1 +pinnumber=5 +T 505 5895 3 10 1 1 0 0 1 +pinlabel=PCM_CLK +T -400 6000 5 10 0 1 0 0 1 +pinseq=5 +T 0 5900 5 10 0 1 0 0 1 +pintype=io +} +P 0 5500 400 5500 1 0 0 +{ +T 305 5545 5 10 1 1 0 6 1 +pinnumber=6 +T 505 5495 3 10 1 1 0 0 1 +pinlabel=PCM_SYNC +T -400 5600 5 10 0 1 0 0 1 +pinseq=6 +T 0 5500 5 10 0 1 0 0 1 +pintype=io +} +P 0 5100 400 5100 1 0 0 +{ +T 305 5145 5 10 1 1 0 6 1 +pinnumber=7 +T 505 5095 3 10 1 1 0 0 1 +pinlabel=PCM_IN +T -400 5200 5 10 0 1 0 0 1 +pinseq=7 +T 0 5100 5 10 0 1 0 0 1 +pintype=io +} -- 2.47.2