From 816f142174fffeb105c77350fd6dbbf5640f18f9 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Thu, 14 May 2020 21:28:04 -0600 Subject: [PATCH] add a footprint for the u-blox ZOE --- packages/Makefile | 1 + packages/UBLOX-ZOE.py | 86 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100755 packages/UBLOX-ZOE.py diff --git a/packages/Makefile b/packages/Makefile index 339c034..1fbdd52 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -43,6 +43,7 @@ FOOTPRINTS= \ MPU6000.fp \ MPU9250.fp \ UBLOX-MAX.fp \ + UBLOX-ZOE.fp \ TI-QFN32.fp \ TI-QFN36.fp \ TI-QFN32-new.fp \ diff --git a/packages/UBLOX-ZOE.py b/packages/UBLOX-ZOE.py new file mode 100755 index 0000000..d2181e0 --- /dev/null +++ b/packages/UBLOX-ZOE.py @@ -0,0 +1,86 @@ +#!/usr/bin/python +# Copyright 2020 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for U-Blox ZOE-8 GPS receiver +# + +# dimensions in mm from: +# ZOE-M8_HIM_(UBX-16030136).pdf + +BodySize = 4.5 +PadSpacing = 0.5 +PadDiam = 0.27 + +Clearance = 0.010 * 25.4 +Mask = (0.010 * 25.4) + PadDiam + +ValidPin = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'B1', 'B9', + 'C1', 'C3', 'C4', 'C5', 'C6', 'C7', 'C9', 'D1', 'D3', 'D4', 'D6', + 'D9', 'E1', 'E3', 'E7', 'E9', 'F1', 'F3', 'F4', 'F6', 'F7', 'F9', + 'G1', 'G3', 'G4', 'G5', 'G6', 'G7', 'G9', 'H1', 'H9', 'J1', 'J2', + 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'] + +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 3' +print '# use-license: unlimited' + +print 'Element[0x0 "UBLOX-ZOE" "" "" 0 0 11000 0 0 100 0x0]' +print "(" + +rows = ['A','B','C','D','E','F','G','H','J'] +for row in rows: + rownum = rows.index(row) # rownum will run 0..8 + for col in range (1,10): # col wil run 1..9 + ThisPin = row+str(col) + if ThisPin in ValidPin: + print ' Pad[',\ + mm2mils100((col-5) * PadSpacing), \ + mm2mils100((rownum-4) * PadSpacing), \ + mm2mils100((col-5) * PadSpacing), \ + mm2mils100((rownum-4) * PadSpacing), \ + mm2mils100(PadDiam), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + '"%s"' % ThisPin, '"%s"' % ThisPin, '""]' + +print ' ElementLine[',\ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100( BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100(-BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + '1000 ]' + +print ' ElementArc[',\ + mm2mils100(-5 * PadSpacing), \ + mm2mils100(-5 * PadSpacing), \ + '500 500 0 360 1000 ]' + +print ")" -- 2.47.2