From 6488916fe431c9ea33236523f71f2d8c140591f9 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Mon, 2 Nov 2020 01:04:19 -0700 Subject: [PATCH] package for MCP9808 temperature sensor --- packages/Makefile | 1 + packages/dfn-2x3-8.5c | 78 +++++++++++++++++++++++++++++++++++++++++++ pcb-rnd.mk | 8 ++++- 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 packages/dfn-2x3-8.5c diff --git a/packages/Makefile b/packages/Makefile index ac01c52..91162ad 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -90,6 +90,7 @@ FOOTPRINTS= \ PowerPAD32.fp \ usb_onboard.fp \ u-pdfn-8.fp \ + dfn-2x3-8.fp \ ufqfpn28.fp \ ufqfpn24.fp \ ufqfpn20.fp \ diff --git a/packages/dfn-2x3-8.5c b/packages/dfn-2x3-8.5c new file mode 100644 index 0000000..c78c5db --- /dev/null +++ b/packages/dfn-2x3-8.5c @@ -0,0 +1,78 @@ +/* + * Copyright © 2020 Bdale Garbee + * GPL v3 + */ + +/* intended for use with the MCP9808 temperature sensor and similar chips */ + +load "footprint.5c" +import Footprint; + +real pad_width = 0.75; +real pad_height = 0.30; +real pad_spacing = 0.50; /* center to center, along the pads */ +real pad_center = 2.9; /* center to center, across the part */ + +real center_width = 1.75; +real center_height = 1.45; + +real package_width = 3; +real package_height = 2; + +real pad_x_off = pad_center / 2; + +real num_pad = 4; /* per side */ + +element_start("u-pdfn-8"); + +real pad_off(int n) { + return pad_spacing * (n - (num_pad - 1) / 2); +} + +real corner(int dx, int dy) { + real x = dx * package_width / 2; + real y = dy * package_height / 2; + real len = 0.4; + + line(x, y, x - dx * len, y); + line(x, y, x, y - dy * len); +} + +corner(-1, -1); +corner(1, -1); +corner(-1, 1); +corner(1, 1); + +real dot_off = -.3; + +line(-package_width/2 + dot_off, -package_height/2 + dot_off, + -package_width/2 + dot_off, -package_height/2 + dot_off); + +for (int pad = 0; pad < num_pad; pad++) { + /* left side (1-4) */ + + pad_mm(-pad_x_off, + pad_off(pad), + pad_width, + pad_height, + sprintf("%d", pad + 1), + sprintf("%d", pad + 1)); + + /* right side (5-8) */ + + pad_mm(pad_x_off, + -pad_off(pad), + pad_width, + pad_height, + sprintf("%d", pad + 5), + sprintf("%d", pad + 5)); + +} + +/* center pad */ +pad_mm(0, 0, + center_width, + center_height, + "9", "9"); + +element_end(); diff --git a/pcb-rnd.mk b/pcb-rnd.mk index d630ec1..a574b80 100644 --- a/pcb-rnd.mk +++ b/pcb-rnd.mk @@ -1,7 +1,7 @@ AM=../altusmetrum SCHEME=$(AM)/scheme -.SUFFIXES: .lht .sch .ps .pdf .tdx +.SUFFIXES: .lht .sch .ps .pdf .tdx .scad .stl # need to have PROJECT defined ifndef PROJECT @@ -101,6 +101,12 @@ stencilsunlimited: $(BOTTOMCOPPER) $(PROJECT).toppaste.gbr $(OUTLINE) stencil: $(PROJECT).lht pcb-rnd -x cam gerber:stencils --outfile out/$(PROJECT) $(PROJECT).lht +$(PROJECT).scad: $(PROJECT).lht + pcb-rnd -x openscad $(PROJECT).lht + +$(PROJECT).stl: $(PROJECT).scad + openscad --o $(PROJECT).stl $(PROJECT).scad + clean: rm -f *.bom *.drc *.log *~ $(PROJECT).ps *.gbr *.cnc *bak* *- *.zip *.tdx *.backup rm -f *.net *.xy *.cmd *.png partslist partslist.csv *.ger *.xln PCB*save -- 2.47.2